用户工具

站点工具


learing:examples:inputpullupserial

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

learing:examples:inputpullupserial [2017/04/07 10:03] (当前版本)
行 1: 行 1:
 +====== Input Pullup Serial (读取输入口,启用上拉电阻)======
  
 +这个例子演示了pinmode()的INPUT_PULLUP参数。它通过OCROBOT控制器与电脑的USB串口通讯来检测开关的状态。
 +
 +除此之外,当输入HIGH,板上13号脚连接的LED点亮,否则熄灭。
 +
 +===== 硬件要求 =====
 +
 +|OCROBOT控制器|
 +|开关或按键|
 +|面包板|
 +|跳线|
 +
 +===== 电路图 =====
 +
 +连接两条线到控制器,黑色的接到GND和按键的一个脚,第二根线接到数字脚2和按键的另一个脚。
 +
 +按键被按下的时候,连接它们的两脚就联通了。当按键没按下去的时候,按键的两个脚间是断开的。因为2号脚的内部的上拉是激活状态的并且连接到了5V,按键按下的时候就能读取到HIGH,否则读取到LOW,因为连接到了GND。
 +
 +===== 代码 =====
 +
 +程序的第一件事就是要设置和电脑的通信速率为9600波特率
 +<code cpp>​Serial.begin(9600);</​code>​
 +
 +
 +接下来,设置数字口2位输入,并启用上拉电阻。
 +
 +<code cpp>​pinMode(2,​INPUT_PULLUP);</​code>​
 +
 +
 +设置13号脚为输出
 +
 +<code cpp>​pinMode(13,​ OUTPUT);</​code>​
 +
 +现在设置完成了。
 +
 +为按键建立一个新的变量,可以用整型数据来存储0或者1。
 +
 +<code cpp>int sensorValue = digitalRead(2);</​code>​
 +
 +
 +十进制显示串口监视器上
 +
 +<code cpp>​Serial.println(sensorValue,​ DEC);</​code>​
 +
 +<code cpp>/*
 + 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);
 +  }
 +}</​code>​
learing/examples/inputpullupserial.txt · 最后更改: 2017/04/07 10:03 (外部编辑)