Часы с настройкой

Drow
Offline
Зарегистрирован: 13.02.2013

 

Здравствуйте!
Пытаюсь собрать на Arduino 2560 часы с возможностью настройки, но что то туплю с кодом. У меня есть LCD-дисплей 20х4, часовой чип DS1307 и 4 кнопки. Вывести работающие часы на экран я понял как, а подскажите, как написать код, что бы можно было кнопками устанавливать нужное время и дату.
 
Вот мой код часов:
 

#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h>
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

void setup(){
 lcd.begin(20, 4); //Дисплей 16Х2 

 RTC.stop();
 RTC.set(DS1307_SEC,50); //Установить секунды
 RTC.set(DS1307_MIN,18); //Установить минуты
 RTC.set(DS1307_HR,02); //Установить часы
 RTC.set(DS1307_DOW,07); //Установить день недели
 RTC.set(DS1307_DATE,22); //Установить дату
 RTC.set(DS1307_MTH,04); //Установить месяц
 RTC.set(DS1307_YR,12); //Установить год
 RTC.start();

}

void loop()
{
 lcd.setCursor(0, 0);
 lcd.print(RTC.get(DS1307_HR,true)); //read the hour and also update all the values by pushing in true
 lcd.print(":");
 lcd.print(RTC.get(DS1307_MIN,false));//read minutes without update (false)
 lcd.print(":");
 lcd.print(RTC.get(DS1307_SEC,false));//read seconds
 lcd.print(" "); 
 lcd.setCursor(0, 1);
 lcd.print(RTC.get(DS1307_DATE,false));//read date
 lcd.print("/");
 lcd.print(RTC.get(DS1307_MTH,false));//read month
 lcd.print("/");
 lcd.print(RTC.get(DS1307_YR,false)); //read year 
 lcd.print(" Day-");
 lcd.print(RTC.get(DS1307_DOW,false));
}

 

 

maksim
Offline
Зарегистрирован: 12.02.2012

Drow пишет:
а подскажите, как написать код, что бы можно было кнопками устанавливать нужное время и дату.
К сожалению с такой постановкой вопроса, можно ответить только так:
Код пишится нажатием палцев на клавиши клавиатуры, когда ArduinoIDE активное окно.

Как вы подключаете кнопки к дуине?

Drow
Offline
Зарегистрирован: 13.02.2013

кнопки подключены к дискретным выводам 37, 39, 41, 43 при помощи стягивающего резистра. 

maksim
Offline
Зарегистрирован: 12.02.2012

И это тоже не полное описание, способов подключения может быть как минимум два. Рекомендую подключать так - один контакт кнопки к выводу МК, а другой к земле и использовать внутренние подтягивающие резисторы, включающиеся программно.