Страница 1 из 1

Часы на Ардуино, TM1637 и DS1307

СообщениеДобавлено: 22 май 2017, 17:03
-=dp=-
Часы на Ардуино, TM1637 и DS1307

Для изготовления часов на Ардуино, нам понадобятся следующие детали:

Контроллер Ардуино (НАНА, УНО, Про мини) - 1шт
Модуль LED TM1637 - 1 шт
Модуль RTC DS1307 - 1 шт.

Далее соединяем модули к Ардуино по следующей схеме:

Re: Часы на Ардуино, TM1637 и DS1307

СообщениеДобавлено: 23 май 2017, 08:00
-=dp=-
После соединения всех наших модулей необходимо скачать и скопировать в папку libraries следующие библиотеки
"TM1637.h"
<Time.h>
<Wire.h>
<DS1307RTC.h>

Далее, приступаем программированию.
В начале модуль часов реального времени поставляется с не настроенным временем, чтобы его установить нам необходимо открыть в Ардуино IDE вот этот скетч , в нем прописать текущую дату и время и залить этот скетч в нашу Ардуину.

Код: выделить все
//Подключаем библиотеки:
#include <Time.h> 
#include <Wire.h> 
#include <DS1307RTC.h>
 
void setup()  {
setSyncProvider(RTC.get);
//Устанавливаем время в формате:
//Часы, минуты, секунды, день, месяц, год
setTime(14,13,0,18,5,2017);
//Применяем:
RTC.set(now());
}
void loop()
{
delay(100);
}




После того как скетч установки даты и времени мы успешно запрограммировали в Ардуино, дата и время сразу же установятся, ничего нажимать больше не надо.
Т. е. прошили скетч установки времени, перезагрузили контроллер Ардуино и все, время установлено.
Единственно, надо обратить внимание на то, чтоб не допускать замыкания контактов батарейки и не вынимать батарейку из часов, а то время сбросится :!:

Если вдруг у вас что то не скомпилируется, или будут какие нибудь ошибки, то рекомендую скачать версию Ардуино IDE 1.5.7 :!:

Re: Часы на Ардуино, TM1637 и DS1307

СообщениеДобавлено: 23 май 2017, 08:03
-=dp=-
Теперь переходим к программе самих часов

Для этого загружаем следующий скетч

Код: выделить все
#include "TM1637.h"
#include <Time.h> 
#include <Wire.h> 
#include <DS1307RTC.h>
#define CLK 3     
#define DIO 2
int s=0;
TM1637 disp(CLK,DIO);
int8_t TimeDisp[] = {0x00,0x00,0x00,0x00};
unsigned char ClockPoint = 1;
void setup()
{
  while (!Serial) ;
  setSyncProvider(RTC.get);   
  if(timeStatus()!= timeSet)
     Serial.println("Unable to sync with the RTC");
  else
     Serial.println("RTC has set the system time");     
disp.set(7);
disp.init(D4056A);
 
}
void loop()
{
ClockPoint = (~ClockPoint) & 0x01;
  //disp.point(POINT_OFF);
 if(ClockPoint)disp.point(POINT_ON);
  else disp.point(POINT_OFF);
  if (timeStatus() == timeSet) {
  TimeDisp[0] = hour() / 10;
  TimeDisp[1] = hour() % 10;
  TimeDisp[2] = minute() / 10;
  TimeDisp[3] = minute() % 10;
  disp.display(TimeDisp);
};
 
  delay(1000);

 
}





Компилируем скетч, прошиваем в Ардуино и радуемся, теперь у вас есть часы на Ардуино! ;)

Re: Часы на Ардуино, TM1637 и DS1307

СообщениеДобавлено: 23 май 2017, 08:22
-=dp=-
Все модули можно подключить к Ардуино монтажными перемычками, без пайки!
А, еще один момент, у меня не получилось задействовать мигание двоеточия, как выяснилось, в моем модуле TM1637 в светодиодной матрице отсутствуют светодиоды во всех точках.
Выкладываю фото моих часов.