Arduino抢答器
0.部分需要掌握的知识点和注意事项
(1)面包板的结构

(2)按键的结构:按键按下时,左右两侧连通;按键松开后,左右两侧断开,但1号与2号相连,3号与4号相连,即按键松开时,同侧不相连,相连不同侧。
注:在将按键插入面包板的时候,需要用力,以免按键不能正常接入电路。

(3)函数
①pinMode():
功能:指定特定端口是作为输入还是输出;
形式:pinMode(pin,mode)
参数:pin:想要设定的端口号;mode:模式,有INPUT,OUTPUT和INPUT_PULLUP三种模式。(INPUT_PULLUP参数设定内置的上拉电阻是否被使能)。
返回值:none;
②digitalWrite():
功能:控制引脚输出高低电平;如果引脚被pinMode()设为OUTPUT,5V (或者 3.3V 在使用 3.3V的板子上) 就是HIGH, 0V (ground) 就是 LOW。如果引脚被设为INPUT,digitalWrite()将对输入引脚的上拉电阻使能HIGH(或者禁止LOW)。建议digitalwrite和digitalread使用之前都要用piMode指定输出输入,否则引脚上拉电阻会像限流电阻一样(此时应该是高阻态)。
形式:digitalWrite(pin,value)
参数:pin:要操作的引脚;value:有HIGH和LOW两个取值。
③digitalRead():
功能:读取引脚电平状态;
形式:digitalRead(pin)
参数:pin:要读取的引脚
返回值:HIGH或者LOW;
1.原理图:

2.实物图(注意有些面包板的上下部分的中间会有一段断开的部分,如下图红框所示):

3.代码:
int redled = ; //红色LED 输出
int yellowled = ; //黄色LED输出
int greenled = ; //绿色LED输出
int redpin = ; //红色按键引脚
int yellowpin = ; //黄色按键引脚
int greenpin = ; //绿色按键引脚
int restpin = ; //复位按键引脚定义
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) == ) {
digitalWrite(redled, HIGH);
digitalWrite(greenled, LOW);
digitalWrite(yellowled, LOW);
}
clear_led();
}
void YELLOW_YES() //一直执行黄灯亮,直到复位键按下,结束循环
{
while (digitalRead(restpin) == ) {
digitalWrite(redled, LOW);
digitalWrite(greenled, LOW);
digitalWrite(yellowled, HIGH);
}
clear_led();
}
void GREEN_YES() //一直执行绿灯亮,直到复位键按下,结束循环
{
while (digitalRead(restpin) == ) {
digitalWrite(redled, LOW);
digitalWrite(greenled, HIGH);
digitalWrite(yellowled, LOW);
}
clear_led();
}
void clear_led() //清除LED
{
digitalWrite(redled, LOW);
digitalWrite(greenled, LOW);
digitalWrite(yellowled, LOW);
}
4.结果
略
Arduino抢答器的更多相关文章
- “耐撕”团队第一次讨论——“抢答器”需求分析
团队名称:"耐撕" 团队成员:齐嘉亮.刘伟硕.濮成林.郑蕊 项目名称:"抢答器"(有待改善) 第一次讨论 时间:20160316 地点:软件所 人员:全体 内容 ...
- 智能循迹避障小车&抢答器
智能循迹避障小车 →视频链接← 抢答器
- 【Zigbee技术入门教程-号外】基于Z-Stack协议栈的抢答系统
[Zigbee技术入门教程-号外]基于Z-Stack协议栈的抢答系统 广东职业技术学院 欧浩源 一.引言 2017年全国职业院校技能大赛"物联网技术应用"赛项中任务三题2的 ...
- Arduino可穿戴开发入门教程LilyPad介绍
Arduino可穿戴开发入门教程LilyPad介绍 Arduino输出模块 LilyPad官方共提供了4种输出模块,他们分别是单色LED模块(图1.5).三色LED模块(图1.6).蜂鸣器模块(图1. ...
- Arduino Wireless Communication – NRF24L01 Tutorial(arduino无线通信---NRF24L01教程)
arduino下nrf24l01库文件及相关说明 库的说明文档 https://tmrh20.github.io/RF24/ 库的源代码github下载页面 https://tmrh20.github ...
- Arduino+DS18b20+OLED Display
DS18b20获取到温度数值保存到变量中,然后和天气图标还有滚动字幕一起发送到OLED 屏幕上显示 需要用到的库均可在Arduino库管理器下载. 电路图: 图中屏幕接线已在代码中写出,温度传感器da ...
- ”耐撕“团队 2016.3.21 站立会议3 2 1 GO!
”耐撕“团队 2016.3.21 站立会议 时间:2016.3.21 ① 17:20-17:45 ②17:55-18:10 总计40分钟 成员: Z 郑蕊 * 组长 (博客:http://www ...
- “耐撕”团队 2016.3.25 站立会议
成员: Z 郑蕊 * 组长 (博客:http://www.cnblogs.com/zhengrui0452/), P 濮成林(博客:http://www.cnblogs.com/charliePU/) ...
- “耐撕”团队2016.03.28 站立会议
1. 时间:20:30--20:50 2. 成员: Z 郑蕊 * 组长 (博客:http://www.cnblogs.com/zhengrui0452/), P 濮成林(博客:http://www.c ...
随机推荐
- LeetCode & Q219-Contains Duplicate II
Array Hash Table Description: Given an array of integers and an integer k, find out whether there ar ...
- sql优化基础篇
优化的步骤: 0.先sql运行看看是否真的很慢,注意设置SQL_NO_CACHE 1.where条件单表查,锁定最小返回记录表.这句话的意思是把查询语句的where都应用到表中返回的记录数最小的表开始 ...
- 新概念英语(1-3)Sorry, sir
Does the man get his umbrella back? A:My coat and my umbrella please. B:Here is my ticket. A:Thank y ...
- Python入门之函数的形式参数与实参/参数的具体使用方法
本篇目录: 一. 函数参数之形式参数与实参 二. 函数参数的具体使用 #1.位置参数:按照从左到右的顺序定义的参数 位置形参:必选参数 位置实参:按照位置给形参传值 #2.关键字参数:按照key=va ...
- QT 实现在QLabel上画图
QT之所以不能再任意控件上绘图是因为QT的事件过滤器把控件的绘图事件给过滤了. 在paintevent()函数中,通常需要设置QPainter对象,创建QPainter对象的同时需要指定绘图设备,即继 ...
- JQuery开发报错集锦
报错一:JQuery $.each遍历JSON字符串报Uncaught TypeError:Cannot use 'in' operator to search for "70". ...
- 解决MySQL在修改列时因为外键依赖出错的问题
因为 favorite_food 中的 person_id 对 person 表中的 person_id 有外键依赖关系,所以在执行 ALTER TABLE person MODIFY person_ ...
- 使用poi导出数据到excel
一.首先是导入poi所需要的jar包,我是用的是maven,添加jar包依赖 <dependency> <groupId>org.apache.poi</groupId& ...
- js中的递归总结
主要从"变量+函数"和"函数+变量"两个方面说明解释. function fun() { // 自己调用自己,称为递归调用 fun(); console.log ...
- c#代码输入图片
Image bgimage = Image.FromFile(flieUrl + bgImg); if (bgimage != null) { Bitmap bmp1 = new Bitmap(bgi ...