欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mixly按键控制LED灯

程序员文章站 2022-06-20 12:17:55
...

一、实验目的及要求

button开关led。

二、实验原理与内容

实现米思齐按键控制LED(改写方法3)。

三、实验软硬件环境

硬件:Arduino、LED
软件:Mixly IDE

四、实验过程(实验步骤、记录、数据、分析)

Mixly模块:
Mixly按键控制LED灯
Mixly按键控制LED灯
模块代码:

volatile byte LED;			//定义字节型变量LED
volatile byte SW;			//定义字节型变量SW(switch表示开关)
volatile int b1;			//定义整型变量b1
volatile int b2;			//定义整型变量b2
volatile byte click;			//定义字节型变量click(按下的次数)
volatile boolean lastState;		//定义布尔型变量lastState(上一次开关状态)
volatile boolean toggle;		//定义布尔值LED灯的信号
 
void setup(){
  pinMode(LED, OUTPUT);
  pinMode(8, INPUT_PULLUP);
  Serial.begin(9600);
  LED = 13;
  SW = 8;
  lastState = 0;
  toggle = 0;
  click = 0;
  b1 = digitalRead(8);
  b2 = digitalRead(8);
}
 
void loop(){
  b1 = digitalRead(8);
  Serial.println(b1);			//自动打印b1状态(注:这只是为了测试,可删)
  if (b1 != lastState) {
    delay(20);				//延迟20毫秒防止抖动
    b2 = digitalRead(8);		//读取目前开关的状态并赋值给b2
    if (b2 == b1) {			//如果b1的状态不等于b2的状态
      lastState = b1;			//将b1的状态赋值给上一个状态
      click = click + 1;		//按下的次数加1
    }
  }

  if (click == 2) {			//如果按下的次数为2,则执行以下:
    click = 0;				//将按下的次数初始化为0
    toggle = !toggle; 			//信号取反,一开始关,则现在开,反之则关
    pinMode(LED, OUTPUT);
    digitalWrite(LED,toggle);
  }
}

实验图片
Mixly按键控制LED灯
实验视频:

注:按键控制LED灯