Arduino基础入门篇(按键控制LED)

    本篇我们主要介绍通过检测按键状态来控制LED灯亮灭,把LED的亮灭变成人为可控制的。

一、按键开关介绍
按键开关主要是指轻触式按键开关,也称之为轻触开关。按键开关是一种电子开关,属于电子元器件类,最早出现在日本[称之为:敏感型开关],使用时以满足操作力的条件向开关操作方向施压开关功能闭合接通,当撤销压力时开关即断开,其内部结构是靠金属弹片受力变化来实现通断的。
按键开关由嵌件、基座、弹片、按钮、盖板组成,其中防水类轻触开关在弹片上加一层聚酰亚胺薄膜。
按键开关有接触电阻荷小、精确的操作力误差、规格多样化等方面的优势,在电子设备及白色家电等方面得到广泛的应用如:影音产品、数码产品、遥控器、通讯产品、家用电器、安防产品、玩具、电脑产品、健身器材、医疗器材、验钞笔、雷射笔按键等等。
**加粗样式**
二、一个开关控制一个LED灯
1、所需器材
Uno R3开发板
配套USB数据线
面包板及配套连接线
1个LED灯
2个220Ω电阻W
1个轻触按键
2、面包板视图:
在这里插入图片描述
3、搭设说明:
见面包板示意图
4、Mixly程序:
在这里插入图片描述
5、程序编写:

int led=8;
int aj=3;
int value;
void setup() {
  Serial.begin(9600);
  pinMode(led,OUTPUT);
  pinMode(aj,INPUT_PULLUP);     //设置按键管脚上拉输入模式
}
void loop() {
  value=digitalRead(aj);
  Serial.println(value);
  delay(100);
  if(value==0)
  {
    digitalWrite(led,HIGH);  
  }
  else
  {
    digitalWrite(led,LOW);
    }
   }

四、多个按键开关控制多个LED
1、所需器材
Uno R3开发板
配套USB数据线
面包板及配套连接线
2个LED灯
4个220Ω电阻W
2个轻触按键
2、面包板视图:
在这里插入图片描述
3、实现功能
按下红色的按键,红灯亮,绿灯灭
按下绿色的按键,绿灯亮,红灯灭
4、Mixly程序:
在这里插入图片描述
5、程序编写:

int led1=9;
int led2=10;
int anjian1=3;
int anjian2=4;
int value1,value2;
void setup() {
  Serial.begin(9600);
  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
  pinMode(anjian1,INPUT);
  pinMode(anjian2,INPUT);
}

void loop() {
  value1=digitalRead(anjian1);
  value2=digitalRead(anjian2);
  delay(300);
  if(value1==0)
  {
    digitalWrite(led1,HIGH);
    digitalWrite(led2,LOW);
  }
  if(value2==0)
  {
    digitalWrite(led1,LOW);
    digitalWrite(led2,HIGH);
  }  
}

五、实现按一下LED亮,再按一下LED灭
1、所需器材
Uno R3开发板
配套USB数据线
面包板及配套连接线
1个LED灯
2个220Ω电阻W
1个轻触按键
2、面包板视图:
在这里插入图片描述
3、Mixly程序:
在这里插入图片描述
4、程序编写:

int  led=10;
int  aj=3;
int num=0;
void setup() {
Serial.begin(9600);
pinMode(led,OUTPUT);
pinMode(aj,INPUT_PULLUP); 
}

void loop() {
  int ajvalue=digitalRead(aj);
  Serial.println(ajvalue);
  delay(300);
  if(ajvalue==0)
  {
      num++;
      if(num%2==1)
      {
        digitalWrite(led,HIGH);
      }
      else
      {
        digitalWrite(led,LOW);
      }
  }
}

六、函数介绍
digitalRead()
描述:读取指定数字引脚的值
函数原型:digitalRead(pin)
参数:要读取的数字引脚编号
返回值:HIGH(1)或LOW(0)
七、总结分析
通过digitalRead()函数来读取数字I/O引脚状态,然后根据状态去点亮或者熄灭LED灯。需要注意:

1、由于Arduino上电后,数字I/O管脚处于悬空状态,此时通过digitalRead()读到的是一个不稳定的值(可能是高,也可能是低)。所以通过pinMode()函数设置按键引脚为上拉输入模式。即使用内部上拉电阻,按键未按下时,引脚将为高电平,按键按下为低电平。

2、按键在按下的过程中,有一段接触未接触的不稳定过程,即按键的抖动。在判断按键状态时,通过delay()延时跳过抖动的不稳定状态,即软件上进行消抖。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值