Объединить 2 кода RTC 1307 и семисегментный индикатор

mkvmaks
Offline
Зарегистрирован: 07.07.2013

Всем привет. В общем есть рабочий полностью код:

#include "OasisLED.h"

#include <Arduino.h> 

uint8_t clockPin = 3;
uint8_t strobePin = 2;
uint8_t dataPin = 4;

OasisLED ledDisplay = OasisLED(clockPin, strobePin, dataPin);

void setup() {
  ledDisplay.initialize();
}

void loop() { for (int i = 30; i &gt;= 0; i--) {
    ledDisplay.toggleColon();
    ledDisplay.setValue(i);
    delay(500);
    ledDisplay.toggleColon();
    delay(500);
  }
  
  ledDisplay.reset();
  delay(2000);
} 

Помогите на основе него вывести показания часов с модуля реального времени. Модуль подключен по i2c и успешно работает. 

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Может фото и ссылки приложишь о чем ты.я не про часы

mkvmaks
Offline
Зарегистрирован: 07.07.2013

Вот такую штуку  пользую http://arduino.ru/forum/apparatnye-voprosy/spi-i-pt6961

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

а ты рассчитывал все угадали о чем ты сразу?

mkvmaks
Offline
Зарегистрирован: 07.07.2013

Да забыл ссылку указать. Но в общем к дисплею подпаялся и при помощи бибилотеки вывожу цмфры - если указать в коде вместо int i = 30     int i = 1999, то полностью это число будет выведено. Дак как можно вывести часы использую  к  примеру такой  код 

// Date and time functions using a DS1307 RTC connected via I2C and Wire lib

#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 RTC;

void setup () {
    Serial.begin(57600);
    Wire.begin();
    RTC.begin();

  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
}

void loop () {
    DateTime now = RTC.now();
    
    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
    
    Serial.print(" since midnight 1/1/1970 = ");
    Serial.print(now.unixtime());
    Serial.print("s = ");
    Serial.print(now.unixtime() / 86400L);
    Serial.println("d");
    
    // calculate a date which is 7 days and 30 seconds into the future
    DateTime future (now.unixtime() + 7 * 86400L + 30);
    
    Serial.print(" now + 7d + 30s: ");
    Serial.print(future.year(), DEC);
    Serial.print('/');
    Serial.print(future.month(), DEC);
    Serial.print('/');
    Serial.print(future.day(), DEC);
    Serial.print(' ');
    Serial.print(future.hour(), DEC);
    Serial.print(':');
    Serial.print(future.minute(), DEC);
    Serial.print(':');
    Serial.print(future.second(), DEC);
    Serial.println();
    
    Serial.println();
    delay(3000);
}

Может есть код для  i2c часов другой так сказать  подходящий  для  таких дислпеев?? 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да нормальный код для часов

выводить просто/ например так. делаем переменную. а еще выводить ты можешь

#include <Wire.h>
#include "RTClib.h"

int time;

RTC_DS1307 RTC;

void setup () {
  Serial.begin(57600);
  Wire.begin();
  RTC.begin();

  if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
}

void loop () {
  DateTime now = RTC.now();
  time=now.hour()*100+now.hourminute();
  //и выводи чисто из time
}

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

.

mkvmaks
Offline
Зарегистрирован: 07.07.2013

https://github.com/buzzdavidson/OasisLED   библиотека OasisLED