Đây là một sản phẩm được thực hiện từ vật liệu có thể tái chế được như một chiếc máy scan cũ, máy in cũ. Trong một chiếc máy scan cũ, bạn có thể tận dụng các động cơ, nguồn, cảm biến ánh sáng và một số thứ khác.
Các bước thực hiện:
Bước 1: Làm thế nào để kết nối các LED RGB
Với bộ cảm biến ở trên tay, bạn phải tìm cách để kết nối chúng với mạch điều khiển Arduino. Theo thử nghiệm, bạn nối các đèn LED trực tiếp vào các header, không có điện trở, mỗi pin kết nối với LED terminal. LED RGB cũng là anode thông thường, tức là cực dương terminal được chia sẻ với từng màu sắc để tạo ra ánh sáng, có thể kết nối cực âm tương ứng với ground.
Bước 2: Kết nối cảm biến máy scan với mạch Arduino
Các LED RGB bên trong cảm biến vẫn là một LED, nó được kết nối theo cách thông thường đến mạch Arduino, các chân pin của mỗi màu phải được kết nối với các chân PWM. Do đó, có thể chọn số lượng màu đỏ, màu xanh lá cây, màu xanh dương mà muốn đèn muốn hiển thị. Sự khác biệt duy nhất của đèn LED này là anode thông thường và phải có pin thông thường kết nối đến 5V của GND. Theo cách này, bạn có thể sử dụng điện trở 330ohm trong mỗi pin cathode. Do đó, bạn kết nối chân thứ 9, 10 và 11 của Arduino Nano PWM trực tiếp đến từng cực âm terminal của LED và cực dương đến 5V.
Có thể bạn quan tâm: Làm đồng hồ số với mạch Arduino và giấy PaperCraft
Bước 3: Viết code
Để có ánh sáng với màu sắc đẹp, bạn có thể viết code theo hướng tỏa sáng của đèn LED.
Sau đây là đoạn code minh họa:
//pins definitions
#define blue 9
#define red 10
#define green 11
int bluevalue,greenvalue,redvalue,i,j,k; //variables to keep the values
// of the waves in each pinvoid setup(){
pinMode(blue,OUTPUT);//LED pins as output
pinMode(red,OUTPUT);
pinMode(green,OUTPUT);redvalue=128; //first color -> red+green=yellow
greenvalue=128;
bluevalue=0;
i=-1;
j=1;
k=0;
}
void loop(){
redvalue=redvalue+i;//changing the wave in each pin every loop cycle
greenvalue=greenvalue+j;
bluevalue=bluevalue+k;analogWrite(red,255-redvalue);//updating the PWM values
analogWrite(green,255-greenvalue);
analogWrite(blue,255-bluevalue);delay(50);//this can be changed to make the colors change faster or slower
if(redvalue==255){ //test if an clor will be increased, decreased or turned off.
i=-1; //see the image in the instructable to understand better.
j=1;
k=0;
}
if(greenvalue==255){
i=0;
j=-1;
k=1;
}
if(bluevalue==255){
i=1;
j=0;
k=-1;
}
}
Bạn có thể thay đổi một số thông số trong đoạn code trên. Ví dụ như: số lượng màu đỏ, xanh lá cây, xanh dương in LED bằng hàm analogWrite().