Представленный здесь миниатюрный счетчик событий на базе микроконтроллера основан на недорогой плате разработки Digispark Attiny. Одним из преимуществ этой конструкции является то, что к его триггерному входу можно подключить любой тип активного или пассивного switch. Всякий раз, когда событие закрытия switch будет учитываться внутри микроконтроллера и будет отображаться на 4-значном модуле дисплея LED, тип, обычно известный как TM1637 LED Display. Схема может питаться от любого источника постоянного тока 9 В, способного подавать ток не менее 500 мА на подключенное устройство. Практически нет ограничений на то, что вы можете делать с этим цифровым счетчиком событий!
Обзор аппаратного обеспечения счетчика событий

Микроконтроллер
Digispark Attiny85 — удобный микроконтроллер для простых проектов. Как оригинальные версии, так и клоны поставляются с предустановленным загрузчиком micronucleus. Загрузчик микроядра позволяет нам программировать ATTINY85 с соединением USB. Это хорошо описано на сайте digistump (https://digistump.com/wiki/start).
Цифровой дисплей
Как уже говорилось, ядром модуля дисплея является TM1637, особый вид микросхемы драйвера/контроллера LED от Titan Micro Electronics (www.titanmec.com). TM1637 требует только двухпроводного интерфейса шины (CLK и DIO) для связи с любым микроконтроллером. Однако обратите внимание, что этот метод связи не похож на знаменитый протокол шины 12C, поскольку здесь нет подчиненного адреса, а для правильной передачи данных внутри чипа генерируется ответный сигнал (ACK).
В дополнение к этим двум важным частям для завершения настройки оборудования требуется всего лишь несколько отдельных компонентов. См. схематическое представление счетчика событий, показанное ниже.

Программное обеспечение
Как и аппаратное обеспечение, программное обеспечение очень простое и состоит всего из нескольких строк кода. Включена специальная библиотека «TM1637Display», поскольку она здесь имеет решающее значение. Хорошо прокомментированный код, показанный ниже, можно обрабатывать с помощью Arduino IDE (1.6.9). Просто скопируйте-вставьте-скомпилируйте-загрузите; вот и все. Обратите внимание, что библиотеку TM1637Display можно установить как любую другую библиотеку Arduino, скопировав файлы в каталог по пути поиска библиотеки Arduino IDE.

[stextbox id="grey"]
/* Простой счетчик событий
* Использование дисплея TM1637 LED
* UC: Digispark Attiny85
* Подготовлено Т.К.Хареендраном
*/
#include
#include //основная библиотека от avishorp
#define CLK 2 // часы
#define DIO 3 // ввод/вывод данных
#define TEST_DELAY 2000
TM1637Дисплей (CLK, DIO); //настраиваем отображение
недействительная настройка()
{
pinMode (0, ВХОД); // входной контакт триггера счетчика
цифровая запись (0, ВЫСОКИЙ); // включаем внутреннее подтягивание
display.setBrightness(6); // уровень яркости 0-минимум, 7-максимум
int numb=0;
int pres=0;
недействительный цикл()
{
display.setBrightness(0x0f);
display.showNumberDec(number,false); // функция для отображения чисел до 9999
if(digitalRead(0)==0) // считывание триггерного вывода счетчика
{
if(pres==0)
{
онемение++;
прес=1;
else
{
прес=0;
[/stextbox]
Предполетный тест
После сборки подключите нормально разомкнутую (НО) кнопку switch к входному разъему триггера, подайте питание на цепь и подождите пять секунд. После начальной задержки вы увидите цифру ноль (0) в крайнем правом углу дисплея LED. Теперь нажмите кнопку switch и убедитесь, что счетчик увеличивается при каждом нажатии кнопки. Если вы дошли до этого момента, можно быть уверенным, что ваш счетчик событий находится в рабочем состоянии. Начинайте считать, наслаждайтесь!
Улучшение
Как вы заметили, почти все нормально разомкнутые механические переключатели (например, тактильный switch, герконовый switch и т. д.) можно подключить к триггерному входу этого счетчика событий без какой-либо модификации схемы. Таким же образом можно подключить активные переключатели (например, датчик Холла) с выходами с открытым коллектором. Никаких дополнительных резисторов здесь не требуется, поскольку вход триггера (P0 digispark) подтягивается внутренним резистором номиналом около 25 кОм (см. код). Однако, если if вы хотите запустить счетчик событий от любого активного switch/датчика с выходом высокого логического уровня, потребуется дополнительная схема. Вот дешевое и веселое решение для приема сигналов активного высокого уровня (H) из внешнего мира.

Ознакомиться с работой этого проекта можно здесь.