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 :)

leo72


luponero76

#6
Jan 21, 2013, 12:30 am Last Edit: Jan 21, 2013, 12:34 am by luponero76 Reason: 1
no...ho attaccato una foto...dall'altra parte ci son 3 piedini sulla dx e 2 piedini sulla sx..in mezzo lo spazio vuoto di due piedini...
spero si capisca....il mio sospetto e' che sia un led fatto esclusivamente per l'HP printer e non commerciabile per altri utenti
i due dp non funzionano e hanno due vcc e due pin inutilizzabili:

     A - 0   0 -Vcc
     F - 0   0 -B
  Vcc - 0    .
            .    0 -G
            .    0 -C
boh? - 0    0 -boh?
       E- 0    0 -D

i punti son quelli dove mancano i piedini
e dall'altra parte a dicitura " 2005-25"
dd.

leo72

Comunque i LED sono diodi per cui possono condurre solo in un verso. Quindi il tipo di display si trova velocemente.
Fai comunque i test con un'alimentazione con una R, per non condurre troppa corrente, altrimenti rischi di danneggiare i segmenti (va bene anche una R da 470 ohm: faranno poca luce ma sei sicuro che passi poca corrente).

luponero76

ma solo con i puntali usando il rosso sui vcc e il nero toccando altri piedini val bene uguale?
io l'ho fatto cosi usando la continuita come selettore della modalita e mi si illuminavano i piedini "attivi"
a quanto pare l'energia che passa bastava per illuminare, anche poco, i segmenti.

leo72

Il tester in modalità continuità dovrebbe far scorrere una minima corrente, non so quanta però è poca. Probabilmente gli bastava per emettere un po' di luce.

luponero76

infatti ho usato sto metodo su tutti i led in mio possesso...rgb, bianchi forti, blu, rossi , verdi tutti i tipi...fiocamente, ma quanto bastava per vedere se funzionavano....avendone bruciati un bel pò li controllo sempre :)
ora sto cercando di interpretate il tuo link.... devo dire che forse e' l'ora di andare a nanna....per me.
grazie ancora e alla prossima "rottura" forumense
:D
dd.

luponero76

per correttezza vi dico subito che ho accantonato il progetto in attesa di volontà mirate a quel circuito...prima imparo di più prima ci ritorno..grazie per il vostro aiuto. :)

Go Up