arduino程序-按键开关控制电路及程序(基础知识)
1-14 按键开关控制电路及程序
程序演示效果(电路等看下方)
在示例,01 baisics , digitalreadserial
示例程序
/*
DigitalReadSerial
Reads a digital input on pin 2, prints the result to the Serial Monitor
This example code is in the public domain.
DigitalReadSerial
读取针脚2上的数字输入,将结果打印到串行监视器
此示例代码位于公共域中。
http://www.arduino.cc/en/Tutorial/DigitalReadSerial
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
//数字引脚2上有一个按钮。给它起个名字:
int pushButton = 2;
// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
//以每秒9600位的速度初始化串行通信:
Serial.begin(9600);
// make the pushbutton's pin an input:
//将按钮的引脚设为输入:
pinMode(pushButton, INPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
//读取输入引脚:
int buttonState = digitalRead(pushButton);
// print out the state of the button:
//打印出按钮的状态:
Serial.println(buttonState);
delay(1); // delay in between reads for stability
}
此时arduino开发板中的按键电路搭建好了,与电脑也连接成功了,此时上传程序
打开串口监视器,可以看到数字1,为当前读取到的电平状态
当按下开关时,串口监视器显示状态值0
放开又会变成1
串口监视器
作用:显示arduino程序运行状态,要显示的内容,需要在程序中告诉需要显示什么信息,arduinoIDE才会将信息显示到此串口监视器上。
定义一个整型变量pushButton初始化为2
串口通信(若了解arduino的工作状态,如某个变量在程序运行中产生的变化,使用串口函数可以进行变量的窗口显示)
启动串口通信,同时将通信速率调节到9600(有多个固定档),使用serial库的库函数begin()
PinMode(),设置引脚模式(输入或者输出模式)
使用serial库的库函数printIn()
注意arduino不仅有serial工具库,还有其他的库,一些其他开发者也贡献了很多库
变量buttonState存储当前按键存储状态,初始值为函数digitalRead返回值
digitalRead()
http://www.taichi-maker.com/homepage/reference-index/arduino-code-reference/digitalread/
读取2号引脚的输入信号状态值,只返回高电平HIGH或者低电平LOW两个int类型常量值
在上方的窗口监视器中只有0或者1两个数字,
所以此处使用数字1表示高电平HIGH,数字0表示低电平LOW
即HIGH1;LOW0;
Serial.printLn()
将数值变量输出到串口监视器中
(1秒即可,是程序更加稳定运行)
搭建按键电路
需要的电路元件
按键
10K欧姆
4根导线
红色导线连+5v
黑色导线接地GND
面包板
面包板中间的很深的凹槽,将上下部分分开了,不相连通
Arduino UNO
实际电路连接
下面最上方的两个引脚,同侧,电路不相连(断开)
下方两个引脚,不同侧,电路相连(导通)
面包板中间的很深的凹槽,将上下部分分开了,不相连通
将按键开关的两侧,分别安在深槽的两端
注意按键一定不要装反了,否则的话后面可能都失败了
绿色导线,一端连接数字输入输出引脚2,另一端连接面包板按键开关左上角
10K欧姆电阻,一端插入按键开关左下角,另一端插入电源轨靠近红色的一行
最短导线,一端插入按键开关右下角,另一端插入电源轨最下方一排
红色导线,一端插入arduino的+5V引脚,另一端插入电源轨靠近红色的一行
黑色导线,一端插入arduino的GND接地引脚,另一端插入电源轨最下方一排
此时电路搭建结束了,此时可以将程序编译上传,并且配合串口监视器,一定对传输速率进行设置
若设置传输速率不同的话,如57600,此时显示一堆乱码
若arduino开发板引脚2悬空,结果如下
开始串口监视器可能为0,摇一摇,就变成1了,引脚悬空读取的数值是极不稳定的,所以此处使用上拉电阻的方式读取引脚信号