0 đánh giá

Tự làm Mạch LED RGB sáng tắt theo điệu nhạc

Bạn thường thấy trong các quán Bar, các dãy LED sáng theo điệu nhạc thật thú vị. Bài hướng dẫn này sẽ giúp bạn làm điều đó.

Bước 1: Chuẩn bị linh kiện
khoere_arduino-7773086805.jpg khoere_led-rgb-day-5574714955.jpg khoere_tip-31c-8073788695.jpg khoere_jack-cam-audio-5969870472.jpg khoere_dien-tro-5255464878.jpg

Linh kiện gồm có:

- Arduino bất kỳ

- LED RGB dãy như hình.

- 3 Tip 31C hoặc 41 tùy bạn

- Jack cắm audio đực và cái

- 3 Điện trở 1K

- Board tự ráp, nguồn 12V..

Bước 2: Mạch nguyên lý và đấu nối
khoere_mach-nguyen-ly-led-reg-sang-theo-nhac-6289179916.jpg khoere_tip-4721334581.jpg khoere_lam-mahc-arduino-7928922665.jpg khoere_led-4684544196.jpg khoere_noi-led-3699853667.jpg

Ở đây ta chú ý mạch nguyên lý như hình trên. Ta nối riêng mạch TIP và jack audio. Sau đó tiến hành nối với Arduino như hình. Chú ý nguồn 12V cấp vào Vin của Arduino nhé. Nếu bạn nối vào 5V mạch sẽ die đó.

Nếu bạn dùng bản Micro như trên thì ta chỉ cần nối mạch và nối dây giống mạch nguyên lý là được. Ở đây ta dùng 2 Jack audio để 1 đầu nối vào A0, còn lại bạn có thể nối đến Ampli của mình. Ta thấy LED RGB ở đây chính là Dãy LED bạn nhé.

Bạn bỏ vào Hộp cho đẹp.

Bước 3: Chương trình
/*
Music Reactive Color Changing Lights
Source code
Made by- Saiyam Agrawal
*/
int threshold = 20;

void setup()
{
  pinMode(9, OUTPUT); // set all the pins as output
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
}

void loop() 
{  // enter the loop
 if(analogRead(A0) > threshold) // check if audio signal goes above threshold
 {
   int a = random(1, 6); // store a random number
   
   if(a == 1) // glow red
   {
     digitalWrite(9, HIGH);
     digitalWrite(10, LOW);
     digitalWrite(11, LOW);
   }
   if(a == 2) // glow green
   {
     digitalWrite(9, 0);
     digitalWrite(10, 1);
     digitalWrite(11, 0);
   }
   if(a == 3) // glow orange
   {
     analogWrite(9, random(100, 255));
     analogWrite(10, random(100, 255));
     digitalWrite(11, 0);
   }
   if(a == 4) // glow cyan
   {
     digitalWrite(9, 0);
     analogWrite(10, random(100, 255));
     analogWrite(11, random(100, 255));
   }
   if(a == 5) // glow purple
   {
     analogWrite(9, random(100, 255));
     digitalWrite(10, 0);
     analogWrite(11, random(100, 255));
   }
   if(a == 6) glow blue
   {
     digitalWrite(9, 0);
     digitalWrite(10, 0);
     digitalWrite(11, 1);
   }
   delay(20); // wait for 20ms
 }
 else
 digitalWrite(9, LOW); // if audio signal is less than 20, set all the pins low
 digitalWrite(10, LOW);
 digitalWrite(11, LOW);
 // again reach the top and start
}

 

(!) Nếu có bất kỳ thắc mắc nào cần hỏi vui lòng đặt câu hỏi tại HỏiHay.Net, Cộng đồng Hỏi đáp Hỏi Hay sẽ trả lời bạn.
751 lượt xem ^tháng ^ngày, ^năm
admin 2,030 điểm

Please log in or register to Comment this Media.