Ðăng Nhập

View Full Version : thắc mắc về đèn nháy theo nhạc


ngontu
23-04-2013, 10:54 PM
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 đó!