按键控制LED流水灯实验

本文介绍了通过编程实现面包板上的4个LED灯按顺序和反序循环闪烁的实验,涉及硬件连接、软件设计,以及按键控制LED灯闪烁模式的详细步骤和结果分析。
摘要由CSDN通过智能技术生成

一、实验任务

该实验的具体任务及要求为在面包板上接4LED灯,通过程序实现LED依次闪烁并按当前模式循环,并要求按键按下一次,LED灯依次闪烁方向改变,即 LED灯反序循环闪烁。

二、硬件设计

通过电流的方向行连接各元件的正负极,为保障电路安全加上适当电阻值的电阻,再利用按键开关来控制LED灯循环闪烁的方向改变。

三、软件设计

const int KEY=3;

const int LED1=8;

const int LED2=9;

const int LED3=10;

const int LED4=11;

int KEY_count=0;

void setup(){

  pinMode(KEY,INPUT_PULLUP);

  pinMode(LED1,OUTPUT);

  pinMode(LED2,OUTPUT);

  pinMode(LED3,OUTPUT);

  pinMode(LED4,OUTPUT);

}

void loop()

{

  ScanKey();

  switch(KEY_count){

    case 0:

    {digitalWrite(LED1,LOW);

    digitalWrite(LED2,LOW);

    digitalWrite(LED3,LOW);

    digitalWrite(LED4,LOW);

  }

  break;

  case 1:{

  digitalWrite(LED1,HIGH);

  delay(100);

  digitalWrite(LED1,!digitalRead(LED1));

    digitalWrite(LED2,HIGH);

    delay(100);

  digitalWrite(LED2,!digitalRead(LED2));

    digitalWrite(LED3,HIGH);

    delay(100);

  digitalWrite(LED3,!digitalRead(LED3));

    digitalWrite(LED4,HIGH);

    delay(100);

  digitalWrite(LED4,!digitalRead(LED4));

  delay(100);}

  break;

  case 2:{

  digitalWrite(LED4,HIGH);

  delay(100);

  digitalWrite(LED4,!digitalRead(LED4));

    digitalWrite(LED3,HIGH);

    delay(100);

  digitalWrite(LED3,!digitalRead(LED3));

    digitalWrite(LED2,HIGH);

    delay(100);

  digitalWrite(LED2,!digitalRead(LED2));

    digitalWrite(LED1,HIGH);

    delay(100);

  digitalWrite(LED1,!digitalRead(LED1));

  delay(100);}

  break;

  default:

  {digitalWrite(LED1,LOW);

  digitalWrite(LED2,LOW);

  digitalWrite(LED3,LOW);

  digitalWrite(LED4,LOW);

  KEY_count=0;}

  }

}

  void ScanKey(){

    if (digitalRead(KEY)==LOW){

      delay(10);

      if(digitalRead(KEY)==LOW)

      {KEY_count++;

      while(digitalRead(KEY)==LOW);}

    }

  }

先定义按键,LED灯的引脚及按键计数。

然后编写,当按下按键时,改程序会发生改变的程序。

接下来,利用switch和default,来完成相关LED依次循环闪烁的程序代码。

最后处理按键计数及去抖动的代码。

四、结果分析

1、电路实物

电路实物如图所示,供电电压为五V,电源端有五个输出接口,分别连接到四个LED灯和开关,以此来控制电路并供电。

电路图如图所示:

2结果分析

不按按键时四个灯全灭,按下第一次按键时,LED灯依次闪烁并按统一顺序循环闪烁,按下第二次按键时,LED灯闪烁次序与第一次相反形成反序闪烁并按照当下闪烁模式循环闪烁,以此类推,每按下一次按键时LED灯循环闪烁方向改变。

  • 45
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值