Salve gente! Vorrei utilizzare una sola uscita digitale per pilotare due led. Ma i led non devono mai essere accesi contemporaneamente cioè se è acceso uno l'altro deve essere spento. Avevo pensato ad un circuito con due diodi di cui uno zener in maniera tale che attraverso un uscita analogica di arduino potevo far accedere o il diodo normale o lo zener e in maniera tale da collegare opportunamente i due led ai due diodi ma non ci sono riuscito. Mi date una dritta su un possibile circuito da realizzare, grazie?
P.S.: ho arduino uno e non mi bastano le uscite per il progetto che sto realizzando e quindi vorrei ovviare utilizzando una sola uscita per pilotare due led come se fossero pilotati singolarmente da due uscite staccate. Non so se è possibile...aspetto vostre delucidazioni.
Ciao, non so darti una risposta riaguardo al metodo che hai descritto ma di solito quando non mi bastano i pin digitali ricorro agli shift register 74HC595, che se non conosci è un integrato che si comanda con soli 3 pin di arduino ti aggiunge 8 uscite digitali; qualora non te ne bastassero 8 puoi aggiungerne altri in cascata e moltiplichi le uscite sempre pilotandoli con solo 3 pin digitali ( http://www.arduino.cc/en/Tutorial/ShiftOut ). Oppure in caso non lo sapessi se hai anche un pin analogico libero lo puoi usare come digitale, ad esempio il pin A0 diventa pin digitale 14 e così via per gli altri.
Spero ti sia stato di aiuto
Saluti
Aspita mi sei stato di grande aiuto! Ma come faccio ad usare l'ingresso analogico A0 come uscita digitale? Basta "pinMode(A0,OUTPUT);" ?
Grazie per l'aiuto...e ancora una cosa sai dove posso trovare lo schema dell'atmega328 corrispondenti alle uscite perché sto realizzando la basetta per finire il progetto ma non so come collegare l'atmega328, è uno spreco chiudere arduino in una scatola nel muro!
si i pin analogici funziona come i digitali basta che metti A0, o A1, o A2, l'ho scoperto anche io poco tempo fa XD altrimenti crei un semplice flip flop con 2 transistor
Evvai, finalmente sono riuscito a rendermi utile....
Nel setup se usi il pin A0 dovrai mettere pinMode(14,OUTPUT);
mentre per il pin A5 scriverai pinMode(19,OUTPUT);
Per quanto riguarda la piedinatura dell'Atmega328 ti inserisco un'immagine:
Se hai dei problemi a fare il circuito cerca "arduino standalone" e troverai 1000 pagine web come fare, se poi qualcosa non ti è chiara scrivi pure i tuoi dubbi.
Edit: non ti preoccupare, nell'immagine c'è scritto atmega168 ma vai tranquillo, i pin sono gli stessi del 328.
Grazie siete fantastici! Per quanto riguarda l'integrato not è uno spreco prendere un integrato per utilizzare due pin soltanto! Comunque grazie adotterò la soluzione di utilizzare i pin analogici di ingresso come uscite digitali. Grazie a tutti!!! XD
Quindi realizzando il circuito con il bromografo mi basterà programmare l'atmega 328 con arduino e poi toglierlo e immetterlo nel circuito da me creato, giusto? Ho questa perplessità perché avevo sentito parlare di bios ed altro...aspetto vostre delucidazioni!
Come vedo dallo schema che hai postato tutte le uscite digitali ed analogiche sono direttamente collegate al microcontrollore, quindi basta solo quello da inserire nel mio circuito? Potresti postare se c'è l'hai qualche guida in lingua italiana....
Grazie per l'aiuto!
quasi, quando il pin è dichiarato come uscita digitale e viene messo allo stato LOW si comporta come sink cioè presumo* che l'uscita viene collegata a massa tramite un transistor interno. Quindi la tensione non sarà proprio 0V ma comunque può essere concettualmente considerata come massa.
*: presumo l'ho detto perchè idealmente penso che la soluzione sia circa così, poi nella pratica non so di preciso se avviene così semplicemente!!
Pelletta:
Vai tranquillo, carichi lo sketch su arduino, stacchi l'Atmega e lo metti sul tuo pcb
Non dimenticare il quarzo e i due condensatori da 22pF verso massa, oltre alla R da 10K tra il pin reset e 5V
Naturalmente questa soluzione NON prevede la possibilità che i led siano entrambi spenti, ma a quanto pare non aveva considerato i pin analogici e quindi ha 6 porte libere, può tranquillamente pilotarli separatamente.
menniti:
Naturalmente questa soluzione NON prevede la possibilità che i led siano entrambi spenti, ...
Ti ho colto in fragranti che dici una cosa non del tutto giuste.
Per Tua discolpa ci ho messo anch io un po a pensarci.
Hai ragione che con uscita L si accende un led e con l'uscita H si accende l' altro, ma cosa succede se definisci il Pin come entrata?
Comunque penso che antonio_cov non considerava che le entrate analogiche potessero essere usate come entrate/uscite digitale e percui che potesse avere 6 Pin digitali in piú.
uwefed:
Hai ragione che con uscita L si accende un led e con l'uscita H si accende l' altro, ma cosa succede se definisci il Pin come entrata?
Succede che si accendono tutti e due i led emettendo meno luce del previsto
Il motivo è semplice, un pin settato come ingresso ha una elevatissima impedenza, il circuito equivalente del tutto diventa composto da due led in serie con le relative resistenze e una resistenza da molti mhom collegata al centro del circuito che chiude a gnd.
Il risultato finale è che la corrente scorre attraverso i due led con un valore nettamente minore rispetto a quella prevista per un singolo led a meno che la tensione minima per l'accensione dei led non sia maggiore di 2.5V, ma questo vale solo per i led blu, led bianchi e i led di potenza, con i colori normali la c.d.p. è sempre minore di 2V.
Esempio pratico, ipotizziamo di usare un led verde e uno rosso con c.d.p. di 2V (ed è un valore esagerato) e volerli farli accendere con 5mA.
(5V-2V)/5mA = 600 ohm, arrotodiamo a 560 ohm che è il valore più prossimo disponibile.
Con i due led in serie la caduta complessiva diventa 4V mentre la resistenza complessiva 1120 ohm, la corrente che scorre è (5V-4V)/1020 = 0.98 mA, poco ma quanto basta per far accendere in modo fioco i due led.
Un modo alternativo per controllare due led con un solo pin è utilizzarne uno PWM, a seconda del duty cycle i due led possono essere uno totalmente acceso e uno totalmente spento oppure uno qualunque degli stati intermedi, quindi è possibile anche averli tutti e due accesi con la possibilità di ottenere un simpatico effetto fading per commutare il led acceso e quello spento.
Salve gente! Vorrei utilizzare una sola uscita digitale per pilotare due led. Ma i led non devono mai essere accesi contemporaneamente cioè se è acceso uno l'altro deve essere spento
Certo non dice che deve esserci la possibilità di averli tutti e due spenti contemporaneamente, però la richiesta mi sembra piuttosto chiara e mi sono attenuto a quella!!!
Hai ragione che con uscita L si accende un led e con l'uscita H si accende l' altro, ma cosa succede se definisci il Pin come entrata?
condivido quello che dice astrobeed, dichiarando il pin come input o comunque mettendolo in una condizione di tri-state l'effetto che si ottiene non è quello di spegnerli entrambi...la sua spiegazione ha illuminato anche me
menniti:
Naturalmente questa soluzione NON prevede la possibilità che i led siano entrambi spenti, ...
Ti ho colto in fragranti che dici una cosa non del tutto giuste.
Per Tua discolpa ci ho messo anch io un po a pensarci.
Hai ragione che con uscita L si accende un led e con l'uscita H si accende l' altro, ma cosa succede se definisci il Pin come entrata?
Comunque penso che antonio_cov non considerava che le entrate analogiche potessero essere usate come entrate/uscite digitale e percui che potesse avere 6 Pin digitali in piú.
Ciao Uwe
Ciao Uwe, secondo la chiara spiegazione di astrobeed, allora avevo ragione io, una volta tanto