查看“第三课--按钮控制的LED开关/zh”的源代码
←
第三课--按钮控制的LED开关/zh
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language|Lesson_3--Button_switch_control_LED}} {| style="width: 800px;" |- | ==目的== 前两个实验介绍了如何用软件直接控制led灯的亮灭。如果我们增加一个按键,通过按键来控制led的亮灭,就可以实现硬件与软件的结合。前面实际上是Microduino的I/O口作为输出去控制led,增加按键如何去监测按键输入的信号呢?今天以按键为例讲讲Microduino如何作为输入使用。 ==设备== *'''[[Microduino-Core]]''' *'''[[Microduino-FT232R]]''' *其他硬件设备 **面包板跳线 一盒 **面包板 一块 **LED发光二极管 一个 **220欧姆电阻 一个 **按键 一个 **USB数据连接线 一根 ==按键== *按键原理 [[File:button.jpg|600px|center|thumb]] 若用此封装按键制作PCB时,若不好布线,可利用它有两对引脚始终导通作为导线布线。 *按键接法 [[File:button connection.jpg|600px|center|thumb]] ==原理图== [[File:button schematic.jpg|600px|center|thumb]] 采用外部下拉,没按下时为低“0”,按下为高。 ==程序== *led显示按键值 <source lang="cpp"> const int buttonPin = 2; // 定义按键输入引脚 const int ledPin = 13; //定义led引脚 int buttonState = 0; //初始化按键值 void setup() { pinMode(ledPin, OUTPUT); //设置led引脚为输出状态 pinMode(buttonPin, INPUT); //设置按键引脚为输入状态 } void loop(){ buttonState = digitalRead(buttonPin);//从指定的数字引脚读取数值,是高还是低。 if (buttonState == HIGH) { digitalWrite(ledPin, HIGH); //如果按键信号是高,则led点亮(led接法阳极接控制脚,阴极接GND) } else { digitalWrite(ledPin, LOW); //否则熄灭 } } </source> *led电压翻转 <source lang="cpp"> const int buttonPin = 2; // 定义按键输入引脚 const int ledPin = 13; int buttonState = 0; boolean led; //定义led为布尔型(true或false) void setup() { pinMode(ledPin, OUTPUT); // pinMode(buttonPin, INPUT); //设置按键引脚为输入状态 pinMode(buttonPin, INPUT_PULLUP);//设置按键引脚为内部上拉输入状态 } void loop(){ buttonState = digitalRead(buttonPin); if (buttonState ==HIGH) //外部下拉,因为这样起始状态为低,只有按下才是高,按下才翻转,否则不按时则会闪烁 { delay(200); //短暂延时,防抖 // delay(1000); //长按 // if (buttonState == LOW) //判断是否还是低 led=!led; //led状态翻转 } digitalWrite(ledPin, led); } 此实验需要注意按键的防抖,可以调整延时时间,或者在按键信号变化两端加104电容,电压信号不会突变,稳定点。 </source> 按键防抖详细参考:http://www.geek-workshop.com/thread-74-1-1.html ===digitalRead()用法=== 读一个引脚的值,返回值为HIGH或低。 ==结果== *程序1:led显示按键按键引脚值,按键值高则点亮,低则熄灭。 *程序2:每按一次按键,led电压翻转一次,注意防抖。 ==视频== |}
该页面使用的模板:
模板:Language
(
查看源代码
)
模板:Nmbox
(
查看源代码
)
返回至
第三课--按钮控制的LED开关/zh
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息