Go Down

Topic: scorrere cifre variabili su un singolo 7 segment led (Read 1 time) previous topic - next topic

luponero76

allò
vorrei creare un semplice e piccolo lettore di temperatura da ficcar dentro una scatoletta di latta come giochino simpatico.
fin'ora son riuscito a capire come leggere un sensore temperatura il tmp36 con Arduino uno rev 3 (a parte quando ho invertito in buona fede i contatti 3.3v e gnd sui piedini del sensore... raggiungendo  in pochi secondi la bella temperatura di 260 c° come leggendo nel serial monitor di arduino ide, e per verificare la cosa ho fatto il modo piu scientifico e logico...toccandolo col dito!
manca solo che si leggevano pure le scritte di serigrafia nella bolla bianca che mi son fatto stupidamente!

poi son riuscito a pilotare anche un 7 segment led a cathode comune ricavato da una vecchia stampante hp...mettendo una resistenza da 220ohm che non si sa mai.

l'ostacolo e' dovuto dalla mia completa ignoranza su che chiave di ricerca usare per cercare uno sketch che dica al 7segmentLed di leggere i dati della temperatura facendola scorrere su un singolo modulo.
esempio 23.5 c° faccia scorrere prima la 2 poi la 3 poi un meno visto che il DP del modulo non funziona o non esiste , poi il 5 e infine la C.
ora come ora mi son sbattuto per trovare delle cose...ne trovavo ma erano scritti in codice fuori Arduino e non so come portingare dentro Arduino language e che si son tante problematiche da risolvere.
confido in voi che mi darete qualche dritta su dove trovare le cose.
la pappa pronta mi piace...ma preferisco imparare facendole ex novo(bolle d'ustioni alle dita premettendo)
saluti
dd.

leo72


poi son riuscito a pilotare anche un 7 segment led a cathode comune ricavato da una vecchia stampante hp...mettendo una resistenza da 220ohm che non si sa mai.

1 resistenza sola? Dove, sul catodo? Ed i segmenti, da dove li accendevi? Dai pin dell'Arduino?
No, devi mettere 1 resistenza su ogni anodo di ogni singolo segmento. Altrimenti rischi di far fare il botto all'Arduino.

Quote

l'ostacolo e' dovuto dalla mia completa ignoranza su che chiave di ricerca usare per cercare uno sketch che dica al 7segmentLed di leggere i dati della temperatura facendola scorrere su un singolo modulo.

esempio 23.5 c° faccia scorrere prima la 2 poi la 3 poi un meno visto che il DP del modulo non funziona o non esiste , poi il 5 e infine la C.
ora come ora mi son sbattuto per trovare delle cose...ne trovavo ma erano scritti in codice fuori Arduino e non so come portingare dentro Arduino language e che si son tante problematiche da risolvere.
confido in voi che mi darete qualche dritta su dove trovare le cose.
la pappa pronta mi piace...ma preferisco imparare facendole ex novo(bolle d'ustioni alle dita premettendo)
saluti
dd.

Ti consiglio di lavorare con gli interi.
Moltiplica per 10 il dato e salvalo in una variabile di tipo int, così tagli via tutti i decimali dalla seconda cifra in poi.
Poi il limite max quant'è? 100?
Facciamo allora che sia 99.9° per cui 99.9*10=999.

Facciamo un esempio. Hai 23,5°C
23.5*10=235
A questo punto fai (235/100) per avere le centinaia: 2
poi fai (235-(2*100)) ed hai il resto da visualizzare: 35
Adesso fai (35/10) ed hai le decine: 3
Poi metti un segno di divisione (tipo "-") se non ti funziona il punto.
Poi fai (35-(3*10)) ed ottieni le unità: 5
Alla fine visualizzi "C"

luponero76


1 resistenza sola? Dove, sul catodo? Ed i segmenti, da dove li accendevi? Dai pin dell'Arduino?
No, devi mettere 1 resistenza su ogni anodo di ogni singolo segmento. Altrimenti rischi di far fare il botto all'Arduino.

una resistenza fra il catodo ... aspetta un momento...mi sto confondendo...siccome sto usando un refuso di una vecchia stampante e aveva come seriale "SA43-21GWW-7.5" della kingbright....
ho pensato che e' un anodo...quindi positivo visto che ho testato accendendo i singoli segmenti con la continuità del tester, sull'anodo tenevo il puntale rosso e si accendevano i segmenti usando il puntale nero sugli altri pin.
inversamente non succedeva niente,ho capito bene quel che ho fatto?
quindi e' anodo ergo tra esso e il 3.3v dell'arduino ho messo la resistenza e i segmenti dai pin dell'arduino.
ti prego di correggermi se so dando numeri assurdi perché già mi sto dando grossi dubbi dato che non esiste datasheet di sto affarino led.
poi meno male che mi hai detto della dritta di ogni resistenza per ogni led , indipendentemente da che sia catodo o anodo , e' sempre una info in più...grazie. :)


Ti consiglio di lavorare con gli interi....


va bene, come idea concordo..anche pratico...ma devo aggiungere che son abbastanza a digiuno come C language...anche perché dovrei mettere questa formuletta prendendo come esempio il : " Serial.print(temperatureC)" ?

l'ideale era questo modulo fatto qua https://www.youtube.com/watch?v=Fw0lHWN1pj0 che era perfetto per i miei utilizzi...ma non mi sembrava stile arduino...

leo72

Sia che sia un display a catodo comune sia che sia ad anodo comune, devi sempre mettere 1 resistenza per segmento: se è ad A.C., le resistenze vanno sui catodi, se è a C.C. le resistenza vanno sugli anodi. Mai mettere 1 unica resistenza.
Inoltre usa un valore tale da avere 10 mA o meno per segmento. Questo per non friggere l'Atmega328 se accendi tutti i segmenti contemporaneamente.

Tornando al display, guarda questa pagina:
http://www.dfrobot.com/wiki/index.php/Segment_Display_Lesson

C'è un display a catodo comune e c'è il codice di come creare i vari numeri accendendo i segmenti in modo appropriato

luponero76

sto andando a leggerlo.... indi concordi con me che sto led e' a anodo comune cioe' +.
bon...spero di apprendere qualcosa... intanto grazie :)

Go Up