[RISOLTO] LM35 output temperatura su 4 display 7seg.

Salve a tutti ragazzi è il mio primo post qui sul forum e spero di trovare il vostro aiuto (e di non essere OT). Come da titolo sto facendo un piccolo termometro con il sensore LM35 e fin qui tutto bene riesco a visualizzare sul serial Monitor il valore corretto della temperatura. Il passo successivo e quello di poterla visualizzare su 4 display 7 segmenti a catodo comune che già posseggo ma ho qualche dubbio in merito al loro collegamento. Mi spiego meglio possiedo già come componenti:
4 display 7 seg catodo comune
4 transistor BC547 oppure BC337
1 IC 74LS47
Punto 1)
Ora leggendo le varie discussioni inerenti mi pare di aver capito che posso collegare in parallelo i display e utilizzare i pin di uscita dell LS47 per pilotarli utilizzando i transistor per il multiplexing. Potete confermarmi che con i componenti che ho scritto prima la cosa è fattibile? necessita di resistenze il circuito?
Punto 2)
Dallo scketch che mi rileva la temperatura del tipo 25.89°C riesco a estrapolare le quattro cifre singole che compongono il dato da visualizzare potreste darmi qualche idea su come questi 4 numeri posso inviarli ai pin Arduino per poi trasferirli 74LS47 che a sua volta trasferirà ai display? Si tratta di valori compresi tra 0 e 9 pertanto suppongo dovrò usare le porte analogiche...
Grazie in anticipo per la disponibilità. :slight_smile:

Non proprio. IL 74LS47 é un decoder BCD a 7 Segmenti per pilotare un modulo Display a 7 segmenti a anodo comune.
Tu gli dai un numero da 0 a 15 e lui pilota i rispettivi segmenti portandoli a massa.
IL 74LS47 non puoiusarlo con quel display.

Puoi pilotare i anodi mettendo i segmenti corrispondenti delle 4 cifre insieme tramite una resistenza a 8 uscite Arduino (7 segmneti e punto decimale). Con 4 transistori BC337 (regge piú corrnete del BC547) metti uno dei 4 catodi a massa (serve una resistenza tra uscita Arduino e base transistore).

http://www.electronicsblog.net/4-digits-7-segments-led-display-multiplexing-with-arduino/

Ciao Uwe

Purtroppo il 74ls47 e' un decoder per dei display ad Anodo comune, per fare quello che dici tu, ti servirebbe un 74ls48

Ho collegato i display seguendo questo schema:

utilizzando i pin mostrati nello schema nello sketch che uso:

//LM35 + 4 display 7 segmenti

float tempC;      //dichiarazione di variabile
int tempPin = 0;  //inizializzazione del pin di Arduino
int n, temp1, temp2, n1, n2, n3, n4;

void setup()
{
Serial.begin(9600); //apertura porta seriale, set della velocità a 9600 bps
}

void loop()
{
tempC = analogRead(tempPin);           //lettura valore del sensore
tempC = (5.0 * tempC * 100.0)/1024.0;//conversione del dato analogico in temperatura
n=tempC*100; //separazione delle quattro cifre temperatura
temp1 = n;
   n1 = temp1 / 1000;
   temp2 = temp1 % 1000;
   n2 = temp2 / 100;
   temp1 = temp2 % 100;
   n3 = temp1 / 10;
   n4 = temp1 % 10;
             //invia i dati alla seriale
Serial.print(" Temperatura ^C: ");Serial.println(tempC);
//Serial.println(n1); Serial.println(n2);Serial.println(n3);Serial.println(n4);
delay(1000);              //aspetta 1 secondo prima di ripetere
}

riesco a ottenere le 4 cifre che mostrano la temperatura in maniera separata nelle variabili n1 n2 n3 n4 il problema è come riuscire a poterle mostrare sui display...non sono molto ferrato in C ma volevo chiedervi se potete darmi almeno un idea su come scrivere nel codice la cosa...poi tento di sbatterci io...

edit by mod: per favore includere il codice usando gli appositi tag

Dove hai trovato quello schema, c'e' anche lo sketch per gestire i 4 display in multiplexing.

Lo schema l ho trovato qui :

si tratta di un contatore con 4 display e volevo adattarlo al mio sensore di temperatura cercando di vedere il valore sui display, cosa che purtroppo non mi riesce...

Ringrazio tutti per la disponibilità sono riuscito a risolvere studiandomi per bene il progetto linkato nel POST precedente e adattandolo per la mia necessità. :stuck_out_tongue: :stuck_out_tongue: