Счёт на дисплее
Часть раздела Дисплеи и датчики путешествия по Arduino на Coddy. Урок 3 из 24.
С помощью showDigit() отображение одной цифры — это один вызов функции. Цикл for может вызывать её по очереди для каждого числа:
for (int n = 0; n <= 9; n++) {
showDigit(n);
delay(500);
}Условие определяет последнее число. n <= 9 выполняется до 9 включительно; n < 9 останавливается на 8.
Помести цикл в loop(), и когда счёт завершится, loop() запустится снова, а счёт начнётся заново с 0.
Задание
ЛегкоshowDigit() готова. Считай на дисплее:
- покажи 0, 1, 2 и так далее до 9
- показывай каждое число в течение 500 ms
- после 9 начни снова с 0
Нажми Run, чтобы посмотреть, как выполняется счёт, затем нажми Check.
Попробуйте сами
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, каждую по полсекунды
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Дисплеи и датчики
1Семисегментные дисплеи
Семисегментный дисплейШаблоны цифр в байтахСчёт на дисплееОбратный отсчёт до нуляБросок кубикаПотренируйтесь самостоятельно: Песочница Arduino