Seguimi su Youtubue
Iscriviti
Se desideri, puoi effettuare un'iscrizione gratuita al forum per entrare nella nostra community.
Accedi

Recuperare la parola d'ordine

Ricerca Avanzata
Pubblicità Google AdSense
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
I postatori più attivi del mese
Poderak
 
Ilfalco78
 

Esempi per DS 3231

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

Esempi per DS 3231

Messaggio Da Guido Laferrari il Dom Set 25, 2016 4:53 pm

Ciao a tutti,
mi è appena arrivato il modulino RTC DS 3231 e sono smanioso di provarlo,ho scelto questo modulo per la sua precisione e come partenza per alcuni progetti. Purtroppo sul web ho trovato solo esempi impegnativi per un neofita come me,mi chiedevo se qualcuno di voi ha sottomano qualche sketch per poter capire come funziona e muovere i primi passi.
Grazie a tutti anticipatamente.

Guido

Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Vedere il profilo dell'utente

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Poderak il Lun Set 26, 2016 5:50 pm

Ciao, ho trovato questa guida in Italiano. Fammi sapere Ciao!

Poderak
♔ Amministratore

Messaggi Messaggi : 4117
Crediti Crediti : 11595
Reputazione Reputazione : 185
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

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

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Guido Laferrari il Gio Set 29, 2016 6:08 pm

Ciao a tutti,
ho provato a realizzare lo sketch di Mauro Alfieri da te proposto, sono riuscito in parte perché quando apro il monitor seriale la prima riga mi dice che non comunica con DS 3231. Ho controllato i due fili per la comunicazione I2C  SDA al pin A4 e SCL al pin A5 e sono corretti,ho letto da qualche parte dove vengono indicate delle resistenze di pull-up sulle entrate SCL e SDA dei dispositivi connessi , è il mio caso ? cosa mi consigli ?.
A presto.

Guido

Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Vedere il profilo dell'utente

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Poderak il Ven Set 30, 2016 10:16 am

Ciao, sei sicuro di averlo alimentato? Comunque si, potrebbe essere il tuo caso Ciao!

Poderak
♔ Amministratore

Messaggi Messaggi : 4117
Crediti Crediti : 11595
Reputazione Reputazione : 185
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

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

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Guido Laferrari il Ven Set 30, 2016 2:45 pm

Ciao
ho provato collegare due resistenze di pull-up da 4,7 k ma non ho ottenuto niente,ho ricontrollato il cablaggio ed è tutto ok . Il modulino penso che sia una cinesata visto quanto l'ho pagato, può essere guasto di suo?
A presto.
Guido

Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Vedere il profilo dell'utente

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Poderak il Ven Set 30, 2016 3:19 pm

Si potrebbe essere guasto ma controllerei meglio il modello. Sei sicuro sia quello Ciao! ?

Poderak
♔ Amministratore

Messaggi Messaggi : 4117
Crediti Crediti : 11595
Reputazione Reputazione : 185
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

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

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Guido Laferrari il Ven Set 30, 2016 8:25 pm

Ciao
ti invio le foto del modulino .


Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Vedere il profilo dell'utente

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Poderak il Sab Ott 01, 2016 2:15 pm

Per sicurezza, ho prova anche a vedere questa guida. Anche se in inglese, si capisce abbastanza bene. Non preoccuparti per il codice. E' divisa in funzioni ma per adesso non interessa molto questo, interessa il fatto che funzioni. Fammi sapere Ciao!

Poderak
♔ Amministratore

Messaggi Messaggi : 4117
Crediti Crediti : 11595
Reputazione Reputazione : 185
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

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

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Guido Laferrari il Dom Ott 02, 2016 6:50 pm

Ciao , grazie per il codice.
Dopo svariati tentativi , questo secondo me è la posizione dove inserire l’istruzione  (questo è una porzione di codice ,vedi riga in grassetto ) per settare il tempo.
void setup()
{
  Wire.begin();
  Serial.begin(9600);
  // set the initial time here:
  // DS3231 seconds, minutes, hours, day, date, month, year
  // setDS3231time(30,42,21,4,26,11,14);
 setDS3231time(30,42,21,4,26,11,14);
}
void setDS3231time(byte second , byte minute, byte hour, byte dayOfWeek, byte
dayOfMonth, byte month, byte year)
La compilazione e il caricamento dello sketch viene effettuato con successo ma purtroppo sul monitor seriale non leggo questa data. Il cablaggio è corretto e il monitor seriale è settato con 9600 baud .
A presto

Guido

Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Vedere il profilo dell'utente

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Poderak il Dom Ott 02, 2016 7:33 pm

Però questa volta lo riconosce? Cosa da in output nel monitor seriale Very Happy?

Poderak
♔ Amministratore

Messaggi Messaggi : 4117
Crediti Crediti : 11595
Reputazione Reputazione : 185
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

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

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Guido Laferrari il Dom Ott 02, 2016 8:37 pm

Ciao,
questo è quello che vedo sul monitor seriale prima e dopo l'inserimento della data.
A presto.
Guido

Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Vedere il profilo dell'utente

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Poderak il Lun Ott 03, 2016 12:56 pm

Fai una prova con e senza la batteria del DS3231 Very Happy

Poderak
♔ Amministratore

Messaggi Messaggi : 4117
Crediti Crediti : 11595
Reputazione Reputazione : 185
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

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

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Guido Laferrari il Lun Ott 03, 2016 5:57 pm

Ciao,
ho fatto la prova che mi hai chiesto con esito negativo.
Penso che la lettura in orizzontale sul monitor seriale indichi un errore.
A presto
Guido

Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Vedere il profilo dell'utente

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Poderak il Lun Ott 03, 2016 10:30 pm

Più che altro sembra funzionare ma è sballato. Si muove qualcosa o rimane tutto fermo?
Codice:

#include "Wire.h"
#define DS3231_I2C_ADDRESS 0x68
// Convert normal decimal numbers to binary coded decimal
byte decToBcd(byte val)
{
  return( (val/10*16) + (val%10) );
}
// Convert binary coded decimal to normal decimal numbers
byte bcdToDec(byte val)
{
  return( (val/16*10) + (val%16) );
}
void setup()
{
  Wire.begin();
  Serial.begin(9600);
  // set the initial time here:
  // DS3231 seconds, minutes, hours, day, date, month, year
  // setDS3231time(30,42,21,4,26,11,14);
}
void setDS3231time(byte second, byte minute, byte hour, byte dayOfWeek, byte
dayOfMonth, byte month, byte year)
{
  // sets time and date data to DS3231
  Wire.beginTransmission(DS3231_I2C_ADDRESS);
  Wire.write(0); // set next input to start at the seconds register
  Wire.write(decToBcd(second)); // set seconds
  Wire.write(decToBcd(minute)); // set minutes
  Wire.write(decToBcd(hour)); // set hours
  Wire.write(decToBcd(dayOfWeek)); // set day of week (1=Sunday, 7=Saturday)
  Wire.write(decToBcd(dayOfMonth)); // set date (1 to 31)
  Wire.write(decToBcd(month)); // set month
  Wire.write(decToBcd(year)); // set year (0 to 99)
  Wire.endTransmission();
}
void readDS3231time(byte *second,
byte *minute,
byte *hour,
byte *dayOfWeek,
byte *dayOfMonth,
byte *month,
byte *year)
{
  Wire.beginTransmission(DS3231_I2C_ADDRESS);
  Wire.write(0); // set DS3231 register pointer to 00h
  Wire.endTransmission();
  Wire.requestFrom(DS3231_I2C_ADDRESS, 7);
  // request seven bytes of data from DS3231 starting from register 00h
  *second = bcdToDec(Wire.read() & 0x7f);
  *minute = bcdToDec(Wire.read());
  *hour = bcdToDec(Wire.read() & 0x3f);
  *dayOfWeek = bcdToDec(Wire.read());
  *dayOfMonth = bcdToDec(Wire.read());
  *month = bcdToDec(Wire.read());
  *year = bcdToDec(Wire.read());
}
void displayTime()
{
  byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
  // retrieve data from DS3231
  readDS3231time(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month,
  &year);
  // send it to the serial monitor
  Serial.print(hour, DEC);
  // convert the byte variable to a decimal number when displayed
  Serial.print(":");
  if (minute<10)
  {
    Serial.print("0");
  }
  Serial.print(minute, DEC);
  Serial.print(":");
  if (second<10)
  {
    Serial.print("0");
  }
  Serial.print(second, DEC);
  Serial.print(" ");
  Serial.print(dayOfMonth, DEC);
  Serial.print("/");
  Serial.print(month, DEC);
  Serial.print("/");
  Serial.print(year, DEC);
  Serial.print(" Day of week: ");
  switch(dayOfWeek){
  case 1:
    Serial.println("Sunday");
    break;
  case 2:
    Serial.println("Monday");
    break;
  case 3:
    Serial.println("Tuesday");
    break;
  case 4:
    Serial.println("Wednesday");
    break;
  case 5:
    Serial.println("Thursday");
    break;
  case 6:
    Serial.println("Friday");
    break;
  case 7:
    Serial.println("Saturday");
    break;
  }
}
void loop()
{
  displayTime(); // display the real-time clock data on the Serial Monitor,
  delay(1000); // every second
}


Ultima modifica di Admin il Mar Ott 04, 2016 3:51 pm, modificato 1 volta

Poderak
♔ Amministratore

Messaggi Messaggi : 4117
Crediti Crediti : 11595
Reputazione Reputazione : 185
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

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

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Guido Laferrari il Mar Ott 04, 2016 11:40 am

Ciao,
si scorrono da sinistra a destra ma i numeri che compaiono sono sempre gli stessi ,non cambiano.
A presto
Guido

Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Vedere il profilo dell'utente

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Poderak il Mar Ott 04, 2016 3:51 pm

Potrebbe allora esser guasto Sad

Poderak
♔ Amministratore

Messaggi Messaggi : 4117
Crediti Crediti : 11595
Reputazione Reputazione : 185
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 18
Località Località : Brescia

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

Tornare in alto Andare in basso

Re: Esempi per DS 3231

Messaggio Da Guido Laferrari il Mar Ott 04, 2016 6:22 pm

Ciao
grazie lo stesso per l'interessamento,provvedo a ordinarne uno un po più serio.
a presto.
Guido

Guido Laferrari
Livello due
Livello due

Messaggi Messaggi : 34
Crediti Crediti : 54
Reputazione Reputazione : 2
Data d'iscrizione Data d'iscrizione : 30.04.16

Vedere il profilo dell'utente

Tornare in alto Andare in basso

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


 
Permesso di questo forum:
Non puoi rispondere agli argomenti in questo forum