阅读(2650)
赞(0)
Arduino 连接开关
2016-12-26 16:47:21 更新
按钮或开关连接电路中的两个开路端子。当按下连接到引脚8的按钮开关时,此示例打开引脚2上的LED。
下拉电阻
在电子逻辑电路中使用下拉电阻,以确保在外部器件断开连接或处于高阻抗状态时,Arduino的输入信号达到预期的逻辑电平。虽然没有任何东西连接到输入引脚,但这并不意味着它是一个逻辑0。下拉电阻连接在地面和器件上相应的引脚之间。
下图显示了数字电路中下拉电阻的示例。在电源电压和微控制器引脚之间连接了一个按钮开关。在这样的电路中,当开关闭合时,微控制器输入处于逻辑高值;但是当开关打开时,下拉电阻将输入电压下拉到接地(逻辑零值),防止输入处于未定义状态。
下拉电阻的电阻必须大于逻辑电路的阻抗,否则可能会使电压下降太多,而无论开关的位置如何,引脚处的输入电压将保持在恒定的逻辑低值。
必需的组件
你将需要以下组件:
- 1 × Arduino UNO 板
- 1 × 330欧姆电阻
- 1 × 4.7K欧姆电阻(下拉)
- 1 × LED
程序
按照电路图进行连接,如下图所示。
草图
在计算机上打开Arduino IDE软件。使用Arduino语言进行编码控制你的电路。通过单击“New”打开一个新的草图文件。
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熄灯。