广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    Arduino UNO 使用按钮控制LED

    来源:网络收集  点击:  时间:2024-03-01
    【导读】:
    之前的经验中我们使用Arduino程序控制一个LED的亮灭闪烁,可实际应用一般都是使用外部信号来控制的,有单纯的开关或红外线感应,这里我们就先使用最简单的按钮来做控制。工具/原料moreArduino UNO实验套装(面包板,跳线,Arduino UNO控制器,USB数据线)按钮开关 * 1个5mm 红色发光二极管 * 1个10K欧姆电阻 * 1个470欧姆电阻 * 1个方法/步骤1/10分步阅读

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

    2/10

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

    3/10

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

    4/10

    将下列程序复制到 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);

    }

    }

    5/10

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

    6/10

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

    7/10

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

    (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。

    8/10

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

    9/10

    实验扩展:上面的例程做过以后,大家可能会想,这样的话我们想要点亮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灯

    }

    }

    10/10

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

    注意事项

    注意按钮开关的连接,需要将开关先连接到10K电阻,通过电阻再连接到Arduino UNO 控制器的 GND 引脚。

    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_184678.html

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号06-01 23:01:05  耗时:0.022