实现米思齐按键控制LED灯

这篇文章是关于Arduino借助Mixly IDE软件的一个实验,有兴趣的同学可以看看。有什么错误的还请大家指出,我们一起探讨。由于很多人对于Arduino还不太了解,所以这里先简单介绍一下。

1.Arduino简介
Arduino是一种开源的电子平台,该平台最初主要基于AVR单片机的微控制器和相应的开发软件,目前在国内正受到电子爱好者的广泛关注。
Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反映、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是利用Arduino编程语言(基于Wiring)和(Arduino)开发环境(基于Processing)来实现的。

2.Arduino被设计成一个小型控制器的形式,通过连接到计算机进行控制。Arduino开发过程如下:
(1)开发者设计并连接好电路;
(2)将电路连接到计算机上进行编程;
(3)将编译通过的程序下载到控制板中进行观测;
(4)最后不断修改代码进行调试以达到预期效果。

3.一般Arduino的基本程序结构:
//定义变量于常量子力学(可以省略)
void setup()//每次Arduino上电或重启后,setup()函数只运行一次
{
//初始化变量、设置针脚的输入/输出类型、配置串口、引入类库文件
}
void loop()//通过该函数动态控制Arduino主控板
{
//要执行的语句
}
注意:void只用在函数声明中,表示该函数将不会被返回任何数据到它被调用的函数中。
通过前面对Arduino的初步了解与认识,现在我们来做一个实验,加深一下认知。
实验一 button开关led灯:
1.软硬件环境:
硬件:Arduino、LED
软件:Mixly IDE
2. 需求:当我按键控制led灯开关时,led灯的状态会发生改变。
3. 代码如下:

//类似于C语言
//方法一
volatile boolean flag;

void setup(){
  pinMode(10, OUTPUT);
  flag = true;
  digitalWrite(10,HIGH);
  Serial.begin(9600);
  pinMode(11, OUTPUT);
}

void loop(){
  Serial.println(flag);
  while (digitalRead(10) == 1) {
  }
  if (flag == true) {
    digitalWrite(11,HIGH);
    flag = !flag;
  } else {
    digitalWrite(11,LOW);
    flag = !flag;
  }
  delay(500);
}

//方法三
volatile byte LED;
volatile byte SW;
volatile boolean b1;
volatile boolean b2;
volatile byte click;
volatile boolean lastState;
volatile boolean toggle;

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

void loop(){
  Serial.println(digitalRead(8));
  while (digitalRead(8) == 0) {
    b1 = !digitalRead(8);
    delay(20);
    if (b1 != lastState) {
      b2 = !digitalRead(8);
    }
    if (b2 == b1) {
      lastState = b1;
      click = click + 1;
    }
    if (click == 1) {
      toggle = !toggle;
      digitalWrite(13,toggle);
    }
    if (click == 2) {
      click = 0;
      toggle = !toggle;
      digitalWrite(13,toggle);
    }
    delay(500);
  }
}

4.转换成图形化编程的界面图片:实现米思齐按键控制LED灯_第1张图片实现米思齐按键控制LED灯_第2张图片
5.github的链接:https://github.com/Hello-ChenLiYan/Test.git
想要再深入的了解,可以接着看我的下一篇博客–实现米思齐的数码管图形化编程,这个也是一个实验。

你可能感兴趣的:(图形化编程)