Ardino基础教程 6_抢答器
實驗六:搶答器
完成上面的實驗以后相信已經有很多朋友可以獨立完成這個實驗了,本實驗就是將上面的按鍵控制小燈的實驗擴展成3 個按鍵對應3 個小燈,占用6 個數字I/O 接口。
電路連接圖
原理這里就不多說了同上面實驗,下面附上參考原理圖和實物連接圖。
實物連接圖
參考源程序:
int redled=8; //紅色LED 輸出
int yellowled=7; //黃色LED輸出
int greenled=6; //綠色LED輸出
int redpin=5; //紅色按鍵引腳
int yellowpin=4; //黃色按鍵引腳
int greenpin=3; //綠色按鍵引腳
int restpin=2; //復位按鍵引腳定義
int red;
int yellow;
int green;
void setup()
{
pinMode(redled,OUTPUT);
pinMode(yellowled,OUTPUT);
pinMode(greenled,OUTPUT);
pinMode(redpin,INPUT);
pinMode(yellowpin,INPUT);
pinMode(greenpin,INPUT);
}
void loop() //按鍵循環掃描。
{
red=digitalRead(redpin);
yellow=digitalRead(yellowpin);
green=digitalRead(greenpin);
if(red == LOW)RED_YES();
if(yellow == LOW)YELLOW_YES();
if(green == LOW)GREEN_YES();
}
void RED_YES()//一直執行紅燈亮,直到復位鍵按下,結束循環
{
while(digitalRead(restpin)==1)
{
digitalWrite(redled,HIGH);
digitalWrite(greenled,LOW);
digitalWrite(yellowled,LOW);
}
clear_led();
}
void YELLOW_YES()//一直執行黃燈亮,直到復位鍵按下,結束循環
{
while(digitalRead(restpin)==1)
{
digitalWrite(redled,LOW);
digitalWrite(greenled,LOW);
digitalWrite(yellowled,HIGH);
}
clear_led();
}
void GREEN_YES()//一直執行綠燈亮,直到復位鍵按下,結束循環
{
while(digitalRead(restpin)==1)
{
digitalWrite(redled,LOW);
digitalWrite(greenled,HIGH);
digitalWrite(yellowled,LOW);
}
clear_led();
}
void clear_led()//清除LED
{
digitalWrite(redled,LOW);
digitalWrite(greenled,LOW);
digitalWrite(yellowled,LOW);
}
實驗現象
實驗現象,都說了是搶答器,肯定是誰先按下,就亮誰的燈啦!然后按下REST 按鍵后,復位。下載完程序,我們自己制作的簡易搶答器就完成了。
程序代碼
int redled=8; int yellowled=7; int greenled=6; int redpin=5; int yellowpin=4; int greenpin=3; int restpin=2; int red; int yellow; int green; void setup() { pinMode(redled,OUTPUT); pinMode(yellowled,OUTPUT); pinMode(greenled,OUTPUT); pinMode(redpin,INPUT); pinMode(yellowpin,INPUT); pinMode(greenpin,INPUT); } void loop() { red=digitalRead(redpin); yellow=digitalRead(yellowpin); green=digitalRead(greenpin); if(red==LOW)RED_YES(); if(yellow==LOW)YELLOW_YES(); if(green==LOW)GREEN_YES(); }void RED_YES() {while(digitalRead(restpin)==1){digitalWrite(redled,HIGH);digitalWrite(greenled,LOW);digitalWrite(yellowled,LOW);}clear_led(); } void YELLOW_YES() {while(digitalRead(restpin)==1){digitalWrite(redled,LOW);digitalWrite(greenled,LOW);digitalWrite(yellowled,HIGH);}clear_led(); } void GREEN_YES() {while(digitalRead(restpin)==1){digitalWrite(redled,LOW);digitalWrite(greenled,HIGH);digitalWrite(yellowled,LOW);}clear_led(); } void clear_led() {digitalWrite(redled,LOW);digitalWrite(greenled,LOW);digitalWrite(yellowled,LOW); }總結
以上是生活随笔為你收集整理的Ardino基础教程 6_抢答器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ardino基础教程 5_按键控制
- 下一篇: Ardino基础教程 7_蜂鸣器发声实验