博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Arduino抢答器
阅读量:5158 次
发布时间:2019-06-13

本文共 2334 字,大约阅读时间需要 7 分钟。

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.代码:

1 int redled = 8; //红色LED 输出 2 int yellowled = 7; //黄色LED输出 3 int greenled = 6; //绿色LED输出 4 int redpin = 5; //红色按键引脚 5 int yellowpin = 4; //黄色按键引脚 6 int greenpin = 3; //绿色按键引脚 7 int restpin = 2; //复位按键引脚定义 8 int red; 9 int yellow;10 int green;11 void setup() {12     pinMode(redled, OUTPUT);13     pinMode(yellowled, OUTPUT);14     pinMode(greenled, OUTPUT);15     pinMode(redpin, INPUT);16     pinMode(yellowpin, INPUT);17     pinMode(greenpin, INPUT);18 }19 void loop() //按键循环扫描。20 {21     red = digitalRead(redpin);22     yellow = digitalRead(yellowpin);23     green = digitalRead(greenpin);24     if (red == LOW) RED_YES();25     if (yellow == LOW) YELLOW_YES();26     if (green == LOW) GREEN_YES();27 }28 29 void RED_YES() //一直执行红灯亮,直到复位键按下,结束循环30 {31     while (digitalRead(restpin) == 1) {32         digitalWrite(redled, HIGH);33         digitalWrite(greenled, LOW);34         digitalWrite(yellowled, LOW);35     }36     clear_led();37 }38 void YELLOW_YES() //一直执行黄灯亮,直到复位键按下,结束循环39 {40     while (digitalRead(restpin) == 1) {41         digitalWrite(redled, LOW);42         digitalWrite(greenled, LOW);43         digitalWrite(yellowled, HIGH);44     }45     clear_led();46 }47 void GREEN_YES() //一直执行绿灯亮,直到复位键按下,结束循环48 {49     while (digitalRead(restpin) == 1) {50         digitalWrite(redled, LOW);51         digitalWrite(greenled, HIGH);52         digitalWrite(yellowled, LOW);53     }54     clear_led();55 }56 void clear_led() //清除LED57 {58     digitalWrite(redled, LOW);59     digitalWrite(greenled, LOW);60     digitalWrite(yellowled, LOW);61 }

4.结果

转载于:https://www.cnblogs.com/stefango/p/8932107.html

你可能感兴趣的文章
利用SignalR来同步更新Winfrom
查看>>
反射机制
查看>>
CocoaPod
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
5G边缘网络虚拟化的利器:vCPE和SD-WAN
查看>>
MATLAB基础入门笔记
查看>>
【UVA】434-Matty's Blocks
查看>>
Android开发技术周报 Issue#80
查看>>
hadoop2.2.0+hive-0.10.0完全分布式安装方法
查看>>
django知识点总结
查看>>
C++ STL stack、queue和vector的使用
查看>>
使用Reporting Services时遇到的小问题
查看>>
约瑟夫问题
查看>>
Arduino 报错总结
查看>>
树莓派Android Things物联网开发:树莓派GPIO引脚图
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
如何将应用完美迁移至Android P版本
查看>>
【转】清空mysql一个库中的所有表的数据
查看>>
基于wxPython的python代码统计工具
查看>>
淘宝JAVA中间件Diamond详解(一)---简介&快速使用
查看>>