Часы с настройкой
- Войдите на сайт для отправки комментариев
Ср, 13/02/2013 - 14:28
Здравствуйте!
Пытаюсь собрать на 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)); }
Код пишится нажатием палцев на клавиши клавиатуры, когда ArduinoIDE активное окно.
Как вы подключаете кнопки к дуине?
кнопки подключены к дискретным выводам 37, 39, 41, 43 при помощи стягивающего резистра.
И это тоже не полное описание, способов подключения может быть как минимум два. Рекомендую подключать так - один контакт кнопки к выводу МК, а другой к земле и использовать внутренние подтягивающие резисторы, включающиеся программно.