Menu
CoddyTech

在显示器上计数

本课属于 Coddy Arduino 学习旅程的“显示器与传感器”单元。第 3 课,共 24 课。

使用 showDigit() 时,每次函数调用都会显示一个数字。for 循环可以依次用每个数字调用它:

for (int n = 0; n <= 9; n++) {
  showDigit(n);
  delay(500);
}

条件决定最后一个数字。n <= 9 会运行到 9(包括 9);n < 9 会在 8 停止。

把循环放在 loop() 中。计数结束后,loop() 会再次运行,计数也会从 0 重新开始。

challenge icon

挑战

简单

showDigit() 已准备就绪。在显示屏上进行计数:

  • 显示 0、1、2,以此类推,直到 9
  • 让每个数字亮 500 ms
  • 显示 9 后,从 0 重新开始

按“运行”观看计数,然后按“检查”。

亲手试试

const int segmentPins[7] = {2, 3, 4, 5, 6, 7, 8};  // a, b, c, d, e, f, g

// 每个数字对应一种模式,从右往左读:最后一位对应 a 段。
//                     gfedcba
const byte digits[10] = {
  0b0111111,  // 0
  0b0000110,  // 1
  0b1011011,  // 2
  0b1001111,  // 3
  0b1100110,  // 4
  0b1101101,  // 5
  0b1111101,  // 6
  0b0000111,  // 7
  0b1111111,  // 8
  0b1101111   // 9
};

void showDigit(int n) {
  for (int i = 0; i < 7; i++) {
    if (bitRead(digits[n], i) == 1) {
      digitalWrite(segmentPins[i], LOW);   // 点亮
    } else {
      digitalWrite(segmentPins[i], HIGH);  // 熄灭
    }
  }
}

void setup() {
  for (int i = 0; i < 7; i++) {
    pinMode(segmentPins[i], OUTPUT);
  }
}

void loop() {
  // 依次显示 0 到 9,每个显示半秒
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

显示器与传感器中的所有课

自己练习: Arduino 在线编辑器