Простой секундомер — таймер на Arduino Uno

В этой статье описан простой секундомер/таймер на базе недорогой платы Arduino Uno. таймер можно использовать для измерения промежутков времени при разработке таких устройств, как реле времени, автоматические выключатели и т.д. Кроме того, этот таймер можно использовать для лабораторных / промышленных целей. Таймер измеряет промежуток времени между нажатием кнопки SART и нажатием кнопки STOP. «Нажимать» кнопки может и какое-либо внешнее устройство, если использовать контакты реле или MOSFET ключей, подключенных к соответствующим к выводам кнопок. Должны быть использованы только «беспотенциальные» переключатели или ключи (на их выводах не должно присутствовать дополнительное напряжение)

Схема устройства

Принципиальная схема показана на рис. 1, помимо платы Arduino Uno вам потребуется несколько дополнительных компонентов. Запуск и остановка таймера осуществляется двумя кнопками. Кнопки могут быть нормально-разомкнутыми или нормально-замкнутыми.

Перед измерением времени нажмите кнопку RESET. На дисплее появится сообщение «Timing test kit» в первой строке и «Time(s): 0.000» во второй.

Теперь нажмите кнопку START, чтобы начать отсчет. Подсчитанное значение будет отображаться на дисплее. Вы можете остановить счет в любой момент, нажав кнопку STOP. Время счета отображается в секундах с левой стороны и в долях секунд (в миллисекундах) с правой стороны дисплея.

Если вы хотите управлять таймером от внешнего устройства, то целесообразно использовать разъемы, подключенные к контактам кнопок START и STOP. Устройство можно поместить в подходящего размера коробку-корпус. На переднюю панель нужно вывести дисплей и три кнопки.

Устройство тестировалось на «беспаечной» макетной плате типа breadboard.

ниже приводится текст «прошивки» устройства (скетч Arduino):

Если у вас пока что нет платы Arduino Uno или вам лень возиться с железом, вы можете проверить работу проекта в симуляторе Proteus 8 (проект для Proteus вы можете скачать по ссылке в конце статьи).

#include<LiquidCrystal.h>

// digital pins 9 — RS, 8 — Enable, 7,6,5,4 — D4,D5,D6,D7

LiquidCrystal lcd(9, 8, 7, 6, 5, 4 );

unsigned long previousmillis = 0;
float duration = 0;

void setup() {

lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(«TIMING TEST KIT»);
pinMode(2, INPUT);
pinMode(3, INPUT);
attachInterrupt(0, count, CHANGE);
attachInterrupt(1, count1, CHANGE );
}

void loop() {
lcd.setCursor(0, 1);
lcd.print(«time(s):»);
lcd.print(duration/1000,3);
Serial.print(«time(msec)=»);
Serial.println(duration);
delay(1000);
}

void count() {
previousmillis = millis();
}

void count1() {
duration = (millis() — previousmillis);
}

Если у вас пока что нет платы Arduino Uno или вам лень возиться с железом, вы можете проверить работу проекта в симуляторе Proteus 8 (проект для Proteus вы можете скачать по ссылке в конце статьи).

Здесь вы можете посмотреть короткое видео, демонстрирующее симуляцию проекта в Proteus 8 professional:

Скачать архив с файлами проекта

В архиве файл прошивки (скетч) для Arduino, и проект для симуляции в Proteus 8. В папке Proteus вы также найдете откомпилированный *.hex файл прошивки для использования в Proteus.

Модель Arduino UNO для Proteus можно скачать на этой странице…
(в проекте использована вторя по тексту страницы модель Arduino Uno — Arduino Uno Library AtMega328 )

Источник, на основе которого написана статья: https://www.electronicsforu.com/electronics-projects/simple-timer-kit-arduino-uno



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *