Arduino UNO 使用按钮控制LED

2025-11-03 21:15:07

1、如图所示准备实验需要使用的硬件

Arduino UNO 使用按钮控制LED

2、如图所示,进行硬件的连接

Arduino UNO 使用按钮控制LED

3、如图所示,连接 Arduino UNO 控制器和电脑

Arduino UNO 使用按钮控制LED

4、将下列程序复制到 Arduino IDE 中

const int buttonPin = 2;     

const int ledPin =  7;      

int buttonState = 0;         

void setup() {

  pinMode(ledPin, OUTPUT);

  pinMode(buttonPin, INPUT);

}

void loop() {

  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {

    digitalWrite(ledPin, HIGH);

  }

  else {

    digitalWrite(ledPin, LOW);

  }

}

Arduino UNO 使用按钮控制LED

5、选择正确的板型(Arduino UNO)以及端口,将代码上传到UNO控制器中,如果上传无误如下图所示:

Arduino UNO 使用按钮控制LED

6、硬件回顾:按钮开关:按钮是一种常用的控制电器元件,常用来接通或断开‘控制电路’(其中电流很小),从而达到控制电动机或其他电气设备运行目的的一种开关。经过测试,我们用的按钮开关一共4个引脚分别为1、2、3、4如下图,其中1和2引脚始终相连(以下我们称它为A脚);3和4引脚始终相连(以下我们叫它B脚),当按钮按下时,A脚和B脚连接,不按按钮情况它们不连接。

Arduino UNO 使用按钮控制LED

7、现在我们就对本节中的几个新的代码进行回顾,如下所示,大家也可以对应图中所示的程序进行分析。

(1)const int buttonPin = 2;     const int ledPin =  7;    分别定义按键和LED引脚

(2)int buttonState = 0;   按键状态初始化

(3)  buttonState = digitalRead(buttonPin);将按钮状态值付给变量buttonState

(4)

if (buttonState == HIGH) {

    digitalWrite(ledPin, HIGH);

  }

  else {

    digitalWrite(ledPin, LOW);

  }

调节判断语句,当if中条件成立时,则执行if语句中的代码,若if中条件不成立,则执行else中的语句。此例中就是判断引脚状态,如果读取的button值为HIGH则点亮LED,若读取的button值为LOW,则熄灭LED。

Arduino UNO 使用按钮控制LED

8、实验效果:当按下按钮开关时,LED亮起;当开关松开后,LED熄灭。如下图所示:

Arduino UNO 使用按钮控制LED

Arduino UNO 使用按钮控制LED

9、实验扩展:上面的例程做过以后,大家可能会想,这样的话我们想要点亮LED,手就不能离开按钮了,这样非常不方便,怎么才能像家里控制电灯一样,按一下点亮,再按下熄灭呢,我们可以改进程序,使得可以实现这样的效果,将程序修改为下面列出的代码,再上传到Arduino UNO控制器中。

#define LED 7       //定义LED引脚为13

#define BUTTON 2    //定义按钮开关引脚为12

int val = 0;        //变量val用来储存按钮状态

int old_val = 0;    //暂存val变量的上一个时间单位

int state = 0;       //0表示LED关闭,1表示打开

void setup(){

  pinMode(LED, OUTPUT);     //设定LED引脚为输出状态

  pinMode (BUTTON,INPUT);   //设定按钮引脚为输入状态

}

void loop(){

  val = digitalRead(BUTTON); //读取按钮状态并储存

  //检查按钮的变化情况

  if((val == HIGH)&&(old_val == LOW)){

    state =1-state;

    delay(40);              //延时简单抗抖动

  }

  old_val = val;            //val下载已经是旧的了,让我们暂存一下

  if (state == 1){

    digitalWrite(LED,HIGH);  //开启LED灯

  }else{

    digitalWrite(LED,LOW);   //关闭LED灯

  }

}

Arduino UNO 使用按钮控制LED

10、扩展实验效果:程序编译无误并上传后,可以实现的是按一下按钮后,LED发光二极管亮起,再按下一次按钮后,LED将会熄灭。

Arduino UNO 使用按钮控制LED

Arduino UNO 使用按钮控制LED

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢