Наши контакты: +380958663605

inhelp@i.ua

Часы на Arduino nano и дисплее TFT01-22SP

ARDUINO часы

Сегодня мы будем собирать часы на Arduino с использованием часового модуля DS1307 и TFT дисплея TFT01-22SP.

Часы ARDUINO

Компоненты для сборки:

  • Часовой модуль DS1307
  • Arduino nano v3.0
  • TFT дисплей TFT01-22SP
  • Беспаечная макетная плата
  • Соединительные провода
  • Резисторы 10 кОм — 5 штук
  • Резисторы 20 кОм — 5 штук

Приступаем к сборке часов.

Для начала на следует подключить дисплей, но там есть небольшой минус в подключении.

TFT01-22SP

TFT01-22SP

Китайские братья в дисплее  TFT01-22SP реализовали питание 5в, а работу логики на 3,3 в. И для того чтобы нам правильно подключить дисплей к Arduino на потребуется его подключить через делители напряжения на резисторах.

Делитель напряжения

В продаже я нашел только резисторы номиналом 10 кОм и 20 кОм , и потому на основе схемы я собрал 5 делителей.

Делитель

 

Подключаем все к Arduino через наш делитель .

SCK  ——  pin 8 ( через делитель )
SDI (MOSI) —— pin 9 ( через делитель )
D/C —— pin 10 ( через делитель )
RESET —— pin 11 ( через делитель )
CS —— pin 12 ( через делитель )
VCC —— +5v  (+5 вольт)
GND ——  GND (земля)
LED ——  +3.3v  (подсветка дисплея)

Добавляем библиотеку UTFT  как описано в статье

Arduino IDE

Далее открываем тестовый скетч, как указано на картинке.

Arduino IDE

В открытом окне с кодом ищем строку UTFT myGLCD(MI0283QT9,11,13,7,8);        // Watterott MI0283QT9    и перед ней прописываем два знака «//» для того что бы закомментировать ее , или можно просто удалить эту строку.

Arduino UTFT

А в строке , //UTFT myGLCD(TFT01_22SP,9,8,12,11,10);  // ElecFreaks TFT01-2.2SP удаляем два знака «//» в начале строки. Так мы укажем в скетче наш дисплей для работы.

Загружаем наш скетч в Arduino

TFT01-22SP test

TFT01-22SP test2

TFT01-22SP test3

и любуемся отображением на дисплее тестового скетча.

Дисплей успешно подключен, но нам еще потребуется подключить шрифты для красивого отображения времени на дисплее.

Для скачивания шрифтов для дисплея переходим на сайт http://www.henningkarlsen.com и на страничке выбираем шрифт который нам понравился. Я выбрал и скачал два шрифта DotMatrix_M и SevenSeg_XXXL_Num .

Потом создаем новый скетч ( комбинация Ctrl+N) и сохраняем его ( комбинация Ctrl+Shift+S) и задаем имя и путь сохранения ( я сохранил на рабочем столе с именем UTFT_clock). Закрываем Arduino IDE и открываем папку на рабочем столе UTFT_clock , добавляем туда два файла шрифтов которые мы скачали.

Arduino IDE clock

Запускаем  Arduino IDE и открываем наш сохраненный скетч ( он находится в сохраненной папке проекта)

ARDUINO clock2

У нас появится окно, с вкладками подключенных шрифтов

ARDUINO clock3

ARDUINO clock4

Шрифты можно посмотреть  кликнув на вкладки.

Переключаемся на вкладку написания скетча и пишем код.

Загружаем его на Arduino и смотрим на отображение на дисплее

ARDUINO clock5

с отображением все хорошо, шрифты подключены и отображается вся информация — сохраняем скетч

DS1307

Теперь подключаем модуль DS1307

VCC —— +5v  (+5 вольт)
GND ——  GND (земля)
SDA —— pin A4  (аналоговый пин)
SCL ——  pin A5  (аналоговый пин)

Качаем библиотеку для работы с модулем DS1307.rar и устанавливаем

DS1307 test

Запускаем тестовый скетч из примеров и открываем монитор порта в Arduino IDE

DS1307 test

Время отображается и все работает — переходим к установке текущего времени.

DS1307 setup

В скетче который ми только что загружали ищем код который выделен на картинке и редактируем

DS1307_setup2

заливаем скетч и открываем монитор порта для проверки.

DS1307 setup3

 

Теперь зальем скетч для проверки отображения времени

если все нормально,  продолжаем —

Открываем наш сохраненный скетч и редактируем

Заливаем скетч  и смотрим

ARDUINO clock

Часы работают, все готово.

Заказать дисплей можно по ссылке

Купить дисплей ili9341

Заказать дисплей ILI9341

16 responses on “Часы на Arduino nano и дисплее TFT01-22SP

  1. Тимофей:

    Здравствуйте. Не влазит скетч из примера. Занимает 39 кб. Сократил пример до clrscr и потом только только влезло. Если что то дописать незначительное, то уже не будет влазить. Как это объяснить?

    • Возможно вы подключили шрифты которые занимают много места, попробуйте поменять подключаемый шрифт на другой.

    • Tonyblack:

      Чтобы влазил нужно в файле ..arduino/utft/memorysaver.h раскоментировать все неиспользуемые дисплеи….

      Uncomment the lines for the displaycontrollers that you don’t use to save
      some flash memory by not including the init code for that particular
      controller.

  2. алексей:

    Добрый вечер ,меня интересует проект часов на 16*2 дисплее ,Вы не могли бы мне помочь в написании того кода.Смысл в том что я хочу поменять родные часы в авто на этот дисплей,который будет отображать температуру, напряжение и часы,все принципе работает ,но хотелось бы в мой код добавить установку времени с кнопок,а не с кетча вдруг будут идти неправильно,а подвести нечем.Буду очень признателен за помощь.С уважением Алексей.

  3. Ruslan:

    здравствуйте напишите кто то код для подключения DHT 11 и выводом информации на TFT 3,2 с библиотекой UTFT

  4. Андрей:

    Подключил все согласно инструкции залил скетч и просто белый экран. где может быть ошибка

  5. Где-то вы напутали с подключением…

  6. Smiling_Hemp:

    Какой ужас когда автор пишет не понимая о чем, если собрать делители с номиналом который у вас указан то на выходе ну ни как не получить 3,3 воль. А еще ведь как написано «В продаже я нашел только резисторы номиналом 10 кОм и 20 кОм , и потому на основе схемы я собрал 5 делителей.» — т.е. от сюда следует, что можно ставить резисторы абсолютно любого номинала))) … если не верите мне то просто возьмите формулу делителя напряжения и подчитайте какое напряжение у вас получится, а ведь потом люди пробуют а у них почему то не работает.

    • Коэффициент делителя 1,5 , напряжение 3,33в на выходе, я использовал 10 К и 20 К ( они были под рукой ), можно использовать других номиналов… Калькулятор использовал http://cxem.net/calc/divider_calc.php , значения введи как на картинке http://arduino-project.net/delitel.jpg, и ответь на вопрос , какое напряжение на выходе???

      • Smiling_Hemp:

        Вынужден признать свою неправоту, каюсь … не правильно посчитал первый раз(( … щас пересчитал у меня все получилось … калькулятором не пользовался)

  7. kloker:

    а в чем проблема с делителем на 10к и 20к ??
    если без нагрузки, то получается 3.33333v
    но лучше на питание дисплея ставить AMS1117-3.3

  8. Александр:

    Не могу понять, куда подключается 6 провод SDO (MISO) или его вообще подключать не надо?

    • Sergej102:

      Аналогичный вопрос мучал, но без него завелось.
      Сейчас ломаю голову как подключить этот дисплей и 28j60 интернет контроллер… Может есть у кого ответ?

  9. Barmaley:

    MISO — служит для передачи данных от ведомого устройства (экрана в данном случае) к ведущему (Ардуино). Если читать данные с LCD не нужно, то можно и не подключать

  10. […] этой статье Часы на Arduino nano и дисплее TFT01-22SP , но пины подключаем по […]

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

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

17 − 9 =