实验六:抢答器

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

  1. python基础教程:装饰器的高级应用

    装饰器和装饰器模式 装饰器模式是面向对象的一种设计模式,支持将行为动态增加到已经存在的对象上.当装饰一个对象的时候,就表示独立与其他类实例对象,为该对象扩展了新的功能. python的装饰器不是装饰器 ...

  2. python基础教程:装饰器

    1. 函数 在python中,函数通过 def关键字.函数名和可选的参数列表定义.通过 return关键字返回值.我们举例来说明如何定义和调用一个简单的函数: >>> def foo ...

  3. python中修饰器的优点和作用_Python入门基础教程之装饰器

    Python装饰器的定义:在代码运行期间在不改变原函数定义的基础上,动态给该函数增加功能的方式称之为装饰器(Decorator) 装饰器的优点和用途: 1. 抽离出大量函数中与函数功能本身无关的的雷同 ...

  4. Ardino基础教程 20_红外遥控

    实验二十:红外遥控 库文件下载链接:ArduinoCode20-红外遥控库代码.zip 注意:把 IRremote 文件夹放到 编译器安装目录下的\Arduino\libraries里.不然编译不过. ...

  5. Ardino基础教程 19_舵机控制

    实验十九:舵机控制 舵机控制实验Servo库版本的代码参考如下链接:ArduinoCode19-舵机控制Servo库版本代码.ino 舵机是一种位置伺服的驱动器,主要是由外壳.电路板.无核心马达.齿轮 ...

  6. Ardino基础教程 15_火焰报警器

    实验十五:火焰报警器 认识火焰传感器 火焰传感器(即红外接收三极管)是机器人专门用来搜寻火源的传感器,本传感器对火焰特别灵敏.实物如图: 火焰传感器利用红外线对火焰非常敏感的特点,使用特制的红外线接收 ...

  7. Ardino基础教程 14_倾斜开关

    实验十四:倾斜开关 倾斜开关控制led灯的亮灭 实验器材清单 滚珠开关 1个 LED灯 1个 220欧姆直插电阻 1个 面包板 1个 面包板跳线 1扎 实验接线图 按照Arduino教程将控制板.扩展 ...

  8. Ardino基础教程 2_LED闪烁实验

    实验二:LED 闪烁实验 LED 小灯实验是比较基础的实验之一,上一个" Hello World!"实 验里已经利用到了Arduino 自带的LED,这次我们利用其他I/O 口和 ...

  9. Ardino基础教程 25_8X8LED点阵

    实验二十五:8X8LED点阵 点阵实验另一版本代码参考如下链接下载:ArduinoCode25-8X8LED点阵num.ino 点阵在我们生活中很常见,很多都有用到他,比如LED 广告显示屏,电梯显示 ...

最新文章

  1. 为什么大公司还在采用过时的技术?
  2. CSUOJ-1980 不堪重负的数(区间dp)
  3. jboss linux 性能,搭建jprofiler对jboss性能监控
  4. Nginx服务状态的监控
  5. pl/sql developer 快捷操作: 显示不可见字符 显示历史sql语句 拷贝整个sql窗口的语句至新的sql窗口...
  6. ROST反剽窃论文检测系统介绍
  7. 我要自学网access教程百度云_我要自学网教程资源汇总
  8. EPLAN P8.2.7 学习版安装教程(适用于 Win10 64位)
  9. 博客园app for xamarin android
  10. 移植fastboot到2440
  11. 页面优化之懒加载与预加载
  12. 将SSH密匙添加到云效并下载代码
  13. 一张图看懂阿里云ACK
  14. 数据挖掘技术的算法与应用【转】
  15. java计算机毕业设计夕阳红养老院系统源码+lw文档+系统+数据库
  16. 软件测试笔记(十六)- 缺陷轰炸和beta测试
  17. M-K趋势检验以及突变检验
  18. 泛目录源码(效果介绍)
  19. 一款开源的播放器框架WMPlayer
  20. mysql 唯一索引与插入重复自动更新

热门文章

  1. QLineEdit响应回车时避免Button同时响应
  2. 一、面试题(持续跟新)
  3. 去除MyEclipse频繁弹出的Update Progress窗口
  4. 暂停更新CSDN博客
  5. 照书学WPF之 Dependency Property 1
  6. UA OPTI570 量子力学17 创生算符与湮灭算符
  7. [概统]本科二年级 概率论与数理统计 第四讲 连续型随机变量
  8. UA MATH564 概率论 样本均值的偏度与峰度
  9. UA MATH571B 试验设计VI 随机效应与混合效应1
  10. python基础复习