PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   thắc mắc về đèn nháy theo nhạc (http://www.picvietnam.com/forum/showthread.php?t=32142)

ngontu 23-04-2013 10:54 PM

thắc mắc về đèn nháy theo nhạc
 
Thân chào các bạn,tôi đọc phần "đèn nháy theo nhạc" và tôi cũng làm thử và đã thành công , cám ơn các bạn, nhưng tôi có thắc mắc là nếu muốn làm cho led nháy đến 1 điểm led cao nhất của nhạc có độ dừng vài giây thì phải viết code như thế nào? mong các bạn chỉ đẫn, cám ơn

greenfield 24-04-2013 12:15 PM

Bạn có thể chia sẻ sơ đồ nguyên lý với mọi người không?

TRUNGBAOSPKT 24-04-2013 10:48 PM

Bạn nên cho mình sơ đồ nguyên lý và phải mô phỏng . Bạn hỏi như thế này , làm sao mình trả lời ?

ngontu 25-04-2013 12:03 AM

Mình viết code như sau:
void main()
{ int l,i,a;
int ADC;
set_tris_A(0x0f);
set_tris_b(0x00);
set_tris_d(0x00);

enable_interrupts(global);
setup_ADC(ADC_clock_internal);
setup_adc_ports( ALL_ANALOG );
set_ADC_channel(0);
portb = 0x00;portd = 0x00;

while(1)
{ ADC = read_ADC();

if((ADC>4)&&(ADC<8)){output_b( 0x01);output_d( 0x00);} // tan so lay mau
if((ADC>8)&&(ADC<16)){output_b( 0x03);output_d( 0x00);} ;}
if((ADC>16)&&(ADC<24)){output_b( 0x07);output_d( 0x00);}
if((ADC>24)&&(ADC<32)){output_b( 0x0f);output_d( 0x00);}
if((ADC>32)&&(ADC<40)){output_b( 0x1f);output_d( 0x00);}
if((ADC>40)&&(ADC<48)){output_b( 0x3f);output_d( 0x00);}
if((ADC>48)&&(ADC<56)){output_b( 0x7f);output_d( 0x00);}
if((ADC>56)&&(ADC<64)){output_b( 0xff);output_d( 0x00) ;}

if((ADC>64)&&(ADC<72)){output_d( 0x01); output_b( 0xff);}
if((ADC>72)&&(ADC<80)){output_d( 0x03); output_b( 0xff);}
if((ADC>80)&&(ADC<96)){output_d( 0x07); output_b( 0xff);}
if((ADC>96)&&(ADC<100)){output_d( 0x0f); output_b( 0xff);}
if((ADC>104)&&(ADC<112)){output_d( 0x1f); output_b( 0xff);}
if((ADC>112)&&(ADC<120)){output_d( 0x3f); output_b( 0xff);}
if((ADC>120)&&(ADC<128)){output_d( 0x7f); output_b( 0xff);}
if(ADC>128){portd = 0xff; portb = 0xff;}
delay_ms(5); // do nhay nhay theo dieu nhac
}
}


làm theo trong nháy đèn theo nhạc, nhưng mình muốn led lên đến mức cao thì dừng lại vài giây trong khi các led khác rớt xuống , không hiểu diễn tả như vạy các bạn có hiểu không ?
ví dụ theo đoạn nhạc led 1,2 3, 4 chớp sáng led 4 là cao nhất dừng lại vài giây trong khi đó led 1,2 ,3 tắt dần xuống , mong các bạn nào biết chỉ dẫn , cám ơn

ngontu 26-04-2013 09:09 PM

Mình muốn làm được như trong youtube ở địa chỉ như sau :http://www.youtube.com/watch?v=Q2dq0ss8FJ8
bạn nào biết xin chỉ giáo , cám ơn nhiều

saobang 27-04-2013 11:43 AM

http://s-o.webnode.cz/vu-metr/
có file hex và pbc lun đó!


Múi giờ GMT. Hiện tại là 03:42 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam