Arduino小實驗 - 按鈕霹靂燈
功能展示:
此實驗,主要是練習LED與按鈕的控制,
功能是:
若沒按下按鈕時,LED燈會輪流暗掉,從最右邊的黃燈到最左邊的綠燈,
若按下靠近黃燈的按鈕時,就只執行黃燈的部分,
若按下靠近綠燈的按鈕時,就只執行綠燈的部分,
實驗材料:
Arduino Uno控制板麵包板
LED * 8 (4個綠 4個黃)
按鈕兩顆
接LED 電阻 *8 (220歐姆~1k歐姆之間)
接按鈕 電阻 *2 10K歐姆
麵包板接線14條
麵包板接線:
此圖使用123d練習網站製作,需要注意的是,燈泡+腳(長腳)要接+ , -腳(短腳)要接-,
還有Ardunio的第0、1腳位勿接,會影響程式的寫入。
程式碼
const int LED_G = 5;
const int LED_Y = 5;
int Button_G = A0;
int Button_Y = A1;
int LED_G_GO[]={8,9,10,11,12};
int LED_Y_GO[]={3,4,5,6,7};
//以上初始值設定
void setup() {
Serial.begin(9600);//初始化串口
pinMode(Button_G,INPUT); //測試當下綠按鈕是否按下
pinMode(Button_Y,INPUT); //測試當下黃按鈕是否按下
for(int i = 0 ; i < LED_Y ; i++) //告知接黃led的腳位都為輸出
{
pinMode(LED_Y_GO[i],OUTPUT);
}
for(int i = 0 ; i < LED_G ; i++) //告知接綠led的腳位都為輸出
{
pinMode(LED_G_GO[i],OUTPUT);
}
}
void loop() {
int Button_G_GO = digitalRead(Button_G); //取得綠按鈕的狀態
int Button_Y_GO = digitalRead(Button_Y); //取得黃按鈕的狀態
Serial.println(Button_G_GO); //顯示綠按鈕的狀態
Serial.println(Button_Y_GO); //顯示黃按鈕的狀態
if(Button_G_GO == HIGH && Button_Y_GO == LOW)
//當綠按鈕按下,黃按鈕沒按下時,執行閃綠燈
{
for(int i = 0 ; i<LED_Y; i++)
{
digitalWrite(LED_Y_GO[i],LOW);
}
for(int i = 0 ; i<LED_G; i++)
{
digitalWrite(LED_G_GO[i],HIGH);
}
for(int i = 0 ; i<LED_G; i++)
{
digitalWrite(LED_G_GO[i],LOW);
delay(200);
digitalWrite(LED_G_GO[i],HIGH);
}
}
if(Button_G_GO == LOW && Button_Y_GO == HIGH)
//當綠按鈕沒按下,黃按鈕按下時,執行閃黃燈
{
for(int i = 0 ; i<LED_G; i++)
{
digitalWrite(LED_G_GO[i],LOW);
}
for(int i = 0 ; i<LED_Y; i++)
{
digitalWrite(LED_Y_GO[i],HIGH);
}
for(int i = 0 ; i<LED_Y; i++)
{
digitalWrite(LED_Y_GO[i],LOW);
delay(200);
digitalWrite(LED_Y_GO[i],HIGH);
}
}
if(Button_G_GO == LOW && Button_Y_GO == LOW)
//當按鈕都沒按下時,執行閃黃、綠燈
{
for(int i = 0 ; i<LED_Y; i++)
{
digitalWrite(LED_Y_GO[i],HIGH);
}
for(int i = 0 ; i<LED_G; i++)
{
digitalWrite(LED_G_GO[i],HIGH);
}
for(int i = 0 ; i<LED_Y; i++)
{
digitalWrite(LED_Y_GO[i],LOW);
delay(200);
digitalWrite(LED_Y_GO[i],HIGH);
}
for(int i = 0 ; i<LED_G; i++)
{
digitalWrite(LED_G_GO[i],LOW);
delay(200);
digitalWrite(LED_G_GO[i],HIGH);
}
}
}
附錄:
程式碼下載
https://drive.google.com/file/d/0B6ny8fOEPdSPcWEwTTcwMmR3akk/view?usp=sharing
電阻值計算機
http://www.digikey.tw/zh/resources/conversion-calculators/conversion-calculator-resistor-color-code-5-band
123d-Ardunio練習網站
https://123d.circuits.io/
留言
張貼留言