Display LCD

Buonasera ragazzi,
sono nuovo nel mondo Arduino. Mi trovavo nel topic hardware perchè sto progettando con l'aiuto di qualcuno una centralina di termoregolazione solare.

Per ora ho sulla mia piastra millefori un display collegato a 4 bit, un potenziometro 10k per il contrasto, un sensore di temperatura collegato sul pin analogico e una fotoresistenza che mi accende o spegne la retroilluminazione del mio display sempre collegato all'analogico.

Ora sul mio display, sulla prima riga mi compare un valore "ftr: 1...2...ecc" e sul secondo la temperatura.

Ftr è il valore misurato della fotoresistenza. DOpo i due valori mi ritrovo 5 righe verticali neli due riquadri accanto all'ultimo numero.
Come posso eliminarli?

Grazie

Giuseppe

Sinceramente non ho capito nulla.
Forse è utile una foto del problema. Ma il display non lo piloti tu? Non sei tu che stampi sul display? Dovresti sapere cosa stampi, oppure hai un codice copiato di cui non sai cosa fa?

Le righe verticali le stamperai Tu. Controlla il codice.
Ciao Uwe

Ragazzi vi incollo parte del codice:

  lcd.setCursor(0, 1);
    
  v=analogRead(pin);/*leggiamo il valore della tensione ai capi di R1*/

  volt=(5*v/1023)/10;/* riportiamo la tensione tra 0 e 5 volt con una proporzione*/

  Rt=R1*((5/volt)-1);/*Resistenza del termistore*/

  temp=1/(0.002334307344+0.00009494756905*log(Rt))+0.000001103806813*log(Rt)*log(Rt)*log(Rt); /*calcolo la temperatura con la formula di Steinhart-Hart*/

  Temperatura=temp-273.15;/* Conversione in gradi Celsius*/

lcd.print("Ta : ");
lcd.println(Temperatura);/*Stampo il valore della teperatura*/

E' un sistema solare però lo sto implementando man mano che ci studio su.
Sono nuovo ma così facendo non mi pare di stampare le righe. Fra poco posto una foto!

@ Rs125 : vedo che nel codice usi numeri del tipo ... 0.000001103806813 ...
... forse ti è sconosciuta la cosa che su Arduino NON esistono i double (sono equiparati ai float ... 32 bit) e che :

"Floats have only 6-7 decimal digits of precision. That means the total number of digits, not the number to the right of the decimal point."

... quindi ... stai scrivendo numeri che verranno tutti inesorabilmente troncati, arrotondati e la precisione sarà quella che sarà :roll_eyes:

Guglielmo

Ciao gugliemo, intanto grazie per l'aiuto.
Si effettivamente non lo sapevo...continuo a ripetere di essere nuovissimo quindi man mano che sorgono i problemi li affronto. Questa formula l'ho presa in giro sulla rete. Quindi secondo te come posso fare?

Bella domanda ...
... dipende a te che precisione serve ... perché altrimenti devi passare a sistemi che gestiscono realmente i double ... :roll_eyes:

Guglielmo

Dovrebbe avere un margine di errore non più alto di 0,5°C.

Visto che so che sei bravo...dai un'occhiata Arduino UNO r3: sistema di controllo accumulo ACS solare termico - #17 by Rs125 - Hardware - Arduino Forum

... perdona, intendevo come numero di decimali che ti sono necessari nei calcoli per ottenere un risultato da te accettabile.

Guglielmo

Ho capito...quindi devo cambiare formula giusto?

Ho letto anche l'altro thread ...
... tu hai già visto QUESTO ??? Perché li Uwe da precise indicazioni per l'uso di quelle sonde ... :roll_eyes:

Guglielmo

Ho trovato questo sul playground: Arduino Playground - Thermistor2

... non tutto quello che è sul playground è da prendere come "oro colato" ... e quei tizi che hanno scritto quell'articolo .. ho idea che anche loro NON sapessero dei limiti di Arduino ... :roll_eyes:

Se devi fare calcoli con quella precisione e con tutti quei decimali allora ...

"Double precision floating point number : On the Uno and other ATMEGA based boards, this occupies 4 bytes. That is, the double implementation is exactly the same as the float, with no gain in precision. On the Arduino Due, doubles have 8-byte (64 bit) precision."

... però, io sconsiglio sempre Arduino DUE, specie a chi inizia :

  1. Arduino DUE è molto poco supportato e pochissime librerie di terze parti sono state convertite per funzionarci.
  2. Molti pochi shield sono fatti per funzionare su Arduino DUE.
  3. La scheda funziona esclusivamente a 3.3V e molti dei suoi pin sono in grado di dare un decimo della corrente (max 3 mA) dei pin degli altri Arduino (max 40 mA). I rimanenti comunque non danno più di 15 mA.
  4. E' sicuramente un processore molto più complesso da utilizzare. Basta guardare le oltre 1400 pagine di cui è composto il datasheet
  5. Difficilmente vedrà ulteriori sviluppi dato che ... ora c'è da dedicarsi alle nuove schede.

Hai visto il post di Uwe che ti ho linkato ??? Hai visto il circuito di amplificazione e le sue spiegazioni ?

Guglielmo

Guglielmo,rimane così allora...secondo te con quei numeri che errori posso avere?perchè in caso potrei accontentarmi...la stessa scheda deve gestirmi 3 PT1000 e quelle mi servono con margini di errore non superiore a 1°C per sonda.
Ora guardo quel post...

Premesso che non mi sono mai dedicato a misurare temperature con un PT1000 e Arduino ... io ti consiglio comunque di fare un po' di ricerche su Google ed in particolare su Google Images, per "Arduino PT1000" ... vengono fuori decine di schemi di amplificazione e collegamento.

Inoltre, senza scopiazzare (... e senza capire) formule con un'infinità di decimali ... cercati il datasheet della tua sonda e guarda quale è l'andamento della resistenza in funzione della temperatura.

Guglielmo

gpb01:
Premesso che non mi sono mai dedicato a misurare temperature con un PT1000 e Arduino ... io ti consiglio comunque di fare un po' di ricerche su Google ed in particolare su Google Images, per "Arduino PT1000" ... vengono fuori decine di schemi di amplificazione e collegamento.

Inoltre, senza scopiazzare (... e senza capire) formule con un'infinità di decimali ... cercati il datasheet della tua sonda e guarda quale è l'andamento della resistenza in funzione della temperatura.

Guglielmo

Allora,su google ho già visto parecchio ma purtroppo non riesco a reperire gli integrati per fare questo. Ho deciso di acquistare una sonda diversa già pronta per Arduino esattamente questa "ds18b20 con tre fili waterproof" resistente all'acqua quindi.
Pare che sia molto più facile gestirla e misurarla.

Ora sto chiendendo nel forum hardware se qualcuno l'ha provata.Sai aiutarmi sulla scelta dei relè?Ho bisogno di un relè da far scambiare con Arduino e che mi dia 220v a 16A dall'altro lato.

Giuseppe

Rs125:
Sai aiutarmi sulla scelta dei relè?Ho bisogno di un relè da far scambiare con Arduino e che mi dia 220v a 16A dall'altro lato.

Dipende da dove lo devi montare ...

Per il pilotaggio, fai riferimento allo schema che ti allego, in alto a sinistra.

Per il relè, capito dove lo devi montare, QUI hai solo l'imbarazzo della scelta ...
... nella colonna di sinistra imposti i filtri (tensione bobina, tipo di montaggio, corrente di commutazione massima, ecc,) e trovi quello che cerchi.

Guglielmo

scheda_3.pdf (408 KB)

gpb01:

Rs125:
Sai aiutarmi sulla scelta dei relè?Ho bisogno di un relè da far scambiare con Arduino e che mi dia 220v a 16A dall'altro lato.

Dipende da dove lo devi montare ...

Per il pilotaggio, fai riferimento allo schema che ti allego, in alto a sinistra.

Per il relè, capito dove lo devi montare, QUI hai solo l'imbarazzo della scelta ...
... nella colonna di sinistra imposti i filtri (tensione bobina, tipo di montaggio, corrente di commutazione massima, ecc,) e trovi quello che cerchi.

Guglielmo

Grazie guglielmo...lo schema elettrico è fondamentale per me...
Sicuramente mi devi dare una mano sulla programmazione :stuck_out_tongue: