Самые простые часы с индикацией на экране LCD1602

в 2:44, , рубрики: arduino, метки: , ,

С момента приобретения arduino, все никак не было или возможности или времени что-то сделать, начать "изучать" это дело. Но всегда был интерес к любому программированию будь то C, VHDL и прочее.

И вот однажды попал мне в руки экранчик lcd1602, где-то раньше читал, что его под ардуинку собирают. А у меня как раз с распайкой под пины, наверное от какого-нибудь ардуновского набора. Ну и решил, что надо бы его проверить, но проверить его простым включением и выводом текста не слишком интересно. Так и появилась идея написать банально часы и выводить это всё на экранчик.

Наверное стоит обговорить еще тот факт, что это самые простые часы, без кнопок, будильников, погоды и прочего.

После чтения даташитов и изучения информации по подключению экрана к ардуинке получил следующую схему:

image

При подключении ардуино к usb увидите, что экран загорится синим. На нем должны появится квадратики (экран проинициализирован), если вы их не видите попробуйте покрутить переменный резистор.

Приступим к написанию кода. Логика программы думаю понятна всем, она ровным счетом такая же, как и в любых часах. То есть: Считаем секунды, дошли до 60 — прибавляем минуту, секунды обнуляем, минуты дошли до 60, прибавляем час, обнуляем минуты и секунды.

Вот собственно и сам код программы, с подробнейшими комментариями:

#include <LiquidCrystal.h>                                          //Подключим библиотеку для работы с дисплеем
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) //Подключение лисплея к пинам ардуино в моем случае УНО
int m=9; //минуты int h=13; //часы int s=55; //секунды void setup() { } void loop() { s=s+1; //считаем секунды delay(990); //пауза для отсчета секунд (подбирается эксперементально) if (s==60) //при 60секундах { s=0; //обнуляем секунды m=m+1; //добавляем минуту if(m==60) //при 60 минутах { m=0; // обнуляем минуты h=h+1; //добавляем час } } //Вывод на дисплей //Вывод времени lcd.begin(16, 2); //Задаем размерность экрана формат : кол-во символов в строке на кол-во строк lcd.setCursor(0, 0); //Устанавливаем курсор в начало 1й строки lcd.print("Time:"); //Выводим надпись "Time:" lcd.setCursor(6, 0); //Устанавливаем курсор в 6й знак, 1й строки lcd.print(h); //Выводим часы lcd.setCursor(8, 0); //Устанавливаем курсор в 8й знак, 1й строки lcd.print(":"); //Вывод двоеточие lcd.setCursor(9, 0); //Устанавливаем курсор в 8й знак, 1й строки lcd.print(m); //выводим минуты lcd.setCursor(11, 0); //Устанавливаем курсор в 8й знак, 1й строки lcd.print(":"); // Вывод двоеточие lcd.setCursor(12, 0); //Устанавливаем курсор в 8й знак, 1й строки lcd.print(s); //Выводим секунды }

Всё! Готово, прошиваемся и смотрим что получилось:

image

Всё, работает. Надеюсь что статья поможет кому-нибудь. Если будет интересно, то напишу следуюущую статью, где сделаем часы + дата. Спасибо за внимание.

Автор: push

Источник

  1. Рустам:

    спасибо собирал вместе с сыном ему 8 лет так теперь незнаю ругать вас или благодарить он просит уже 3ю ардуино первая была ардуино робот с ультразвуком . но всеже огромное спасибо вам побольше бы вас таких людей

  2. Сергей:

    Заработало сразу, хорошие комментарии в программе, все понятно

  3. Богдан:

    как можно переделать на Arduino Nano и экран 1601?

  4. Владимир:

    Спасибо вам большое, собирали всей семьёй! Теперь не покупаем часы, а делаем сами. Нас уже ненавидят соседи, потому что после каждых собранных часов – мы устраиваем застолье! А часы мы собираем КАЖ ДЫЙ ДЕНЬ! :)))))

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js