Arduino传感器06.Arduino 连接开关

按钮或开关连接电路中的两个开路端子。当按下连接到引脚8的按钮开关时,此示例打开引脚2上的LED。

按钮

下拉电阻

在电子逻辑电路中使用下拉电阻,以确保在外部器件断开连接或处于高阻抗状态时,Arduino的输入信号达到预期的逻辑电平。虽然没有任何东西连接到输入引脚,但这并不意味着它是一个逻辑0。下拉电阻连接在地面和器件上相应的引脚之间。

下图显示了数字电路中下拉电阻的示例。在电源电压和微控制器引脚之间连接了一个按钮开关。在这样的电路中,当开关闭合时,微控制器输入处于逻辑高值;但是当开关打开时,下拉电阻将输入电压下拉到接地(逻辑零值),防止输入处于未定义状态。

下拉电阻的电阻必须大于逻辑电路的阻抗,否则可能会使电压下降太多,而无论开关的位置如何,引脚处的输入电压将保持在恒定的逻辑低值。

下拉电阻

必需的组件

你将需要以下组件:

  • 1 × Arduino UNO 板
  • 1 × 330欧姆电阻
  • 1 × 4.7K欧姆电阻(下拉)
  • 1 × LED

程序

按照电路图进行连接,如下图所示。

电路图

草图

在计算机上打开Arduino IDE软件。使用Arduino语言进行编码控制你的电路。通过单击“New”打开一个新的草图文件。

Sketch

Arduino代码

// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 8; // the number of the pushbutton pin
const int ledPin = 2; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

void setup() {
   // initialize the LED pin as an output:
   pinMode(ledPin, OUTPUT);
   // initialize the pushbutton pin as an input:
   pinMode(buttonPin, INPUT);
}

void loop() {
   // read the state of the pushbutton value:
   buttonState = digitalRead(buttonPin);
   // check if the pushbutton is pressed.
   // if it is, the buttonState is HIGH:
   if (buttonState == HIGH) {
      // turn LED on:
      digitalWrite(ledPin, HIGH);
   } else {
      // turn LED off:
      digitalWrite(ledPin, LOW);
   }
}

代码说明

当开关打开时(按钮未被按下),按钮的两个端子之间没有连接,因此引脚接地(通过下拉电阻),我们读取低电平。当开关闭合时(按钮被按下),它在其两个端子之间建立连接,将引脚连接到5伏,这样我们读出高电平。

结果

按下按钮时LED亮灯,松开按钮时LED熄灯。

发布者:suiyublg,转转请注明出处:https://huibian.net/1506-2/

(0)
suiyublg的头像suiyublg
上一篇 2017年4月24日 17:08
下一篇 2017年4月26日 17:11

相关推荐

  • Arduino教程26.Arduino do … while循环

    do … while 循环类似于while循环。在while循环中,循环连续条件在循环开始时测试,然后再执行循环体。do … while语句在执行循环体之后测试循环连续条件。因此,循环体将被执行至少一次。 当 do … while 终止时,将使用while子句后的语句继续执…

    2017年3月25日
    14400
  • Arduino项目01.Arduino 闪烁LED

    LED是用于许多不同应用的小型强光灯。首先,我们将学习闪烁LED,即微控制器的Hello World。它就像打开和关闭灯一样简单。建立这个重要的基线将为你提供坚实的基础,以实现更复杂的实验。 必需的组件 你将需要以下组件: 程序 按照电路图连接面包板上的组件,如下图所示。 注意 – 要了解LED的极性,请仔细查看。两个腿中较短的,朝向灯…

    2017年4月12日
    22200
  • Arduino声音01.Arduino 音调库

    在本章中,我们将使用Arduino音调库。它只是一个Arduino库,可以在任意Arduino引脚上产生指定频率(50%占空比)的方波。持续时间可以有选择的指定,否则方波会一直持续到stop()函数被调用。该引脚可以连接到压电蜂鸣器或扬声器播放音调。 警告 – 不要将引脚直接连接到任何音频输入。电压远远高于标准线路电压,并可能损坏声卡输…

    2017年4月29日
    46700
  • Arduino声音03.Arduino 网络通信

    德州仪器的CC3000 WiFi模块是一个小型银包,最终为你的Arduino项目带来了易用,经济实惠的WiFi功能。 它使用SPI进行通信(而不是UART),因此你可以根据需要尽可能快或尽可能慢地推送数据。它有一个合适的IRQ引脚中断系统,因此你可以有异步连接。它支持802.11b/g,open/WEP/WPA/WPA2安全,TKIP及AES。具有“BSD&…

    2017年5月1日
    90100
  • Arduino教程25.Arduino while循环

    while循环将会连续、无限循环,直到括号()内的表达式变为false。必须用一些东西改变被测试的变量,否则while循环永远不会退出。 while循环语法 while(expression) { Block of statements; } while循环执行顺序

    2017年3月25日
    17700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
欢迎大家来到大雄学编程!