Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Sketch ds3231, arduino uno, display 20x4 sda-scl

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[11] Re: Sketch ds3231, arduino uno, display 20x4 sda-scl

Messaggioda Foto Utentenicsergio » 24 giu 2023, 20:04

Ho scritto il codice al volo, non è testato e non ho mai utilizzato le tue librerie, quindi non garantisco.
Dovresti aggiungere queste righe in fondo al metodo updateLCD(), dopo quelle che hai commentato:

Codice: Seleziona tutto
lcd.setCursor(15,3);
char temp[5];
dtostrf(rtc.getTemperature(),4,1,temp);
lcd.print(temp);
lcd.print("C");
Avatar utente
Foto Utentenicsergio
4.701 3 9 13
Master
Master
 
Messaggi: 938
Iscritto il: 1 gen 2020, 16:42

0
voti

[12] Re: Sketch ds3231, arduino uno, display 20x4 sda-scl

Messaggioda Foto Utenteapollo17 » 24 giu 2023, 21:42

Codice: Seleziona tutto
  if (input == 'u') updateRTC();  // update RTC time
  }
}

lcd.setCursor(15,2);
char temp[5];
dtostrf(rtc.getTemperature(),4,1,temp);
lcd.print(temp);
lcd.print("C");
}
}


Arduino:1.8.19 (Windows Store 1.8.57.0) (Windows 10), Scheda:"Arduino Uno"





















CUCCIOLO_20x4_data_ora_lug23_00_ok_non_toccare:144:1: error: 'lcd' does not name a type

lcd.setCursor(15,2);

^~~

CUCCIOLO_20x4_data_ora_lug23_00_ok_non_toccare:146:8: error: expected constructor, destructor, or type conversion before '(' token

dtostrf(rtc.getTemperature(),4,1,temp);

^

CUCCIOLO_20x4_data_ora_lug23_00_ok_non_toccare:147:1: error: 'lcd' does not name a type

lcd.print(temp);

^~~

CUCCIOLO_20x4_data_ora_lug23_00_ok_non_toccare:148:1: error: 'lcd' does not name a type

lcd.print("C");

^~~
error: expected declaration before '}' token

}

^

exit status 1

'lcd' does not name a type
Avatar utente
Foto Utenteapollo17
81 1 2 6
Stabilizzato
Stabilizzato
 
Messaggi: 324
Iscritto il: 30 lug 2017, 11:59

0
voti

[13] Re: Sketch ds3231, arduino uno, display 20x4 sda-scl

Messaggioda Foto Utenteapollo17 » 24 giu 2023, 21:52

ho cambiato cursore perché la mia riga libera, partendo da zero è la 2. Grazie
Avatar utente
Foto Utenteapollo17
81 1 2 6
Stabilizzato
Stabilizzato
 
Messaggi: 324
Iscritto il: 30 lug 2017, 11:59

0
voti

[14] Re: Sketch ds3231, arduino uno, display 20x4 sda-scl

Messaggioda Foto Utentenicsergio » 24 giu 2023, 21:53

Non hai mica inserito il mio codice dove ti avevo detto, devi inserirlo all'interno di updateLCD(), non in fondo allo sketch.

Se hai una intera riga libera, allora puoi inserire questo:
Codice: Seleziona tutto
lcd.setCursor(0,2);
lcd.print(F("Temperatura: "));
char temp[6];
dtostrf(rtc.getTemperature(),5,1,temp);
lcd.print(temp);
lcd.print(F("°C"));
Avatar utente
Foto Utentenicsergio
4.701 3 9 13
Master
Master
 
Messaggi: 938
Iscritto il: 1 gen 2020, 16:42

1
voti

[15] Re: Sketch ds3231, arduino uno, display 20x4 sda-scl

Messaggioda Foto Utenteapollo17 » 25 giu 2023, 12:25

scusa ho sbagliato io; perfetto devo solo allinearlo, un po', grazie e complimenti.
Ultimo desiderio far lampeggiare un led o dal pin 11 ad esempio di UNO o dalla rtc, a circa 1 Hz.
Buona domenica, poi posto foto-
Avatar utente
Foto Utenteapollo17
81 1 2 6
Stabilizzato
Stabilizzato
 
Messaggi: 324
Iscritto il: 30 lug 2017, 11:59

0
voti

[16] Re: Sketch ds3231, arduino uno, display 20x4 sda-scl

Messaggioda Foto Utenteapollo17 » 25 giu 2023, 12:54

sempre, se possibile, come si fa mettere il valore temp in una variabile per poi sottrarre a aumentare il suo valore. Ciò perché come si sa non è che sia tanto precisa in temperatura e quindi regolare il valore in base ad un termometro più serio posto vicino a RTC.

Strano che non prende il carattere ° di C = °C. provato pure con copia e incolla, esce fuori uno strano simbolo, ma assolutamete NON è un problema, metterò ^ o la scritta Celsius.
Avatar utente
Foto Utenteapollo17
81 1 2 6
Stabilizzato
Stabilizzato
 
Messaggi: 324
Iscritto il: 30 lug 2017, 11:59

0
voti

[17] Re: Sketch ds3231, arduino uno, display 20x4 sda-scl

Messaggioda Foto UtenteThEnGi » 25 giu 2023, 12:55

Il DS3231 ha a disposizione il pin SQW, che configurato da SW emette un onda quadra a 1Hz.
Cosi non carichi l'arduino :ok:
Attenzione che è open drain !

EDIT: Sprecare un pin e mettere un "DS18B20" e lasciare la temperatura letta dal RTC solo per la compensazione del cristallo ?
Come ti sei accorto è molto indicativa !

O_/
Avatar utente
Foto UtenteThEnGi
2.230 3 6 9
Expert EY
Expert EY
 
Messaggi: 2228
Iscritto il: 6 ott 2022, 18:43

0
voti

[18] Re: Sketch ds3231, arduino uno, display 20x4 sda-scl

Messaggioda Foto Utenteapollo17 » 25 giu 2023, 16:54

dovrebbe andare, ma in quale punto del programma inserire le linee?
Uscita 1 Hz su sqw


#include <Wire.h>
void setup(){
Wire.begin(); // avvia il protocollo I2C
Wire.beginTransmission(0x68); // indirizza l'RTC
Wire.write(0x07); // indirizza il registro
Wire.write(B00010000); // scrive il valore
Wire.endTransmission(); // libera il bus
while(1); // ferma il programma
}

void loop(){}
Avatar utente
Foto Utenteapollo17
81 1 2 6
Stabilizzato
Stabilizzato
 
Messaggi: 324
Iscritto il: 30 lug 2017, 11:59

0
voti

[19] Re: Sketch ds3231, arduino uno, display 20x4 sda-scl

Messaggioda Foto UtenteThEnGi » 25 giu 2023, 17:08

Non ho tutto il codice sotto mano (neanche l'IDE di arduino a dire la verità).
ti conviene creare una funzione e usarla nel tuo programma principale, la chiamata la metti in setup quando configuri le varie periferiche

Codice: Seleziona tutto
...... Codice prima ......
Lampeggio(); //Finita questa funzione c'è 1Hz sul pin SQW
.......Codice dopo .........


La funzione
Codice: Seleziona tutto
void Lampeggio(){
Wire.begin();                   // avvia il protocollo I2C
Wire.beginTransmission(0x68);   // indirizza l'RTC
Wire.write(0x07);               // indirizza il registro
Wire.write(B00010000);          // scrive il valore
Wire.endTransmission();         // libera il bus
}


Non ho controllato se il codice è giusto o compila ho fatto solo copia incolla :mrgreen:

O_/
Avatar utente
Foto UtenteThEnGi
2.230 3 6 9
Expert EY
Expert EY
 
Messaggi: 2228
Iscritto il: 6 ott 2022, 18:43

0
voti

[20] Re: Sketch ds3231, arduino uno, display 20x4 sda-scl

Messaggioda Foto Utenteapollo17 » 25 giu 2023, 17:09

sulla temperatura segna sempre +1,3 gradi in più, basterebbe togliere un grado
Avatar utente
Foto Utenteapollo17
81 1 2 6
Stabilizzato
Stabilizzato
 
Messaggi: 324
Iscritto il: 30 lug 2017, 11:59

PrecedenteProssimo

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti