ciao a tutti, oggi girando per casa mi sono imbattuto in una manciata di display a 7 segmenti, subito mi è venuta la tentazione di applicarli al mio arduino uno... ma preso il tester scopro che sono ad anodo comune....
Ora... non volendo arrendermi alla prima delusione ho fatto un esperimento:
ho collegato l'anodo a 5V e il catodo di un segmento del display al PIN 13... ho caricato il classico BLINK e.... FUNZIONA... l'unico problema è che il led si accende con LOW e si spegne con HIGH... ora vorrei chiedere, è strana questa soluzione o ho scoperto l'acqua calda???
cè il rischio di rovinare arduino???
Hai scoperto l'acqua calda ![]()
Succede perchè impostando il pin su low c'è una differenza di potenziale fra il catodo e l'anodo, come detto da un utente in questa discussione
Ciao anche a te! ![]()
Prima di tutto, l'hai messa una resistenza di limitazione per il led?
Se NO ti consiglio di metterla perché rischieresti, se lasci il segmento acceso per più di un secondo, di bruciare il led.
Come calcolare la R di limitazione: R=(Vcc-1.5)/0.016
dove nel tuo caso Vcc corrisponde alla tensione 5V dell'arduino, 1.5 corrisponde alla tensione necessaria per il segmento per accendersi, 0.016 corrisponde alla corrente di lavoro ottimale del segmento (o led).
detto questo, il segmento si accende al "contrario" perché quando arduino esegue digitalWrite(var,LOW), sul Pin 13 viene stabilita una tensione di 0V (che il led prende come riferimento a massa). Tutto questo è normalissimo, ma dovrai quindi pensare nel tuo sketch in logica inversa (ovvero HIGH==spento e LOW==acceso).
Arduino non si rovinerà finché non chiederai da un singolo pin la corrente massima di 0.040 A (40mA).
Con un led arrivi circa a 0.015 A.
Divertiti!! ![]()
grazie delle risp, siccome vorrei realizzare un timer per il mio bromografo con un atmega328 stand alone che integrato potrei collegare per ridurre l'utilizzo dei pin?
Bisbulle:
Come calcolare la R di limitazione: R=(Vcc-1.5)/0.016
Come fai a sapere le caratteristiche di questi display senza che lui abbia detto il modello esatto ? ![]()
E' piu' corretto quindi dire R=(Vcc-Vf)/If
Come fai a sapere le caratteristiche di questi display senza che lui abbia detto il modello esatto ? smiley
E' piu' corretto quindi dire R=(Vcc-Vf)/If
Certo, hai ragione te, ho messo i valori per spiegargli meglio.
Comunque, i valori sono in linea di massima. ![]()
@ajl91:
se vuoi, puoi seguire questa discussione
http://arduino.cc/forum/index.php/topic,104723.0.html
Ho messo un paio di progetti di orologi con display a 7 segmenti ad anodo comune completi del relativo codice per pilotarli direttamente da un Arduino o da un Atmega standalone.
ajl91:
ciao a tutti, oggi girando per casa mi sono imbattuto in una manciata di display a 7 segmenti, subito mi è venuta la tentazione di applicarli al mio arduino uno... ma preso il tester scopro che sono ad anodo comune....
Ora... non volendo arrendermi alla prima delusione ho fatto un esperimento:
ho collegato l'anodo a 5V e il catodo di un segmento del display al PIN 13... ho caricato il classico BLINK e.... FUNZIONA... l'unico problema è che il led si accende con LOW e si spegne con HIGH... ora vorrei chiedere, è strana questa soluzione o ho scoperto l'acqua calda???
cè il rischio di rovinare arduino???
Hai scoperto l'acqua tiepida.
Devi mettere le resitenze che limitano la corrente del LED. Senza arrivi facilmente a 80mA e rischi di rompere sia il display che l'uscita Arduino.
Ciao Uwe
Bisbulle:
Come fai a sapere le caratteristiche di questi display senza che lui abbia detto il modello esatto ? smiley
E' piu' corretto quindi dire R=(Vcc-Vf)/IfCerto, hai ragione te, ho messo i valori per spiegargli meglio.
Comunque, i valori sono in linea di massima.
Non ho problemi col consiglio di Bisbulle. Ha scelto valori che non creano danni in caso di display diversi dal rosso. Saranno piú deboli.
Ciao Uwe
ajl91:
grazie delle risp, siccome vorrei realizzare un timer per il mio bromografo con un atmega328 stand alone che integrato potrei collegare per ridurre l'utilizzo dei pin?
Stavo pensando a una cosa: dato che vuoi diminuire i pin utilizzati dell'arduino per pilotare n display a 7 segmenti, la soluzione più rapida che mi viene in mente è quella di utilizzare l'integrato C/Mos 4511.
In quel modo potrai pilotare i 7 segmenti del display con 4 pin che corrispondono 4bit.
Quindi: 0000=0--0001=1--0010=2--0011=3--0100=4--0101=5--0110=6--0111=7--1000=8--1001=9
Spero di non averti confuso le idee e/o aver detto bischerate.
@bisbulle:
ma il 4511 non è per i display a catodo comune? Lui ha quelli ad anodo comune.
@Leo:
Hai ragione! Me n'ero scordato... ![]()
Comunque l'idea è quella...
sí, per gli display a anodo comune il datasheet propone di aggiungere un transistore. Una cosa poco praticabile.
Se avesse display a catodo comune avrei giá proposto il MAX7219.
Ciao Uwe
uwefed:
Non ho problemi col consiglio di Bisbulle.
Nemmeno io, infatti sono valori che di certo non avrebbero creato problema, era solo un consiglio per indicare la giusta strada per fare le cose.
Non mi sono mai piaciuti i numeri magici, Nuova elettronica ad esempio fa cosi', spara i valori direttamente senza spiegare da dove arrivano, il che e' comodo ma poco istruttivo.
anodo: yes, leo ha ragione, hai due soluzioni, potresti ugualmente usarlo aggiungendo dei transistor in uscita, oppure cercare un 74HC47
Se vuole usare il minimo numero di piedini, può eventualmente collegare il display ad un Attiny2313 e poi comunicare con l'Attiny2313 tramite seriale. L'Attiny2313 ha 20 pin, di cui 17 usabili con I/O. Togliamone 2 per la seriale, e siamo a 15. Per pilotare 1 display a 7 segmenti servono 13 pin 5 per gli anodi comuni e 8 per i catodi dei led. Quindi ci rientriamo abbondantemente.
E l'Attiny2313 lo può programmare per controllare il display in multiplexing.
Testato:
Non mi sono mai piaciuti i numeri magici, Nuova elettronica ad esempio fa cosi', spara i valori direttamente senza spiegare da dove arrivano, il che e' comodo ma poco istruttivo.
[/quote]
Io con Nuova Elettronica e in particolare con i libri "Imparare l'elettronica partendo da zero" ho imparato (e sto imparando) molto. Il bello di questi libri è che sono perfetti per imparare l'elettronica di base cosa che, (prendo spunto da dove mi insegnano) viene data per scontata. Senza le basi non si va avanti purtoppo...
Poi concordo con Testato: i valori non vanno dati come il concio... XD
Bisbulle:
i valori non vanno dati come il concio... XD
Questo lo capisce solo un altro Toscano... ![]()
Diciamo che "i valori non vanno dati come verità assoluta" o "come un dato di fatto" ![]()
Potevo anche dire "I valori non vanno dati come il papa con l'acqua santa" così ero in tema XD (è 2 settimane che noi Aretini parliamo solo di Papa)
Perché? Vi viene a trovare il Papa? ![]()
E' venuto questa mattina, atterrando allo stadio poi ha visto gli aretini con le loro motozappe ed è scappato...