单片机技术网|技术阅读
登录|注册

您现在的位置是:单片机技术网 > 技术阅读 > arduino教程 lesson14 -- 抢答器设计实验

arduino教程 lesson14 -- 抢答器设计实验

完成上面的实验以后相信已经有很多朋友可以独立完成这个实验了,本实验就是将上面的按键控制小灯的实验扩展成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按键后,复位。

下载完程序,我们自己制作的简易抢答器就完成了。

往期回顾



01


02


03


04