В этом уроке для начинающих мы покажем как сделать секундомер на основе платы Arduino Uno и ЖК-дисплея своими руками.
Шаг 1: Что нам понадобится
Для создания нашего секундомера нам понадобятся следующие комплектующие:
- 1x Arduino Uno
- 1x Модуль ЖК-дисплея, как вариант - SainSmart 1602 LCD Shield Module Display V3 for Arduino UNO R3 MEGA2560 Nano DUE
- 1x USB A-B кабель
Дополнительно можно купить магнит для размещения устройства на какой-либо металлической поверхности.
Шаг 2. Размещаем ЖК-дисплей на Arduino
Этот шаг очень простой, мы всего лишь должны присоединить модуль ЖК-дисплея к Arduino Uno.
Шаг 3: Код для Ардуино
Загрузите с помощью ПК на Ардуино код, который представлен ниже. Более подробную инструкцию по работе с программным обеспечением можно посмотреть а нашем материале "Класс Arduino Nano", где мы подробно прошли по всем шагам работы с микроконтроллерам Ардуино.
// Добавляем нужные библиотеки #include <SPI.h> #include <LiquidCrystal.h> // это пины, используемые на модуле LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7); // переменные, используемые для более чем 1 функции, должны быть объявлены здесь unsigned long start, finished, elapsed; boolean r = false; // Переменные для времени отладки кнопки long lastButtonPressTime = 0; // последний раз, когда была нажата кнопка long debounceDelay = 50; // время отладки; установите как можно меньше void setup() { lcd.begin(16, 2); // инициализировать ЖК (16 символов, 2 строки) lcd.setCursor(4, 0); // установите курсор на первый символ в строке 1 - НЕ нужен (он автоматически устанавливается на lcd.begin () lcd.print("Arduino"); lcd.setCursor(3, 1); // установите курсор на 4-й символ в строке 2 lcd.print("StopWatch"); delay(2000); // ждать 2 секунды lcd.clear(); // очистить дисплей lcd.setCursor(3,0); lcd.print("By Conor M"); lcd.setCursor(1,1); lcd.print("Edited By Elac"); delay(2000); lcd.clear(); lcd.print("Press select for"); lcd.setCursor(2, 1); // установите курсор на 3-й символ в строке 2 lcd.print("Start & Stop"); } void loop() { CheckStartStop(); DisplayResult(); } void CheckStartStop() { int x = analogRead (0); // назначьте «x» аналоговым входам Arduino (кнопки модуля) if (x < 800 && x > 600 ) // если кнопка SELECT { if ((millis() - lastButtonPressTime) > debounceDelay) { if (r == false) { lcd.clear(); lcd.setCursor(3, 0); // нужно lcd.print("Time Past"); start = millis(); // сохраняет время начала, чтобы вычислить прошедшее время } else if (r == true) { lcd.setCursor(2, 0); // нужно lcd.print(" Final Time "); } r = !r; } lastButtonPressTime = millis(); } } void DisplayResult() { if (r == true) { finished = millis(); // сохраняет время остановки, чтобы вычислить прошедшее время. // объявляем переменные float h, m, s, ms; unsigned long over; // время elapsed = finished - start; h = int(elapsed / 3600000); over = elapsed % 3600000; m = int(over / 60000); over = over % 60000; s = int(over / 1000); ms = over % 1000; // показать результаты lcd.setCursor(0, 1); lcd.print(h, 0); lcd.print("h "); lcd.print(m, 0); lcd.print("m "); lcd.print(s, 0); lcd.print("s "); if (h < 10) { lcd.print(ms, 0); lcd.print("ms "); } } }
Шаг 4: Запустите свой секундомер
На этом всё - наш секундомер на основе Ардуино готов. Осталось только его запустить.