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 ...
随机推荐
- AngularJS1.X学习笔记9-自定义指令(中)
今天好大的雨啊!上一节中,我们的指令中的工厂函数中都是返回了一个叫做链接函数的工人函数,事实上我们的工厂函数也是可以返回一个对象,这个对象里面可以包含很多的属性,这使得我们可以创建更加强大的指令. 一 ...
- 浅谈Web网站的架构演变过程
前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 阶 ...
- django 配置URLconf和获取值
django中正确配置url匹配找到视图: 1 在项目下的settings.py中ROOT_URLCONF = "项目名.urls" 表示 前台发来请求会先去项目下的test3/u ...
- RxJava系列6(从微观角度解读RxJava源码)
RxJava系列1(简介) RxJava系列2(基本概念及使用介绍) RxJava系列3(转换操作符) RxJava系列4(过滤操作符) RxJava系列5(组合操作符) RxJava系列6(从微观角 ...
- 个人网站建设(适合Java初学者)(一)
概述 作为一个在八本学校在校生,没有实验室,也没有项目可做.一直想做一个个人博客,一年前学完javaweb之后做了一个简单的博客,ui惨不忍睹就算了,还有各种bug.酝酿了很久,寒假用了将近一个月时间 ...
- 02、NetCore2.0优化之Nuget包
02.NetCore2.0优化之Nuget包 在NetCore2.0中的包是如何管理的?如何存储的?微软做了哪些优化工作? -------------------------------------- ...
- html框架练习-基本网页制作
index.html <html> <head> <title>html框架</title> <meta charset="utf-8& ...
- border三角形阴影(不规则图形阴影)和多重边框的制作
前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! 1. border的组合写法 border:border-width border-style borde ...
- CentOS 6.8下二级域名及目录的绑定
二级域名对应目录的绑定: 第一步: 开启mod_rewrite模块,默认是开启的,这里可以查下是否开启 终端输入:vim /etc/httpd/conf/httpd.conf 回车 查看188行:L ...
- 那些年,曾踩过的Spark坑
1.报错18/01/25 14:56:58 ERROR executor.CoarseGrainedExecutorBackend: Driver 127.0.0.1:37159 disassocia ...