收到命令时闪烁
本课属于 Coddy Arduino 学习旅程的“输入”单元。第 18 课,共 22 课。
输入 3,LED 应该闪烁 3 次,然后停止。loop() 已经会重复运行,所以让它来计数:用一个变量记录还要闪烁多少次。每次运行 loop() 时,如果还要闪烁,就闪烁一次,并将计数减 1。
int blinksLeft = 0;
void loop() {
// 串口监视器输入的数字会设置 blinksLeft
if (blinksLeft > 0) {
// 闪烁一次
blinksLeft = blinksLeft - 1;
}
}当 blinksLeft 变为 0 时,if 条件为假,LED 会保持熄灭,直到输入下一个数字。
数字后的换行符仍会让 parseInt() 在一秒后再次返回 0。像之前一样忽略这个 0,否则它会清除还要闪烁的次数。
挑战
中等让引脚 13 上的 LED 按照在 Serial 监视器中输入的数字闪烁相应次数:
- 有字符等待读取时,使用
parseInt()读取一个数字;如果数字大于 0,就将它存入blinksLeft - 如果
blinksLeft大于 0,就闪烁一次(亮 200 ms,灭 200 ms),然后将其减 1
按下运行,从 Serial 监视器发送 3,然后按下检查。
亲手试试
const int ledPin = 13;
int blinksLeft = 0;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// 串口监视器输入的数字会设置 blinksLeft
// 只要 blinksLeft 大于 0,就闪烁一次,再减去 1
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
输入中的所有课
自己练习: Arduino 在线编辑器