用户工具

站点工具


ocrobot:alpha:kitone:tutorial043

输入字母控制LED闪烁

这个例程显示了打开串口监视器,发送字母 a b c d e来点亮对应的LED的效果

硬件

搭建电路

  1. ALPHA 11 LED模块插入并行扩展版1号槽位。
  2. ALPHA MEGA328-U模块插入并行扩展板2号槽位。
  3. USB线连接计算机与ALPHA MEGA328-U。

代码

/*
  Switch statement  with serial input
*/
 
void setup() {
  Serial.begin(9600);         // 初始化串口通讯
  for (int thisPin = 2; thisPin < 7; thisPin++) {
    pinMode(thisPin, OUTPUT);  // LED引脚:
  }
}
 
void loop() {
  if (Serial.available() > 0) {   // 读取串口:
    int inByte = Serial.read();  //基于接收到的字符来作出不同的反应
    switch (inByte) {             // 使用单引号来得到字符的ascii值,例如 'a' = 97, 'b' = 98,等等:
      case 'a':
        digitalWrite(2, HIGH);
        break;
      case 'b':
        digitalWrite(3, HIGH);
        break;
      case 'c':
        digitalWrite(4, HIGH);
        break;
      case 'd':
        digitalWrite(5, HIGH);
        break;
      case 'e':
        digitalWrite(6, HIGH);
        break;
      default:
        for (int thisPin = 2; thisPin < 7; thisPin++) {  // 熄灭所有LED:
          digitalWrite(thisPin, LOW);
        }
    }
  }
}

这个例子我们使用了一个新函数:switch / case语句

和 if 语句相同,switch…case通过程序员设定的在不同条件下执行的代码控制程序的流程。特别地,switch语句将变量值和case语句中设定的值进行比较。当一个case语句中的设定值与变量值相同时,这条case语句将被执行。

关键字break可用于退出switch语句,通常每条case语句都以break结尾。如果没有break语句,switch语句将会一直执行接下来的语句(一直向下)直到遇见一个break,或者直到switch语句结尾。

ocrobot/alpha/kitone/tutorial043.txt · 最后更改: 2023/06/07 04:23 由 127.0.0.1