这个例子演示了pinmode()的INPUT_PULLUP参数。它通过OCROBOT控制器与电脑的USB串口通讯来检测开关的状态。
除此之外,当输入HIGH,板上13号脚连接的LED点亮,否则熄灭。
OCROBOT控制器 |
开关或按键 |
面包板 |
跳线 |
连接两条线到控制器,黑色的接到GND和按键的一个脚,第二根线接到数字脚2和按键的另一个脚。
按键被按下的时候,连接它们的两脚就联通了。当按键没按下去的时候,按键的两个脚间是断开的。因为2号脚的内部的上拉是激活状态的并且连接到了5V,按键按下的时候就能读取到HIGH,否则读取到LOW,因为连接到了GND。
程序的第一件事就是要设置和电脑的通信速率为9600波特率
Serial.begin(9600);
接下来,设置数字口2位输入,并启用上拉电阻。
pinMode(2,INPUT_PULLUP);
设置13号脚为输出
pinMode(13, OUTPUT);
现在设置完成了。
为按键建立一个新的变量,可以用整型数据来存储0或者1。
int sensorValue = digitalRead(2);
十进制显示串口监视器上
Serial.println(sensorValue, DEC);
/* Input Pullup Serial 这个例子演示了INPUT_PULLUP的使用. 不像input一样是没有上拉电阻的,它内部的20k欧姆的上拉电阻连在了5V上。 */ void setup() { //开始串口通信 Serial.begin(9600); //设置2号脚为输入,并且使用上拉电阻。 pinMode(2, INPUT_PULLUP); pinMode(13, OUTPUT); } void loop() { //读取按键信息,保存在变量 int sensorVal = digitalRead(2); //显示到串口 Serial.println(sensorVal); // 记住,上拉就意味着按键的逻辑反过来了。 if (sensorVal == HIGH) { digitalWrite(13, LOW); } else { digitalWrite(13, HIGH); } }