【Arduino】按钮控制LED灯开关

简单的按钮控制LED灯开关

请注意,本文编写于 271 天前,最后修改于 259 天前,其中某些信息可能已经过时。

一.前言

最近几年物联网,人工智能,无人驾驶等行业火热,在这样的背景下,我们学校在前几年也新开了个物联网专业,同时计科和软件等专业也开设了物联网相关的课程,为了记录所学所以在这里分享学习笔记。

二.工具

硬件「Arduino」),网上有卖主板不是很贵,但没有相应的配件,建议配套购买常用硬件,看个人经济能力

Arduino主板
Arduino主板

软件「Mixly(米思齐)」),类似编程猫,能用模块来写程序
Mixly
Mixly

三.步骤

3.1在mixly中写好相关模块控制代码

开关控制LED的模块代码.png
开关控制LED的模块代码.png

对应的c语言代码如下

const int LED = 13;//led的管脚
const int SW = 8;//开关的管脚
boolean lastState=false;/记录上次的开关状态,初始化为LOW
boolean toggle=false;//输出给LED的信号,初始化为Low
int click=0;//开关信号的改变次数,初始化为e


void setup(){
pinMode(LED,OUTPUT)
pinMode(SW,INPUT);
lastState= digitalRead(SW);/读取开关的初始值
}

void loop(){
    boolean b1 = digitalRead(SW);
    if(b1!=lastState)
    {
        delay(20)//去震动
        boolean b2 = digitalRead(SW);//在获取一次开关状态
        if(b2==b1)//确认两次开关是否一致
        {
            lastState = b1;//存储开关状态
            click++;//次数累计
        }
}

if(click==2)//如果开关状态改变两次
{
    click=0;//归零
    toggle = !toggle;//取相反值
    if (toggle == true){//如果toggle是真就让灯亮,否则就灭     
      pinMode(LED, OUTPUT);
      digitalWrite(LED,HIGH);
    } else {
      pinMode(LED, OUTPUT);
      digitalWrite(LED,LOW);
    }
}

3.2接线

首先说明一下常用的输入输出控制模块

常用输入输出模块
常用输入输出模块

1.数字输出模块:设置一个具体的引脚,输出为高低电平,一般就是开和关
2.数字输入模块:获取某一个引脚输入的电平为高或者低
3.模拟输出模块:设置某个引脚输出特定电压值
4.模拟输入模块:获取具体的引脚输入的电压值
数字和模拟的区别主要是:模拟能输出特定值,数字输出的只有高和低(一般用作开关功能)

蓝色线是LED灯的线,左边那头连接灯,右边那头连接对应的管脚常量LED:13,之前在前面定义过为13,即对应代码块:

控制灯光的代码块
控制灯光的代码块

黑色线是开关的线,上面那头连接管脚常量SW::8,下面那头连接开关按钮。

arduino插线
arduino插线

3.3.编译并上传代码实现功能

编译
编译

注意:选项那里要选择如图所示的「Arduino/Genuino Uno」()
先点击编译看是否成功,再把usb线连接到电脑并上传,上传成功后这个arduino就可以实现开关控制led的开关了

四.演示

Gif展示如下:

按钮控制LED开关
按钮控制LED开关

arduino还可以实现很多功能,温度,屏幕显示等等不过需要相应的组件,这些只能算作入门级的,相信大家可以自己Diy许多有趣的东西

添加新评论

评论列表