В этом проекте мы создадим устройство, которое будет отслеживать количество нажатий на кнопку и отображать это значение на серийном мониторе. Это отличный проект для начинающих, который поможет вам освоить работу с кнопками и серийным монитором на платформе Arduino.
Необходимые компоненты:
-
1 плата Arduino Uno
-
1 беспаечная макетная плата
-
1 тактовая кнопка
-
1 выходной сдвиговый регистр 74HC595
-
1 семисегментный индикатор
-
7 резисторов номиналом 220 Ом
-
24 провода «папа-папа»
Схема:
Обратите внимание
-
В этом эксперименте мы впервые используем микросхему, в данном случае — выходной сдвиговый регистр 74HC595. Микросхемы полезны тем, что позволяют решать определенную задачу, не собирая каждый раз стандартную схему.
-
Выходной сдвиговый регистр дает нам возможность «сэкономить» цифровые выходы, использовав всего 3 вместо 8. Каскад регистров позволил бы давать 16 и т.д. сигналов через те же три пина.
Код:
#define DATA_PIN 13 // пин данных (англ. data)
#define LATCH_PIN 12 // пин строба (англ. latch)
#define CLOCK_PIN 11 // пин такта (англ. clock)
#define BUTTON_PIN 10
int clicks = 0;
boolean buttonWasUp = true;
byte segments[10] = {
0b01111101, 0b00100100, 0b01111010, 0b01110110, 0b00100111,
0b01010111, 0b01011111, 0b01100100, 0b01111111, 0b01110111
};
void setup()
{
pinMode(DATA_PIN, OUTPUT);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(LATCH_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop()
{
// считаем клики кнопки, как уже делали это раньше
if (buttonWasUp && !digitalRead(BUTTON_PIN)) {
delay(10);
if (!digitalRead(BUTTON_PIN))
clicks = (clicks + 1) % 10;
}
buttonWasUp = digitalRead(BUTTON_PIN);
// для записи в 74HC595 нужно притянуть пин строба к земле
digitalWrite(LATCH_PIN, LOW);
// задвигаем (англ. shift out) байт-маску бит за битом,
// начиная с младшего (англ. Least Significant Bit first)
shiftOut(DATA_PIN, CLOCK_PIN, LSBFIRST, segments[clicks]);
// чтобы переданный байт отразился на выходах Qx, нужно
// подать на пин строба высокий сигнал
digitalWrite(LATCH_PIN, HIGH);
}
|
Заключение
Этот проект демонстрирует, как можно создать простой счётчик нажатий на базе Arduino. Вы научитесь использовать кнопки для управления программой и выводить данные на серийный монитор. Счётчик нажатий может быть полезен в различных проектах, где требуется отслеживать количество нажатий или событий.
После завершения проекта вы сможете расширить его функциональность, например, добавить отображение счётчика на дисплее или использовать счётчик для управления другими компонентами. Этот проект является отличным началом для изучения возможностей платформы Arduino и создания более сложных устройств в будущем.