Mixly按键控制LED灯

一、实验目的及要求

button开关led。

二、实验原理与内容

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

三、实验软硬件环境

硬件:Arduino、LED

软件:Mixly IDE

 

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

1.  博客地址:

https://mp.csdn.net/postedit?not_checkout=1

2.源码仓库地址:

https://gitee.com/cai_xiao_jian/codes/ihmv4zd0f36srwbjkxpqn69

3.核心代码截图:

  1. 实验效果图:

 

五、测试/调试及实验结果分析

设计思路:

1.先声明led、sw、lastState、toggle、click并赋予它们一定的值、b1、b2均赋与数字输入管脚为8的。

2.初始化管脚模式,即led设为输出、8为上拉输入。

3.数字输入管脚8赋值给b1,打印输出的是b1

4.分为两种形式:如果b1不等于lastState,则执行赋予b2毫秒值为20下:如果b2等于b1,把b1赋给lastState,每次click加一;另一个click等于2时,则把0赋予click时toggle换为相反,这时数字输出管脚led设为toggle。

5.如果click等于1的话,toggle变反,这时数字输出管脚led设为toggle。

这个实验是通过按钮按下来开与关,按下时灯开,放下的话就熄灭。

 

六、实验结论与体会

通过这次实验我巩固了实验串口的使用方法,包括串口初始化、发送数据和接收数据,同时也熟悉了中断的处理过程,即保护现场、中断处理、恢复现场并返回等。

在实验时花了很多时间都没有能把代码修改好,主要是因为对代码的不理解、不熟悉和在实验时听了老师的讲解不是很懂,最后,通过课下研究代码和问同学思考,终于把老师代码看懂并理解出来,而后才能做出来的。

 

    2019年10月22号   

学号:2017764439 

姓名:  蔡晓健

volatile byte LED;
volatile byte SW;
volatile int b1;
volatile int b2;
volatile byte click;
volatile boolean lastState;
volatile boolean toggle;

void setup(){
  LED = 13;
  SW = 8;
  lastState = 0;
  toggle = 0;
  click = 0;
  b1 = digitalRead(8);
  b2 = digitalRead(8);
  pinMode(LED, OUTPUT);
  pinMode(8, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop(){
  b1 = digitalRead(8);
  Serial.println(b1);
  if (b1 != lastState) {
    delay(20);
    b2 = digitalRead(8);
    if (b2 == b1) {
      lastState = b1;
      click = click + 1;

    }

  }
  if (click == 2) {
    click = 0;
    toggle = !toggle;
    pinMode(LED, OUTPUT);
    digitalWrite(LED,toggle);

  }

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值