Nội dung chính
Chuẩn bị
- Arduino bất kì (Mình dùng con Pro Micro)
- 1 jack đực cắm loa loại 3.5mm
- Led với số lượng, màu sắc tùy ý
- Số điện trở tương ứng với số led loại khoảng 220 ôm => 1k5 ôm
- Dây nối
- Thêm breadboard hoặc board đồng loại có nhiều lỗ ý (Chẳng biết gọi tên thế nào :D) để sắp xếp cố định các led
- Những bản nhạc tuyệt vời.
Ráp phần cứng
Nối jack cắm loa như mình đã chỉ ở bài Thí nghiệm, xem lại bài ấy để hiểu nha
Sơ đồ mạch điện, ở đây mình dùng 8 led màu và vị trí như hình :
À sơ đồ này thiếu cái jack cắm loa nha, cực âm jack nối GND, chân tín hiệu jack nối A2 .
Nguyên lí hoạt động
Như mình đã giải thích ở bài Thí nghiệm trước, khi bật nhạc, sóng âm thanh sẽ tạo ra các mức điện áp mà chân A2 sẽ có nhiệm vụ đọc. Khi đọc được mức điện áp ấy mình sẽ so sánh và phân loại âm thanh ấy thuộc chế độ led nào và cho phát chế độ ấy. Mình thấy rằng nhạc càng lên cao trào thì số đo chân A2 càng cao nên MÌNH SẼ CHO LED SÁNG CÀNG NHIỀU KHI SỐ ĐO CÀNG CAO. Đồng thời mình cũng có cho tinh chỉnh thời gian chờ để thấy mode led cho thích hợp.
Xem thêm: Người Chăm – Wikipedia tiếng Việt
Code lập trình
Code đây nạp luôn cho nó nóng : D. Bạn hoàn toàn có thể tinh chỉnh và điều khiển thông số kỹ thuật trong hàm mode và cảm nhận để sao cho chuẩn nhất. Tất nhiên là mình đã tinh chỉnh và điều khiển rồi 😀
int pin[]={2,3,4,5,6,7,8,9}; //Do-Xanhla-Xanhduong-Vang-Vang-Xanhduong-Xanhla-Do int jack=A2; int data; int ledStatus; int v=50; void setup() { for(int i=0;i<8;i++) { pinMode(pin[i],OUTPUT); digitalWrite(pin[i],1); } delay(500); for (int i=0;i<8;i++) { digitalWrite(pin[i],0); } } void loop() { data=analogRead(jack); mode(data); led(ledStatus); delay(v); } void mode(int d) { if(d==0){ledStatus=0;} if(d<15&&d>0){ledStatus=1;v=90;} if(d>=15&&d<40){ledStatus=2;v=60;} if(d>=40&&d<70){ledStatus=3;v=50;} if(d>=70&&d<100){ledStatus=4;v=40;} if(d>=100&&d<130){ledStatus=5;v=20;} if(d>=200){ledStatus=6;v=20;} } void led(byte s) { switch (s) { case 0: for(int i=0;i<8;i++) { digitalWrite(pin[i],0); } break; case 1: digitalWrite(pin[2],1); digitalWrite(pin[3],1); digitalWrite(pin[5],1); digitalWrite(pin[0],0); digitalWrite(pin[1],0); digitalWrite(pin[4],0); digitalWrite(pin[6],0); digitalWrite(pin[7],0); break; case 2: digitalWrite(pin[2],0); digitalWrite(pin[3],0); digitalWrite(pin[5],0); digitalWrite(pin[0],0); digitalWrite(pin[1],1); digitalWrite(pin[4],1); digitalWrite(pin[6],1); digitalWrite(pin[7],0); break; case 3: digitalWrite(pin[2],1); digitalWrite(pin[3],0); digitalWrite(pin[5],1); digitalWrite(pin[0],1); digitalWrite(pin[1],0); digitalWrite(pin[4],0); digitalWrite(pin[6],0); digitalWrite(pin[7],1); break; case 4: digitalWrite(pin[2],0); digitalWrite(pin[3],0); digitalWrite(pin[5],0); digitalWrite(pin[0],1); digitalWrite(pin[1],1); digitalWrite(pin[4],0); digitalWrite(pin[6],1); digitalWrite(pin[7],1); break; case 5: digitalWrite(pin[2],0); digitalWrite(pin[3],1); digitalWrite(pin[5],0); digitalWrite(pin[0],1); digitalWrite(pin[1],0); digitalWrite(pin[4],1); digitalWrite(pin[6],0); digitalWrite(pin[7],1); break; case 6: for(int i=0;i<8;i++) { digitalWrite(pin[i],1); } break; } }
Thành quả
Ok, cắm jack vào máy tính, bật nguồn cho arduino và mở nhạc lên để thưởng thức đi nào !
Xem thêm: Hợp âm Hận Đồ Bàn - Chế Linh
Như vậy là ta vừa tìm hiểu và khám phá xong cách làm bộ led nháy theo nhạc khá mê hoặc rồi đó, nếu như những bạn cũng thấy mê hoặc thì cho mình cái Rate Note nha :)), cảm ơn. Chúc những bạn thành công xuất sắc .
À những hình ảnh bên dưới và avatar bài chỉ mang tính minh họa thôi nha, do điện thoại cảm ứng mình cùi bắp không chụp rõ được, nên lấy ảnh trên mạng 😀 ( Xem video là biết ), sorry .
Đây là video demo, khá là mờ, những bạn thông cảm : ( (
Source: http://139.180.218.5
Category: Nhạc chế