Arduino 连接开关

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

Arduino 连接开关

下拉电阻

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

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

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

Arduino 连接开关

必需的组件

你将需要以下组件:

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

程序

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

Arduino 连接开关

草图

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

Arduino 连接开关

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熄灯。