Помогите с ds1302

jurafuxman
Offline
Зарегистрирован: 25.07.2014

Я не спец в програмировании , есть нужда сделат кормушку которая каждий день в 12:00 запускает (ну скажем реле с кокогото цифрового пина) на пару секунд которое управлает открыванием кормушки. пытаюсь добавить фунцию "if else"  но ничего несрабатывает. Есть вот такой код.


#include <LiquidCrystal_I2C.h>
#include <DS1302.h>
#include <Wire.h>  // Comes with Arduino IDE

// Init the DS1302
DS1302 rtc(2, 3, 4);

// Init the LCD
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);  // Set the LCD I2C address

void setup()
{
  // Set the clock to run-mode, and disable the write protection
  rtc.halt(false);
  rtc.writeProtect(false);
  
  // Setup LCD to 16x2 characters
  lcd.begin(20,4);

  // The following lines can be commented out to use the values already stored in the DS1302
//  rtc.setDOW(TUESDAY);        // Set Day-of-Week to FRIDAY
//  rtc.setTime(4, 22, 0);     // Set the time to 12:00:00 (24hr format)
//  rtc.setDate(3, 10, 2015);   // Set the date to August 6th, 2010
  lcd.backlight();
}

void loop()
{
  // Display time centered on the upper line
  lcd.setCursor(4, 0);
  lcd.print(rtc.getTimeStr());
  
  // Display abbreviated Day-of-Week in the lower left corner
  lcd.setCursor(0, 1);
  lcd.print(rtc.getDOWStr(FORMAT_LONG));
  
  // Display date in the lower right corner
  lcd.setCursor(9, 1);
  lcd.print(rtc.getDateStr());

  // Wait one second before repeating :)
  delay (1000);
}

 

bwn
Offline
Зарегистрирован: 25.08.2014

И таки где в нем if else?

Radjah
Offline
Зарегистрирован: 06.08.2014

ЯННП.

Я хорошая такая липа RTClib, которой я пользуюсь сам. Там есть хорошие функции для дерганья часов, минут, секунд и пр.

Дергаешь часы, сравниваешь с 12, регаешь минут, сраниваешь с 0, дергаешь жрачкоподачу, если оба условия сработали, делаешь delay на 60 секунд, повторяешь.

morfius
morfius аватар
Offline
Зарегистрирован: 06.01.2017

Доброе время.

Вопрос по часам.  Инициализируются они на 2, 3, 4 пинах.

// Init the DS1302

  DS1302 rtc(2, 3, 4);

Из описания

VCC 3,3...5В
GND GND (подключить через резюк 1КОм)
CLK 4
DAT 3
RST 2

Не знаю зачем написано, что через резистор подключать, врут?

Так вот вопрос - можно ли отказаться например от RST? Цель вписаться в проекте в минимум задействованных пинов, был бы раз обрубить лишние пины. Если только считывать время - может можно ограничиться и одним пином?

http://playground.arduino.cc/Main/DS1302RTC

Ну и вообще есть ли какие-то часы реального времени с минимумом подключаемых к ним проводов? Рыл-рыл - не нашел. :/

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

To morfius

Ищите с интерфейсом i2c, на 2 пина можно кучу устройств повесить