用户工具

站点工具


learing:examples:inputpullupserial

Input Pullup Serial (读取输入口,启用上拉电阻)

这个例子演示了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);
  }
}
learing/examples/inputpullupserial.txt · 最后更改: 2017/04/07 10:03 (外部编辑)