匿名
未登录
登录
丢石头百科
搜索
查看“Arduino系列教程五:按键”的源代码
来自丢石头百科
名字空间
页面
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
Arduino系列教程五:按键
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
上面两章我们讲解两个经典的程序点亮一个LED灯和Hello World程序。这一章开始我们将讲解Arduino的软件编程控制硬件。本系列教程主要是Arduin的入门教程,讲解基本的接口编程。Arduino的很多教程都是通过面包板连接硬件电路。我本人很不喜欢这种方式,连接一些简单的电路还行,如果电路复杂的时候就非常麻烦了。再接下来的教程中我将使用Accessory Shield扩展板作为示例讲解Arduino的数字IO,模拟IO,PWM,I2C,SPI等接口的编程。 [[File:221208su4cquccmuu3mamg.png]] <table border="1" cellpadding="2" cellspacing="0" style="overflow: visible; table-layout: auto; border-collapse: collapse; border-spacing: 0px; border: 1px solid rgb(212, 212, 212); margin: 3px 0px; color: rgb(0, 0, 0); font-family: 'Microsoft YaHei', 微软雅黑; font-size: 16px; line-height: 24px; background-color: rgb(255, 255, 255);"><tbody><tr style="line-height: 1.5; font-size: 12px; padding: 0px; word-break: break-all; word-wrap: break-word; width: 70px; height: 23px; border: 1px solid rgb(212, 212, 212); vertical-align: middle;"><td style="line-height: 1.5; padding: 0px; word-break: break-all; word-wrap: break-word; width: 211.7pt; height: 23px; border: 1px solid rgb(212, 212, 212); vertical-align: middle;"> <b>[接口]</b><ol style="font-size: 14px; line-height: 1.5;"><li><b>Arduino接口</b> 方便接入各种带Arduino接口的主板</li><li><b>XBee接口</b> 方便接入各种XBee通信模块</li></ol> <b>[器件]</b><ol start="3" style="font-size: 14px; line-height: 1.5;"><li><b>0.96inch OLED</b> 方便进行各种显示实验,分辨率128×64</li><li><b>多彩 LED</b> 红绿蓝三基色LED,可以显示256×256×256种颜色 </li><li><b>蜂鸣器</b> PWM连接,能演奏简单的音乐</li>* <b>10K可调电位器</b><li><b>ADXL345</b> 三轴加速度计,测量范围可达±16g</li><li><b>LM75BDP</b> 温度传感器,分辨率可达0.125℃</li></ol></td><td style="line-height: 1.5; padding: 0px; word-break: break-all; word-wrap: break-word; width: 208.1pt; height: 23px; border: 1px solid rgb(212, 212, 212); vertical-align: middle;"><ol style="font-size: 14px; line-height: 1.5;"><li><b>五向摇杆</b> 上、下、左、右和按下,共5种状态</li>* <b>XBee 状态指示灯</b>* <b>电源指示灯</b>* <b>XBee EASYLINK按键</b>* <b>Arduino和XBee复位按键</b><li><b>DS3231</b> 高精度实时时钟</li><li><b>CR1220电池座</b> 实时时钟供电</li><li><b>P9813</b> RGB LED驱动芯片</li></ol> <b>[跳线]</b><ol style="font-size: 14px; line-height: 1.5;"><li><b>调试/通信配置跳线</b> 当选择TXD与TX,RXD与RX相连时,可使用上位机软件通过Arduino主控板串口对XBee通信模块进行调试和配置 当选择TXD与RX,RXD与TX相连时,可通过Arduino主控板串口与XBee通信模块进行数据通信</li></ol></td></tr></tbody></table> 打开Arduino IDE,编写如下程序并保存。 <syntaxhighlight lang="python"> #define KEY A4 void setup() { pinMode(KEY,INPUT); digitalWrite(KEY,HIGH); Serial.begin(9600); } void loop() { if(digitalRead(KEY) == LOW){ delay(10); if(digitalRead(KEY) == LOW) Serial.println("KEY PRESS!!!"); while(digitalRead(KEY) == LOW){ delay(10); } } }</syntaxhighlight> 把Accessory Shield插上UNO PLUS开发板。编译并上传程序,打开串口监视器。等待一会儿,按下Accessory Shield中五向摇杆的中间按键,串口监视器会显示按键按下的信息。 <b>程序分析:</b> <b></b>程序开头定义按键接到A4管脚,setup()函数中设置管脚为输入模式,默认高电平,初始化串口,波特率为9600. loop()函数中判断管脚是否为低电平,若为低电平测表示有按键被按下。delay(10); 延时10ms去抖动,防干扰。再次判断管脚状态。若为低则表示不是抖动,是按键按下。使用Serial.println("KEY PRESS!!!")语句显示信息。然后等待按键被释放。
返回至
Arduino系列教程五:按键
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志