Recensisci!
Diventa un recensore per ricevere prodotti gratuiti o scontati!
Iscriviti
Se desideri, puoi effettuare un'iscrizione gratuita al forum per entrare nella nostra community.
Ricerca Avanzata
Pubblicità Amazon
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
Ultimi argomenti
» Meglio Android o iOS? Video spiegazione
Da Admin Ven Nov 17, 2017 9:52 pm

» Primo gameplay Platinum Edition - Farming Simulator 2017
Da Admin Ven Nov 17, 2017 9:47 pm

» Errore sketch braccio robotico
Da papat Mer Nov 15, 2017 3:39 pm

» Miglior smartphone sotto i €150 - 2017
Da Admin Sab Nov 11, 2017 10:50 am

» Miglior smartphone sotto i €100 - 2017
Da Admin Ven Nov 10, 2017 10:10 pm

» Recensione protettore RFID
Da Entop Dom Ott 29, 2017 10:01 pm

» Presentati al forum
Da Entop Dom Ott 29, 2017 9:40 pm

» Formato delle recensioni Amazon consigliato
Da Admin Dom Ott 29, 2017 4:12 pm

» Come localizzare in diretta i propri contatti di Whatsapp
Da Admin Sab Ott 28, 2017 9:35 pm

I postatori più attivi del mese
Admin
 
papat
 

Inserire data, ora RTC ds 3231

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso

Inserire data, ora RTC ds 3231

Messaggio Da papat il Mer Set 13, 2017 2:43 pm

Da un tuo video si evince chiaramente come aggiornare o impostare  ora e data al rtc con fishino.Pero' con RTC ds 3231 di questo sketch non so come fare.Puoi aiutarmi?
Codice:
#include <dht.h>


#include <LCD.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>


#include <DS3232RTC.h> //http://github.com/JChristensen/DS3232RTC
#include <TimeLib.h> //http://playground.arduino.cc/Code/Time (presente in gestione
// librerie, ma da installare – already present in ide library managere, but not yet installed
#include <Wire.h> //http://arduino.cc/en/Reference/Wire (vedi sopra – see above)
#include <LiquidCrystal_I2C.h> // libreria di gestione del display lcd
//--------------------addr, en,rw,rs,d4,d5,d6,d7,bl,blpol
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
//
time_t t;
tmElements_t tm;
//
float temperatura = 0; // zona di memorizzazione della temperatura fornito da DS3231
float temp1 = 0; // zona di memorizzazione della temperatura in gradi celsius
int digits = 0; // zona di memorizzazione dei minuti e dei secondi da esporre
// sul display lcd
char tabmesi [37] = "genfebmaraprmaggiulugagosetottnovdic"; // tabella descrizione mesi
// above: italian month description, on three digits
int mese = 0; // zona di memorizzazione del mese corrente
int lavoro = 0; // zona di lavoro, utilizzata per calcoli intermedi
//
//********* routine di esposizione di data, ora e temperatura sul display lcd
//*************** time and temperature on lcd display **********************
//
void esponidati(void)
{
// esposizione dei dati rilevati sul timer di arduino
lcd.clear();
lcd.print(" ");
lcd.print(day());
lcd.print(' ');
//Arduino: modulo RTC DS3231 orologio digitale – digital clock
// doppio utilizzo SDA SCL, Real Time Clock, I2C, lcd 1620, orologio digitale, digital clock
mese = month(); // memorizza il mese
mese = mese - 1; // diminuisce di 1 il valore del mese poiche'
// la descrizione del primo mese (gen) inizia
// all'indirizzo zero della tabella mesi
lcd.print (tabmesi [(mese * 3)]); // espone la prima lettera del mese
lcd.print (tabmesi [(mese * 3 + 1)]); // espone la seconda lettera del mese
lcd.print (tabmesi [(mese * 3 + 2)]); // espone la terza lettera del mese
lcd.print(' ');
lcd.print(year());
lcd.setCursor(0, 1);
lcd.print(hour());
digits = (minute());
printDigits(); // routine esposizione zeri non significativi
digits = (second());
printDigits(); // routine esposizione zeri non significativi
lcd.print (" t:");
lcd.print (temp1);
}
//
//****routine visualizzazione minuti e secondi comprensivi di zeri non significativi*****
// ************* displays minutes and seconds, including non significant zeroes ***********
//
void printDigits()
{
lcd.print(':');
if (digits < 10)
lcd.print('0');
lcd.print(digits);
}
void setup(void)
{
Serial.begin (9600); // inizializza il monitor seriale
lcd.begin(16, 2); // inizializza il display e accende
lcd.backlight(); // lo sfondo
lcd.print (" buongiorno"); // goodday
delay (1500);
lcd.clear ();
setSyncProvider(RTC.get); // sincronizza il timer di Arduino con i dati presenti
// sul modulo RTC
lcd. clear ();
if (timeStatus() != timeSet) // verifica se la sincronizzazione e' ok
lcd.print(" orologio non"); // “clock not”
else
lcd.print(" orologio"); // “clock”
lcd.setCursor (0, 1);
lcd.print (" sincronizzato"); // “ syncronized”
delay (1500);

temperatura = RTC.temperature(); // rileva per la prima volta

}

void loop(void)
{
if (Serial.available() == 17) // controlla se e' in arrivo una stringa da 17
// caratteri (aa,mm,gg,hh,mm,ss)
{ // acquisisce la stringa con data ed ora
int y = Serial.parseInt();
tm.Year = y2kYearToTm(y);
tm.Month = Serial.parseInt();
tm.Day = Serial.parseInt();
tm.Hour = Serial.parseInt();
tm.Minute = Serial.parseInt();
tm.Second = Serial.parseInt();
t = makeTime(tm);
RTC.set(t); // aggiorna (setta) il modulo RTC
setTime(t); // aggiorna (setta) il modulo RTC
}


// fine del ciclo di acquisizione data ed ora
digits = (second()); // verifica se sono passati 10 secondi dal precedente
// rilevamento della temperatura
lavoro = digits % 10; // calcola il resto del secondo corrente diviso 10
if (lavoro == 9) // se si e' al nono secondo di ogni decade di minuto (se si e'
// al secondo 9, 19, 29, 39, 49 o 59 di ogni minuto)
// if we are at the 9,19,29... secondo of each minutes,
temperatura = RTC.temperature(); // rileva la temperatura – catch temperature
temp1 = temperatura / 4.0; // trasforma la temperatura in gradi celsius
esponidati(); // lancia la routine di esposizione dei dati
//Arduino: modulo RTC DS3231 orologio digitale – digital clock
// doppio utilizzo SDA SCL, Real Time Clock, I2C, lcd 1620, orologio digitale, digital clock
delay (1000); // aspetta un secondo prima di andare ad esporre
// nuovi dati, al fine di consentire al display
// una visualizzazione stabile
}
avatar
papat
Maker

Messaggi Messaggi : 181
Crediti Crediti : 277
Reputazione Reputazione : 3
Data d'iscrizione Data d'iscrizione : 17.10.15
Età Età : 70
Località Località : montalbano ionico

Vedi il profilo dell'utente

Tornare in alto Andare in basso

Re: Inserire data, ora RTC ds 3231

Messaggio Da Admin il Mer Set 13, 2017 2:50 pm

Ciao, quel codice fa un po' di tutto. Cosa vorresti che faccia?
avatar
Admin
♔ Amministratore

Messaggi Messaggi : 4224
Crediti Crediti : 11792
Reputazione Reputazione : 186
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 19
Località Località : Brescia

Vedi il profilo dell'utente http://www.wikiinfo.net

Tornare in alto Andare in basso

Re: Inserire data, ora RTC ds 3231

Messaggio Da papat il Mer Set 13, 2017 3:02 pm

deve impostarmi anno mese giorno ora.Credo che la temperatura se la prende da solo o no?
avatar
papat
Maker

Messaggi Messaggi : 181
Crediti Crediti : 277
Reputazione Reputazione : 3
Data d'iscrizione Data d'iscrizione : 17.10.15
Età Età : 70
Località Località : montalbano ionico

Vedi il profilo dell'utente

Tornare in alto Andare in basso

Re: Inserire data, ora RTC ds 3231

Messaggio Da papat il Mer Set 13, 2017 3:35 pm

Grazie ho risolto :ho caricato il programma SetSerial.ino su arduino e sul monitor ho scritto in ordine anno,mese,giorno,ora ,minuti,secondi.Funziona perfettamente.
avatar
papat
Maker

Messaggi Messaggi : 181
Crediti Crediti : 277
Reputazione Reputazione : 3
Data d'iscrizione Data d'iscrizione : 17.10.15
Età Età : 70
Località Località : montalbano ionico

Vedi il profilo dell'utente

Tornare in alto Andare in basso

Re: Inserire data, ora RTC ds 3231

Messaggio Da Admin il Gio Set 14, 2017 10:05 pm

Perfetto, grande Very Happy
avatar
Admin
♔ Amministratore

Messaggi Messaggi : 4224
Crediti Crediti : 11792
Reputazione Reputazione : 186
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 19
Località Località : Brescia

Vedi il profilo dell'utente http://www.wikiinfo.net

Tornare in alto Andare in basso

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto


 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum