本文將介紹如何基于一個(gè)簡(jiǎn)單PCB洞洞板制作紅綠燈,并通過(guò)Arduino Nano R3對(duì)它進(jìn)行控制。
元器件清單
Arduino Nano R3
220歐姆電阻3個(gè)
按鈕開(kāi)關(guān)
洞洞板
單排母插針
烙鐵
電路原理圖
Arduino Nano制作紅綠燈連接圖
電路連接圖,因?yàn)檐浖袥](méi)有找到Nano的原型圖,所以用UNO代替了,但是兩者間所示的接口都是一樣的。三個(gè)按鈕開(kāi)關(guān)分別連接Nano的GND和10、11、12針;Nano的4、5、6針?lè)謩e通過(guò)三個(gè)220歐電阻連接LED發(fā)光二極管的正極,負(fù)極接Nano的GND。
紅綠燈焊接
基于Arduino Nano制作紅綠燈
Arduino Nano制作紅綠燈
采用洞洞板的目的,是可以將所有的原件焊接在一起,更利于后續(xù)的美化。同時(shí)使用單排母插針焊接在PCB洞洞板一側(cè),這樣可以方便將Arduino Nano隨時(shí)插入和取下來(lái),所有分立元件焊接在另一側(cè),這樣看上去會(huì)簡(jiǎn)潔很多。
控制代碼
本項(xiàng)目的代碼和電路一樣非常簡(jiǎn)單,易于實(shí)現(xiàn)。完整代碼如下:
const int led[3] = {4, 5, 6};
const int button[3] = {10, 12, 11};
int state[3] = {0, 0, 0};
int button_on[3] = {0, 0, 0};
long last_time[3] = {0, 0, 0};
long cur_time[3] = {0, 0, 0};
long debounce_delay = 500;
void setup() {
for (int i = 0; i < 3; i++) {
pinMode(led[i], OUTPUT);
}
for (int i = 0; i < 3; i++) {
pinMode(button[i], INPUT_PULLUP);
}
}
void loop() {
for (int i = 0; i < 3; i++) {
digitalWrite(led[i], state[i]);
button_on[i] = (digitalRead(button[i]) == LOW);
cur_time[i] = millis();
if (cur_time[i] - last_time[i] > debounce_delay) {
if (button_on[i]) {
state[i] = 1 - state[i];
last_time[i] = cur_time[i];
}
};
};
}
-
pcb
+關(guān)注
關(guān)注
4326文章
23160瀏覽量
399935 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187815
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論