»
Добавить статью

Стильные домашние часы на LCD дисплее 128x64

2020-01-05 в 12:07

Собрал у себя стильные часы на большом LCD дисплее 128x64. Корпус распечатал на 3D принтере Anycubic I3 MEGA. Модель такого корпуса можно взять на нашем Хабе. Внутри по отверстиям отлично подходит плата Arduino UNO и сам дисплей. Так же для часиков понадобится модуль часов реального времени DS1307.

Похожие статьи:
1. Вывод различных данных на дисплей LCD 128x64
2. Индикатор уровня аудио сигнала
3. Вывод картинки на дисплей 128x64
4. Перевод значения AnalogRead в проценты
5. Регулировка яркости дисплеев на примере LCD 128x64

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

часы на arduino 128x64

Компоненты

Для создания таких часиков нам понадобится следующее:
1. LCD дисплей 128x64
2. Часы реального времени DS1307
3. Arduino UNO
4. Корпус для часов
5. 3d принтер Anycubic I3 MEGA для создания крутых самоделок

3d печать корпуса часов

часы arduino lcd 12864

Код программы

Библиотека U8glib - скачать
Библиотека RTClib - скачать

В коде используется программная настройка яркости дисплея. За это отвечает следующая строка в Setup. Выставляя значение от 1 до 1024 позволит выставить яркость требуемого уровня.

Код
analogWrite(BLpin, 80);

Полный код программы

Код

#include "U8glib.h" //библиотека для работы с LCD дисплеемры
#include <Wire.h>   //библиотека для работы с I2C интерфесом
#include "RTClib.h" //библиотека для работы с модулем часов реального времени (RTC - Real_time_clock)
int BLpin = 3;      //порт регулировки подсветки дисплея

RTC_DS1307 rtc;

U8GLIB_ST7920_128X64_1X u8g( 13, 11, 10);  // Создаём объект u8g для работы с дисплеем, указывая номер вывода CS для аппаратной шины SPI

void setup() {

  analogWrite(BLpin, 80);

  if (! rtc.begin()) {
    while (1);
  }

  if (! rtc.isrunning()) {
  }

}

void loop () {
  DateTime now = rtc.now();

  u8g.firstPage();  // Всё что выводится на дисплей указывается в цикле: u8g.firstPage(); do{ ... команды ... }while(u8g.nextPage());
  do {
    u8g.setColorIndex(1);
    u8g.setFont(u8g_font_fub35n);

    u8g.setPrintPos( 0, 60); u8g.print(now.hour() / 10);
    u8g.setPrintPos( 28, 60); u8g.print(now.hour() % 10);
    u8g.setPrintPos( 53, 54); u8g.print(":");
    u8g.setPrintPos( 70, 60); u8g.print(now.minute() / 10);
    u8g.setPrintPos( 98, 60); u8g.print(now.minute() % 10);
 
  }    while (u8g.nextPage());
}


Не пропустите обновления! Подписывайтесь на нашу группу Вконтакте и страницу в Twitter!
Так же у нас есть Telegram канал.
Вам понравился наш материал? Поделитесь с друзьями!

Оценка статьи: 5.0 из 5. Уже оценило 2 читателя



Вам может быть это интересно

Всего комментариев: 0
Добавить комментарий
Все смайлы