Как сделать счетчик нажатий на Arduino. Какие компоненты понадобятся для сборки устройства. Как подключить кнопку и дисплей к Arduino. Какой код нужно загрузить в микроконтроллер для работы счетчика. Какие существуют варианты реализации счетчика нажатий.
Что такое счетчик нажатий и для чего он нужен
Счетчик нажатий — это простое электронное устройство, которое подсчитывает количество нажатий на кнопку и отображает результат на дисплее. Такие счетчики широко используются в различных сферах:
- Подсчет посетителей в магазинах, музеях и других общественных местах
- Учет производственных циклов на предприятиях
- Подсчет очков в спортивных соревнованиях
- Учет повторений в фитнесе и спорте
- Проведение социологических опросов
- Различные игры и развлечения
Создание счетчика нажатий на базе Arduino — отличный проект для начинающих, позволяющий на практике освоить основы работы с микроконтроллером, кнопками и дисплеями.
Необходимые компоненты для сборки счетчика нажатий
Для создания простейшего счетчика нажатий на Arduino понадобятся следующие компоненты:
- Плата Arduino (например, Arduino Uno или Arduino Nano)
- Тактовая кнопка
- Резистор 10 кОм
- Семисегментный светодиодный индикатор
- 8 резисторов по 220 Ом
- Макетная плата
- Соединительные провода
Этого набора достаточно для создания базового счетчика, отображающего число нажатий от 0 до 9. При необходимости можно добавить дополнительные компоненты, например:
- Кнопку сброса счетчика
- Многоразрядный семисегментный индикатор
- ЖК-дисплей для отображения больших чисел
- Зуммер для звуковой индикации
Схема подключения компонентов к Arduino
Рассмотрим базовую схему подключения компонентов для создания простого счетчика нажатий:
- Подключите кнопку:
- Один вывод кнопки к цифровому пину 2 Arduino
- Второй вывод кнопки к GND Arduino
- Резистор 10 кОм между пином 2 и 5V (подтягивающий резистор)
- Подключите семисегментный индикатор:
- Общий катод к GND
- Сегменты a-g к цифровым пинам 3-9 Arduino через резисторы 220 Ом
Такая схема позволит создать счетчик, отображающий цифры от 0 до 9. При нажатии на кнопку число будет увеличиваться на единицу, а после 9 сбрасываться на 0.
Программный код для Arduino
Теперь рассмотрим базовый код для реализации функции счетчика нажатий:
«`cpp const int buttonPin = 2; // пин кнопки const int segmentPins[] = {3, 4, 5, 6, 7, 8, 9}; // пины для сегментов a-g int buttonState = 0; // текущее состояние кнопки int lastButtonState = 0; // предыдущее состояние кнопки int counter = 0; // счетчик нажатий // массив для отображения цифр на семисегментном индикаторе const byte digits[10] = { B11111100, // 0 B01100000, // 1 B11011010, // 2 B11110010, // 3 B01100110, // 4 B10110110, // 5 B10111110, // 6 B11100000, // 7 B11111110, // 8 B11110110 // 9 }; void setup() { pinMode(buttonPin, INPUT_PULLUP); for (int i = 0; i < 7; i++) { pinMode(segmentPins[i], OUTPUT); } } void loop() { buttonState = digitalRead(buttonPin); if (buttonState != lastButtonState) { if (buttonState == LOW) { counter++; if (counter >Этот код реализует базовую функциональность счетчика нажатий. Давайте разберем его основные элементы:
- Определяются пины для кнопки и сегментов индикатора
- Создается массив
digits
для хранения битовых масок цифр - В функции
setup()
настраиваются режимы работы пинов - В основном цикле
loop()
отслеживается состояние кнопки - При нажатии кнопки увеличивается счетчик и вызывается функция отображения
- Функция
displayDigit()
отвечает за вывод цифры на индикатор
Возможные модификации счетчика нажатий
На основе базовой версии счетчика можно реализовать различные модификации:
- Добавление кнопки сброса:
- Подключите дополнительную кнопку к свободному пину Arduino
- Добавьте в код обработку нажатия этой кнопки для обнуления счетчика
- Увеличение разрядности счетчика:
- Используйте несколько семисегментных индикаторов
- Реверсивный счетчик:
- Добавьте вторую кнопку для уменьшения значения счетчика
- Измените логику обработки нажатий в коде
- Сохранение значения при выключении:
- Используйте EEPROM Arduino для хранения текущего значения счетчика
- Добавьте код для чтения и записи значения в энергонезависимую память
Практическое применение счетчика нажатий
Созданный счетчик нажатий на Arduino можно использовать в различных практических приложениях:
- Подсчет посетителей: установите устройство на входе в помещение
- Фитнес-трекер: считайте количество повторений упражнений
- Производственный счетчик: учитывайте циклы работы оборудования
- Игровой счетчик очков: используйте в настольных играх
- Обучающее пособие: помогайте детям изучать счет
Для каждого конкретного применения может потребоваться доработка базовой версии счетчика. Например, для подсчета посетителей понадобится увеличить разрядность и добавить возможность сброса в конце дня.
Советы по сборке и отладке счетчика нажатий
При создании счетчика нажатий на Arduino следуйте этим рекомендациям:
- Начните со сборки схемы на макетной плате — это позволит легко вносить изменения
- Проверяйте правильность подключения компонентов перед подачей питания
- Используйте подтягивающий резистор для кнопки, чтобы избежать ложных срабатываний
- Добавьте в код программную защиту от дребезга контактов кнопки
- Тестируйте работу счетчика на всем диапазоне значений
- При необходимости используйте Serial.print() для отладки
Следуя этим советам, вы сможете быстро собрать рабочий прототип устройства и избежать типичных ошибок начинающих.
Заключение
Создание счетчика нажатий на базе Arduino — отличный проект для знакомства с основами электроники и программирования микроконтроллеров. Собрав базовую версию устройства, вы можете экспериментировать с различными модификациями, добавляя новую функциональность.
Такой проект позволяет на практике изучить:
- Основы работы с Arduino
- Подключение и программирование кнопок
- Управление семисегментными индикаторами
- Обработку прерываний и устранение дребезга контактов
- Работу с массивами и битовыми операциями
Полученные навыки пригодятся вам при создании более сложных проектов на базе Arduino и других микроконтроллеров.
Образовательный конструктор Ерёма. Ученику
Наш конструктор Ерёма прежде всего создан для проектной деятельности, и поэтому всю работу с ним мы свели в 35 учебных проектов, сделав которые можно освоить базовый набор электронных компонентов и изучить на хорошем уровне основы программирования!
Мы постарались сделать проекты разными и интересными, насколько это возможно, чтобы максимально комфортно погрузить наших пользователей в сложный, но увлекательный мир программирования микроконтроллеров!
Успехов вам на этом пути!
Начало работы с Arduino
Установим Arduino IDE, поставим необходимые драйвера, скачаем и подключим библиотеки, а также настроим COM-порт. Кроме этого, рассмотрим панель инструментов и использование горячих клавиш для удобной работы в среде программирования.
Проект 1. Мигающий светодиод
В этом проекте мы изучим, как работает микроконтроллер, запрограммируем его выходы, для управления разными светодиодами.
Проект 2. Уличный светофор
Мы запрограммируем модуль TrafficLight, в режиме реального светофора! Сначала это будет самый простой режим, а потом реализуем более сложный: с мигающим зелёным сигналом А также мы изучим что такое библиотека, и как она помогает сделать программирование более простым!
Проект 3. Светофор с ручным управлением
Мы рассмотрим новый модуль — Keypad, научимся считывать данные с него и передавать в компьютер. Кроме этого сделаем светофор, который управляется при помощи этого модуля!
Проект 4. Ночной светильник
Мы сделаем автоматический ночник — устройство, которое включает подсветку, когда в помещении становится темно! Для этого нам нужно будет изучить оператор выбора if — один из самых часто используемых в программировании!
Проект 5. Счётчик
В этом проекте мы научимся считать количество нажатий кнопок на Keypad, и выводить это количество на семисегментный индикатор. Так, например, работает табло подсчёта забитых голов на спортивных соревнованиях!
Проект 6. Быстрокликер
Мы изучим новый элемент — сервомотор, и сделаем с помощью него небольшую игру. В ней будет два игрока, и задача каждого как можно быстрее кликать на кнопку. Сервомотор будет наклонять флажок в сторону более быстрого игрока, и как только флажок достигнет края, победителю засчитывается выигрыш!
Проект 7. Необычный синтезатор
Синтезатор — это устройство, которое при нажатию на кнопку/клавишу воспроизводит какой-либо звук. Наш синтезатор будет реализован на модуле Keypad, с помощью кнопок и их комбинаций мы будем проигрывать любую из 7 существующих нот! А при помощью регулятора можно будет подстроить тональность.
Проект 8. Кнопочные ковбои
Это небольшая, но довольно интересная игра на скорость реакции. Через некоторые случайные промежутки времени будет издаваться сигнал. По сигналу игроки должны нажать на свою кнопку, кто быстрее нажал тот и выиграл раунд. При этом ведётся подсчёт очков, и передаётся на компьютер.
Проект 9. Гитара
Мы сделаем особую гитару, где воспроизводимый звук будет задаваться датчиком расстояния. Передвигая одну руку перед датчиком и нажимая кнопку проигрывания другой рукой, мы сможем воспроизводить самые разные мелодии.
Проект 10. Сигнализация
В этом проекте будет разработана сигнализация, работающая на датчике расстояния. При включении сохраняется уровень расстояния на датчике, и если в активном состоянии сигнализации кто-то пройдёт мимо, например, войдёт через дверь, то сигнализация сработает и зазвучит сигнал тревоги!
Проект 11. Счетчик отжиманий
Это несложное устройство позволяет считать, сколько отжиманий вы выполнили! Вы также можете реализовать режим тренировки с выводом количества подходов и использовать устройство в качестве тренера!
Проект 12.
АвтофинишАвтофиниш будет полезен любому бегуну и его тренеру! Тренеру достаточно скомандовать “На старт, внимание, марш”, и нажать кнопку старта на пульте управления. После этого автофиниш начинает считать секунды, до тех пор, пока бегун не пробежит рядом. После этого на индикаторе выводится время забега.
Проект 13. Новогодний огонёк
В этом проекте мы научимся пульсировать светодиодами, управляя яркостью свечения с помощью цикла. Самое сложное — сделать переливающиеся огоньки, когда свет плавно перетекает из одного светодиода в другой.
Проект 14. Эквалайзер
В этом проекте мы научимся работать со звуком: посмотрим как выглядит звуковая волна, фиксируемая датчиком звука, и как изменить её форму, чтобы она выглядела как на настоящих эквалайзерах.
Проект 15. Рассерженный моторчик
В этом проекте мы научимся работать с обычными моторами: управлять их скоростью и направлением движения. А ещё мы сделаем управление мотором с помощью хлопков в ладоши: определённое количество хлопков будут задавать направление вращения или выключать мотор.
Проект 16. Управляемый сервомотор
Практически каждый человек в современном мире использует мобильный телефон. И используя технологию bluetooth, которая есть в каждом смартфоне, мы научимся управлять сервомотором, передавая угол для поворота с телефона по беспроводной связи!
Проект 17. Мотор с сенсорным управлением
Используя линейку датчиков освещённости в качестве сенсора, мы сделаем мотор с сенсорным управлением: проводя рукой в определённую сторону, мы можем задавать скорость вращения.
Проект 18. Счётчик оборотов
В этом проекте мы разработаем небольшой датчик, который позволит нам подсчитать, сколько оборотов выполнил мотор, и при необходимости вращать мотором определённое количество оборотов.
Проект 19.
Пейзаж на экранеМы изучим экран, который использовался в сотовых телефонах Nokia, и с помощью простых команд, которые рисуют различные фигуры, линии и точки, нарисуем небольшую картинку — пейзаж.
Проект 20. Художник
В этом задании рисунок будет рисоваться с помощью датчика наклона самим пользователем! Система работает очень просто: в какую сторону мы наклоняем датчик, в ту сторону и будет двигаться кисть на экранчике.
Проект 21. Пиксельная анимация
В этом проекте мы создадим простую картинку, сохраним её в формате bitmap в памяти микроконтроллера, и научимся выводить её из памяти на экран.
Проект 22. Тренажёр глазомера
Глазомер — это очень полезный и необходимый навык, который нужен во многих профессиях, самый простой пример это водитель, которому постоянно нужно определять на глаз расстояние между машинами на дороге. И мы создадим устройство, которое позволит тренировать глазомер.
Проект 23. Игра “Время собирать”
Это одна из простых игр, которая была популярна лет 40 назад. В неё с разных точек экрана будут падать предметы, и задачей игрока будет вовремя их ловить.
Проект 24. Сканер штрих-кодов
Мы разработаем простой сканер, который сможет распознавать специально созданный штрих-код, определяя последовательность черных и белых полос, и число которое закодировано ими.
Проект 25. Переводчик систем счисления
В этом проекте пользователем с помощью пульта управления будет вводиться число, а контроллер будет переводить это число в другие системы счисления и выводить результаты на экран.
Проект 26. Тестировщик знаний
Это устройство позволит вам проверить свои знания по английскому языку! Простая система тестирования, с тремя ответами. Выбери правильный ответ в каждом задании и набери как можно больше баллов!
Проект 27.
Игра «Угадайка»Контроллер загадывает число, а вы должны его угадать! Чтобы было проще угадывать, выводятся подсказки в какую сторону (большую или меньшую) отклоняется игрок. Попробуйте отгадать за минимальное количество попыток!
Проект 28. Тренажёр памяти
Небольшая игра, которая раньше называлась “Саймон говорит”. Компьютер проигрывает определённую последовательность звуков, подкрепляя это цветными сигналами. Задача игрока запомнить последовательность, и потом её воспроизвести, нажимая кнопки на Keypad.
Проект 29. Предсказатель
Это устройство наугад отвечает на ваш вопрос! Теперь необязательно подкидывать монетку для выбора. А ещё оно может выдать предсказание на сегодняшний день, из заранее сформированного массива предсказаний.
Проект 30. Дистанционный калькулятор
Простой калькулятор с дистанционной системой управления. Также можете реализовать режим обучения: на экране генерируется простой пример, и пользователь должен ввести ответ. А калькулятор напишет верный был ответ, или где-то мы ошиблись в вычислениях.
Проект 31. Странный плеер
Небольшой музыкальный плеер. На экране список мелодий, которые можно выбирать с помощью пульта управления, и запускать их на воспроизведение.
Проект 32. Мессенджер
Небольшой мессенджер на Arduino. Позволяет набрать сообщение и отправить его на телефон с помощью технологии Bluetooth.
Проект 33. Декодер Морзе
С помощью кнопки в устройство вводиться последовательность точек и тире — символов азбуки Морзе. Устройство дешифрует введённое слово, и выводит его на экран! А ещё там есть режим обучения азбуке Морзе!
Проект 34. Игра «Звёздный патруль»
Небольшая игра, в которой игрок управляет звездолётом. Его постоянно атакуют враги, и надо от них отстреливаться! Попробуй удержать линию обороны и не пустить врагов на границу!
Проект 35.
ЛидарЛидар — это небольшой радар, на основе вращающегося датчика расстояния. С помощью него можно нарисовать карту местности, отмечая расстояния до ближайших препятствий
Уроки Arduino
В этом уроке мы создаем еще одну игру, на этот раз нужно быстрее соперника нажать кнопку 20 раз.
Добавлено admin подробнее
В этом уроке мы отправляем устройству команды, как ему светить.
Добавлено admin подробнее
В этом уроке мы выводим на жидкокристаллический дисплей данные о напряжении, измеренном на батарейке.
Добавлено admin подробнее
В этом уроке мы вращаем сервопривод на угол, задаваемый потенциометром.
Добавлено admin подробнее
В этом уроке мы передаем данные об измерениях температуры на компьютер (например, для последующей обработки).
Добавлено admin подробнее
В этом уроке мы измеряем температуру окружающей устройство среды и с помощью шкалы показываем, на сколько она превышает заданный порог.
Добавлено admin подробнее
В этом эксперименте мы выводим на семисегментный индикатор количество нажатий на кнопку (единицы).
Добавлено admin подробнее
В этом эксперименте мы создаем секундомер, который считает до 10.
Добавлено admin подробнее
В этом уроке мы создаем игрушку на реакцию: кто быстрее нажмет кнопку по сигналу.
Добавлено admin подробнее
В этом уроке мы добавляем порцию яркости светодиоду одной кнопкой и убавляем другой.
Добавлено admin подробнее
В этом эксперименте мы делаем из тактовой кнопки триггер, борясь с «дребезгом».
Добавлено admin подробнее
В этом эксперименте мы создаем модель миксера с двумя скоростями работы.
Добавлено admin подробнее
В этом эксперименте мы создаем маленькую клавиатуру, на которой можно сыграть несколько нот.
В данном уроке мы подключаем кнопки по схеме с подтягивающим резистором. Для того, чтобы данный вариант программы работал, важно, чтобы кнопки были подключены к портам, находящимся рядом друг с другом, т.е. имеющим соседние номера.
Добавлено admin подробнее
Смотрите все уроки с кратким описанием в категории Уроки Arduino
Добавлено admin подробнее
В этом эксперименте мы заставляем огонёк бежать по светодиодной шкале.
Мы подключаем светодиоды к цифровым портам, начиная с порта 2. Мы можем использовать порты 0 и 1, но они являются каналами передачи данных последовательного порта и для каждой перепрошивки платы придется отключать устройства, подключенные к ним.
Добавлено admin подробнее
В этом эксперименте мы плавно наращиваем яркость светодиодной шкалы (это несколько светодиодов в одном корпусе), управляя большой нагрузкой через транзистор. Зачем здесь вообще транзистор? Без него такое количество светодиодов будет потреблять больше тока, чем 40 мА, которые может себе позволить цифровой пин платы. Поэтому мы берем питание из порта 5V, рассчитанного на ток до 500 мА, а на цифровой порт ставим транзистор, чтобы с помощью малого тока управлять большим.
Добавлено admin подробнее
В этом эксперименте светодиод должен включаться при падении уровня освещенности ниже порога, заданного потенциометром.
Добавлено admin подробнее
В этом эксперименте мы имитируем действие музыкального инструмента терменвокс: изменяем высоту звучания бесконтактным путем, больше или меньше закрывая от света фоторезистор.
Добавлено admin подробнее
В этом эксперименте мы меняем яркость светодиода, вращая ручку переменного резистора.
Добавлено admin подробнее
В этом эксперименте мы задаем различные уровни яркости светодиода.
Добавлено admin подробнее
Страницы
- 1
- 2
- следующая ›
- последняя »
Счетчик кликов Hand Tally — ArduinoTech
Характеристики:
Металлический обруч, удобный для переноски Твой маленький ручной счетчик — это все, что ты когда-либо понадобится при игре в гольф, а не с использованием карт, чтобы измерить свой гандикап. Инвентаризация, чтобы не забыть важные цифры, трафик и подсчет людей для контроля толпы.
Например, опросы, борьба с массовыми беспорядками, обучение детей счету.
Счетчик достигает массивных 9999, прежде чем вернуться обратно к 0. Его можно быстро и эффективно перемещать и сбрасывать с помощью поворотного диска сбоку.
Он не доставляет дискомфорта в использовании, так как поставляется со встроенным зажимом для пальцев, поэтому его можно держать рядом с собой, а также незаметно нажимать и нажимать.
Очень простой в использовании и очень полезный!
Характеристики:
Материал: пластик + металл
Цвет: черный, желтый, красный
Размеры: 46 x 41 мм (Г x В)
Вес нетто: 29 г (прибл.)
В комплект входит:
1X Ручной счетчик 4-значный номер Кликер Гольф
Металлическая модель.
Особенности:
1. Широкий спектр применения, можно использовать для подсчета людей или других вещей.
2. Долгий срок службы, без батареек, более стабильный, легкий, удобный для переноски, интуитивно понятный дисплей.
3. Диапазон счета от 0 до 9999, правый вал для черных пластиковых кнопок очищен.
Технические характеристики:
Цвет: серебристый
Вес нетто: 60 г
Материал: металл
Комплектация:
1 счетчик
9 0006
Цифровая модель:
Небольшой и компактный дизайн, ЖК-дисплей экранный дисплей
Круглый круг регулируется, и его можно зафиксировать на пальце для удобства эксплуатации
Механически прыгает при каждом нажатии, быстрая реакция. Кнопка сброса помогает обнулить
Универсально используется в качестве счетчика в общественных местах, таких как док, автобусная станция, а также в повседневном использовании для подсчета числа
Функции автоматического закрытия, интерфейс щелчка и восстановления, и номер неизменен
Скульптура: кольцо
Диапазон подсчета: 00000-99999
5-разрядный ЖК-дисплей
Скорость счетчика: зависит от реакции человека
Технические характеристики:
Размер изделия: 105 x 27 x 14 мм
Вес упаковки: 24 г
Цвет: черный
Содержание упаковки :
1 цифровой ручной счетчик
Металлическая модель m/fod.
Особенности:
1. Широкий спектр применения, можно использовать для подсчета людей или других вещей.
2. Долгий срок службы, без батареек, более стабильный, легкий, удобный для переноски, интуитивно понятный дисплей.
3. Диапазон счета от 0 до 9999, правый вал для черных пластиковых кнопок очищен.
Характеристики:
Цвет: серебристый
Вес нетто: 74 г
Материал: металл
Комплект поставки:
1 счетчик
Счетчик вверх-вниз с использованием Arduino и 7-сегментного дисплея
Отделы:
9013 9 Программное обеспечение:Привет, гики, добро пожаловать в наш новый проект. В этом проекте мы собираемся сделать очень интересный проект, который представляет собой счетчик Up-Down. Большинство из нас, кто имеет опыт работы с электроникой или изучал цифровую электронику, должны знать счетчик. Счетчик — это простое устройство для подсчета чисел. Что касается цифровой электроники, существует два типа счетчиков: прямой счетчик, который ведет счет в порядке возрастания, и еще один счетчик, который ведет счет в порядке убывания. И у каждого счетчика есть предел сброса, при достижении которого счетчик сбрасывается до своего начального значения и снова начинает отсчет. Предел каждого счетчика зависит от битов счетчика. Например, у нас есть 8-битный счетчик вверх, что означает, что он будет считать до 255, а затем сбрасывается и снова начинает считать с нуля.
Программное обеспечение для установки
В этом проекте нам понадобятся два программного обеспечения. Во-первых, это Arduino IDE, которая используется для программирования Arduino. Поскольку мы собираемся сделать этот проект в моделировании, мы будем использовать программное обеспечение для моделирования Proteus. Proteus — это программа для моделирования электронных проектов. В этом программном обеспечении мы можем запускать моделирование электронных схем в реальном времени и отлаживать их, не повреждая реальных компонентов.
И хорошей практикой является создание любой схемы в симуляции первой, если мы делаем это в первый раз.
А у Proteus очень большая база данных электронных компонентов, но в нем отсутствуют некоторые новые библиотеки компонентов, для этого нам нужно установить некоторые библиотеки для этих компонентов. В этом нам нужно установить библиотеку для модуля Arduino UNO.
Сначала мы должны загрузить библиотеку Arduino UNO.
Необходимые компоненты
Для этого проекта нам потребуются следующие компоненты
- Arduino UNO
- 7-сегментный светодиодный дисплей
- Две кнопки
- 2 резистора
Сведения о компонентах
Arduino UNO
- Arduino UNO — это плата разработки с открытым исходным кодом, разработанная Arduino.
- В нем используется микроконтроллер ATmega328 производства ATMEL.
- ATmega328 имеет 8-битное процессорное ядро на базе RISC с флэш-памятью 32 КБ.
- Arduino UNO имеет 14 цифровых входных/выходных контактов и 6 аналоговых входных/выходных контактов.
- Он имеет 1 UART, 1 SPI и 1 коммуникационное периферийное устройство I2C на борту.
- Имеет 10-битный АЦП, который может выдавать значения от 0 до 1023.
- Рабочее напряжение ATmega IC составляет 5 вольт, но на плате Arduino, используя разъем питания постоянного тока, мы можем подключить источник питания до 9-12 вольт.
- Мы можем запитать Arduino UNO, используя разъем питания постоянного тока или Vin на модуле Arduino UNO.
- Здесь мы использовали Arduino UNO в качестве основного контроллера, который здесь работает как счетчик и отображает то же самое на 7-сегментном светодиодном дисплее.
7-сегментный светодиодный дисплей
- Это модуль светодиодного дисплея, в котором есть семь светодиодов, расположенных в прямоугольной форме, на которых мы можем отображать однозначные числа от 0 до 9, а также некоторые буквы алфавита.
- Он имеет два типа: один с общим заземлением, а другой с общим Vcc.
- Имеется 7 разных контактов для каждого светодиода и один общий контакт, этот контакт может быть общей землей или общим Vcc в зависимости от типа дисплея.
- Контакты на дисплее обозначены как a,b,c,d,e,f,g.
- Общая земля также известна как общий катод, а общий Vcc также известен как общий анод.
- В дисплее с общим катодом светодиоды будут светиться, когда контакты светодиодов подключены к логическому HIGH.
- На дисплее с общим анодом светодиоды будут светиться, когда контакты светодиодов подключены к логическому НИЗКОМУ.
- Поскольку это простые светодиоды, поэтому при их использовании в схеме необходимо использовать несколько защитных резисторов с каждым из них, если мы используем дисплей с общим заземлением, и один резистор с выводом Common Vcc, если мы используем тип Common Vcc. отображать.
- Для счетчика мы будем следовать таблице истинности дисплея для отображения чисел.
Кнопки
- В этом примере мы использовали простую кнопку мгновенного действия для установки счетчика в режим счета ВВЕРХ или в режим ВНИЗ.
- В кнопке есть два штифта.
- Поскольку мы будем использовать кнопки в активном низком состоянии, это означает, что одна сторона будет подключена к земле, а другая клемма будет подключена к Arduino.
- Итак, когда мы нажмем кнопку, она замкнет цепь и установит штифт.
- При использовании любой кнопки обязательно использовать с ней подтягивающий или подтягивающий резистор, иначе будут некоторые сбои в работе.
- Поскольку, когда кнопка отпущена, цепь будет разомкнута, и если к другому контакту кнопки не подключены подтягивающие или подтягивающие устройства, то этот контакт будет в плавающем состоянии и будет подавать произвольное напряжение, что создаст проблему.
- Здесь, в этом проекте, мы использовали подтягивающий резистор, чтобы при отпускании кнопки состояние контакта было в логическом состоянии ВЫСОКИЙ.
Обзор проекта
Как известно, счетчики представляют собой простые электронные схемы, которые подсчитывают некоторые значения и после достижения максимального значения сбрасываются. В этом проекте мы создадим счетчик вверх-вниз, что означает, что наш счетчик будет считать от 0 до 9 и снова после 9-0.
Мы будем использовать 7-сегментный дисплей для отображения значений счетчика. В этом проекте мы использовали обычный светодиодный экран. И две кнопки для запуска счетчика в прямом или обратном счете. Когда мы нажимаем кнопку UP, Arduino активирует контакты в соответствии с прямым счетом, а светодиодный индикатор отображает числа от 0 до 9.и когда мы нажимаем кнопку DOWN, Arduino активирует вывод в соответствии с обратным счетом, и светодиод будет отображать числа от 9 до 0.
Для управления светодиодами Arduino установит контакты как ВЫСОКИЙ и НИЗКИЙ в соответствии с таблицей истинности для отображения общего заземления.
Arduino установит контакты, а светодиод отобразит цифры.
Принципиальная схема и работа
Теперь мы знаем, как работает наш счетчик, поэтому давайте создадим схему для него:
- Откройте новый проект в Proteus и импортируйте все необходимые компоненты в рабочую область.
- Теперь давайте подключим кнопки к Arduino, для кнопки мы будем использовать цифровые контакты D11 и D12 Arduino UNO.
- Соедините одну сторону кнопок с Vcc, а другую сторону с Arduino UNO, и на этой стороне мы подключим подтягивающие резисторы.
- Соедините подтягивающие резисторы с землей.
- Теперь соедините контакты 7-сегментного дисплея с Arduino UNO.
- Подключите контакты светодиодного дисплея в том же порядке, что и А-2, В-3, С-4, Д-6, Е-7, Ф-8, Г-9 и ДП-5 . В противном случае на дисплее будут отображаться неправильные данные.
Код Arduino для счетчика Up-Down
Теперь мы начнем писать код счетчика Up-Down. Код этого проекта будет разделен на три основные части. В первой части мы объявим все необходимые переменные и выводы. Во второй части мы установим режимы выводов и установим начальные состояния для выводов и при необходимости выполним необходимую настройку, а в последней части мы напишем нашу основную функциональность нашего проекта, которую мы хотим запускать постоянно.
- Итак, давайте объявим все необходимые переменные. Прежде всего, объявите переменные для контактов семисегментного дисплея и кнопки счетчика вверх и кнопки счетчика вниз.
- Теперь объявите все необходимые переменные, которые мы будем использовать в этом коде.
- Теперь мы объявили все необходимые переменные и контакты, так что давайте начнем с функции установки пустоты.
Void setup()
- Это одна из самых важных функций в структуре кода Arduino. Без этого наш код не будет успешно скомпилирован и покажет ошибку.
- Здесь мы установим режим вывода для каждого вывода и установим для них исходные значения.
- Эта функция запускается только один раз каждый раз, когда мы перезапускаем код, поэтому мы напишем только ту часть кода, которую хотим запустить
- Мы установим режим вывода семи сегментных светодиодов в режим вывода, так как мы хотим управлять светодиодами от них.
- И устанавливаем пин-режим кнопок в качестве входных данных, так как мы хотим считывать их состояние в приложении.
- В целях отладки также инициализируйте последовательный монитор.
- После этого мы напишем функцию цикла void.
Void loop()
- Это также одна из самых важных функций в структуре кода Arduino, мы не можем написать код без использования этой функции.
- В этой функции мы напишем код, который мы хотим запустить в непрерывном цикле, поэтому в этом разделе мы напишем наш основной код приложения.
- В соответствии с применением нашего кода, прежде всего, мы будем считывать состояния кнопок счетчика «Вверх» и «Вниз», а когда состояние изменится, мы активируем счетчик.
- Напишите условие для кнопки Up counter, при нажатии на кнопку состояние кнопки меняется и мы будем проверять состояние кнопки. Если он ВЫСОКИЙ, мы начнем увеличивать переменную счетчика и, используя «changeNumber ()», мы будем отображать числа на семисегментном светодиодном дисплее.
- Аналогично, для кнопки нижнего счетчика, когда кнопка нажата, состояние изменяется, а когда состояние кнопки высокое, мы начинаем уменьшать переменную счетчика и отображать число на семисегментном дисплее с помощью кнопки Функция «changeNumber()»
Void changeNumber(int buttonpress)
- Это определяемая пользователем функция.
- Мы будем использовать эту функцию для отображения числа на семисегментном светодиодном дисплее.
- Эта функция установит состояние контактов светодиода в соответствии с числом, которое мы хотим отобразить.
- Он принимает в качестве аргумента число и с помощью switch-case устанавливает состояние контактов в соответствии с соответствующим номером.
- Состояние контактов определяется таблицей истинности семисегментного светодиодного дисплея, упомянутой на приведенном выше изображении таблицы истинности.
Результат и тест
После схемы и части кодирования все готово для запуска моделирования:
- Для запуска моделирования мы должны добавить шестнадцатеричный файл кода нашего приложения.
- Мы должны сгенерировать шестнадцатеричный файл из Arduino IDE.
- Чтобы создать шестнадцатеричный файл, перейдите в «Скетч >> Экспортировать скомпилированный двоичный файл», после чего будет скомпилирован код нашего приложения, а шестнадцатеричный файл будет сгенерирован и сохранен в той же папке проекта.