arduino——按键灯(笔记)

作者: 猛犸象和剑齿虎 | 来源:发表于2020-01-13 21:08 被阅读0次
初次接触这个电路图时,有些晕头转向,一直考虑并联串联的关系。 image.png

实际上一接线顿时就明白了,这根本就是两趟电路,一趟接的5V的电连接一个比较大的电阻,另一个数字信号发出接上一个小电阻,通过大电阻的按键控制LED灯的开关。(当然在板的内部其实是有联系的)

材料准备

arduino 板1块,按键开关1个,LED灯1个,10KR电阻一个,250R电阻一个,导线若干。

接线按上图接线即可。

实际效果

代码部分

const int buttonPin =2;//定义按键频道
const int ledPin=13;//定义灯的频道
int buttonState =0;//定义按键的状态为0(关)

void setup() 
{

pinMode(ledPin,OUTPUT);//设置灯的信号和输出模式
pinMode(buttonPin,INPUT); //设置按键的信号和输出模式
}

void loop() 
{

buttonState = digitalRead(buttonPin);//按键状态等于数字信号读取的2号信道的状态,当然此刻是0或者说是LOW
  if(buttonState == HIGH)
  {
    digitalWrite(ledPin,HIGH);//按下按键灯就亮
    }
   else
   {
    digitalWrite(ledPin,LOW);
  }
}

实际效果

GIF.gif

修改电路图用arduino板内部的上拉电阻来控制灯的亮灭。

image.png

修改代码

const int buttonPin =2;
const int ledPin=13;
int buttonState =0;

void setup() 
{

pinMode(ledPin,OUTPUT);
pinMode(buttonPin,INPUT_PULLUP); 
}

void loop() 
{

buttonState = digitalRead(buttonPin);
  if(buttonState == HIGH)
  {
    digitalWrite(ledPin,HIGH);
    }
   else
   {
    digitalWrite(ledPin,LOW);
  }
}

效果是一样的不同的是LED灯是常亮的,按下按键会灭掉。

升级

按一下按键灯亮,再按一下灯灭。

接线方式

与第一种一样。

代码部分

int buttonPin =2;
int ledPin=13;
boolean ledState = false;//定义灯的状态为假
boolean buttonState =true;//定义按键的状态为真

void setup() 
{

pinMode(ledPin,OUTPUT);
pinMode(buttonPin,INPUT_PULLUP); 
}

void loop() 
{
while (digitalRead(buttonPin) == HIGH){//while循环如果按键频道读取为真时循环
  if(ledState == true)//判断灯的状态为真时
  {
    digitalWrite(ledPin,LOW);//灯灭
    ledState = !ledState;//更改灯的状态,第一次变成假
    }
   else
   {
    digitalWrite(ledPin,HIGH);//灯亮
    ledState = !ledState;//更改灯的状态,第一次变成假
  }
  delay(500);//延迟很重要,不然系统运行速度过快按键可能失灵
}
}

运行效果

GIF.gif

相关文章

网友评论

    本文标题:arduino——按键灯(笔记)

    本文链接:https://www.haomeiwen.com/subject/cqbnactx.html