Arduino 入门到精通 例程6-抢答器

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Arduino 入门到精通例程7

抢答器设计实验

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

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

相关文档
最新文档