Проект 5. Счётчик

В этом проекте мы научимся считать количество нажатий кнопок на Keypad, и выводить это количество на семисегментный индикатор. Так, например, работает табло подсчёта забитых голов на спортивных соревнованиях!

Программирование:

Целочисленные переменные

Практика

Создайте переменную, которая будет выводиться на семисегментный индикатор. Реализуйте отображение переменной на индикаторе. Реализуйте следующую логику программы: - кнопка D0 уменьшает переменную на 1, - кнопка D2 увеличивает переменную на 1, - кнопка D1 сбрасывает переменную в 0.

Дополнительное задание

Сделайте защиту переменной от выхода из диапазона от 0 до 99. Если например переменная приняла значение -1 она должна принудительно стать снова 0.

Решение

Мы рекомендуем сначала освоить материал и попробовать сделать программу самостоятельно! А потом проверить себя, посмотрев наш вариант решения:

#include <Eryoma.h>
Eryoma robot;

int count = 0;

void setup() {
  robot.setupConnector(ePort0, DoubleSegment);
  robot.setupConnector(ePort4, Keypad);
}

void loop() {
  if(robot.read(ePort4, 0) == 0) count--;
  if(robot.read(ePort4, 1) == 0) count = 0;
  if(robot.read(ePort4, 2) == 0) count++;
  robot.write(ePort0, count);
  delay(100);
}

#include <Eryoma.h>
Eryoma robot;

int count = 0;

void setup() {
  robot.setupConnector(ePort0, DoubleSegment);
  robot.setupConnector(ePort4, Keypad);
}

void loop() {
  robot.write(ePort0, count);
  if (robot.read(ePort4, 0) == 0) count--;
  if (robot.read(ePort4, 1) == 0) count = 0;
  if (robot.read(ePort4, 2) == 0) count++;
  if (count > 99) count = 99;
  if (count < 0) count = 0;
  delay(100);
}