scusate la mia ignoranza,è la prima volta che uso arduino e ho bisogno di due dritte .
Il mio obiettivo è quello di creare un cubo led ,ho fatto un 2 x 2 x 2 ,utilizzando 6 pin digitali + il gnd.
vedo pero in giro sulla rete video di persone che riescono a fare 3x3x3 che richiederebbe 12 pin digitali o addirittura 4x4x4 ,che richiederebbe 20 digital pin.
Quello chevorrei sapere è quindi se è possibile attraverso dei codici utilizzare piu porte possibili come pin digitale.
dimenticavo di dire che ho la scheda base,quella del kit arduino base.
Ciao e benvenuto.
E' d'uso presentarsi prima di fare una richiesta
Ti invito alla lettura del regolamento, dove troverai info utili su come usare questo forum e gli strumenti che mette a disposizione.
Tornando al tuo problema, la risposta si chiama "multiplexing" e ti invito a guardarti il codice e lo schema dei progetti dei cubi nnn dove noterai come i vari led siano accesi per singoli piani, ossia il problema si riduce nel pilotaggio di n*n led per n volte (i piani appunto).
leo72:
Ciao e benvenuto.
E' d'uso presentarsi prima di fare una richiesta
Ti invito alla lettura del regolamento, dove troverai info utili su come usare questo forum e gli strumenti che mette a disposizione.Tornando al tuo problema, la risposta si chiama "multiplexing" e ti invito a guardarti il codice e lo schema dei progetti dei cubi nnn dove noterai come i vari led siano accesi per singoli piani, ossia il problema si riduce nel pilotaggio di n*n led per n volte (i piani appunto).
ieri notte non avevo visto la presentazione,comunque,il sistema di multiplex gia ce l'ho in mente,il mio dubbio è quanti pin della scheda posso usare come digitale.
Tutti i pin della scheda possono essere trattati come pin digitali, anche quelli indicati come "analog". Sia con la numerazione analogica A0..A5 sia con la numerazione corrispondente 14..19:
leo72:
Tutti i pin della scheda possono essere trattati come pin digitali, anche quelli indicati come "analog". Sia con la numerazione analogica A0..A5 sia con la numerazione corrispondente 14..19:
http://arduino.cc/en/Tutorial/AnalogInputPins
scusa per tutti intendi anche quelli di POWER e i ground?
ruggieropietro:
leo72:
Tutti i pin della scheda possono essere trattati come pin digitali, anche quelli indicati come "analog". Sia con la numerazione analogica A0..A5 sia con la numerazione corrispondente 14..19:
http://arduino.cc/en/Tutorial/AnalogInputPinsscusa per tutti intendi anche quelli di POWER e i ground?
Ma quelli non puoi comutare...
Ciao Uwe
uwefed:
ruggieropietro:
leo72:
Tutti i pin della scheda possono essere trattati come pin digitali, anche quelli indicati come "analog". Sia con la numerazione analogica A0..A5 sia con la numerazione corrispondente 14..19:
http://arduino.cc/en/Tutorial/AnalogInputPinsscusa per tutti intendi anche quelli di POWER e i ground?
Ma quelli non puoi comutare...
Ciao Uwe
quindi il numero massimo di pin usabili come digitali è 20.
d'accordo grazie.
Attenzione alla corrente massima in uscita sopportata da ciascun pin, da un gruppo di pin e da tutti i pin.
Se per errore accendi tutti i led.... puff!!
personalmente ho gestito 48 led rgb cioè 48x3 led monocolore utilizzando nove TLC4950 (16 canali cadauno).
esiste una libreria in merito, che consente la gestione dei led facilmente.
bisogna semplicemente (si fa per dire) alimentare in maniera corretta il tutto.
Salve ho utilizzato la libreria del TLC per alimentare i led è funziona alla grande.
Però mi si presenta un problema legato all'alimentazione del TLC, Arduino e LED RGB o servomotori.
I led rgb o i servo motori li alimento a parte, con arduino condivide il GND.
All'arduino ho collegato 4 TLC.
Arduino collegato alla USB
Se controllo un solo TLC alimentato mediante l'uscita 5V di arduino tutto funziona correttamente e costantemente.
Il problema nasce quando devo utilizzare 4 TLC.
Primo tentativo TLC alimentati separatamente rispetto ad arduino con il quale condivide il GND. Pensavo che funzionasse, invece quando ho rieseguito il test, i TLC si sono surriscandati e bruciati.
Non capisco, cosa succede.
Quindi, posso alimentare i 4 TLC con l'uscita di arduino ?
A livello "hardware", il TLC5940 e' particolarmente "rognoso" ... se si lasciano pin non connessi bene o se si sbaglia la resistenza di limitazione della corrente, la potenza dissipata puo salire al punto da strinarli facilmente, specie perche' in un package relativamente piccolo, di limitatori ce ne sono 16 ... considera anche la possibilita' di alimentare i led con la minor tensione possibile (compatibilmente con il loro corretto funzionamento) per limitare la potenza dissipata dai regolatori di corrente ...
Ho notato che è rognoso. infatti mi sta dando problemi.
Ma posso alimentarne 4 direttamente da arduino ?
Anche se si accendono tutti e 64 i led la corrente che deve fornire arduino non cambia ?
Al contrario, piu led accendi, piu il circuito assorbe (ovviamente) ... quindi il positivo dell'alimentazione di potenza (i led) dovrebbe essere a parte, da un'altro alimentatore, per non friggere pure il regolatore interno di Arduino ...
il positivo dei led viene da un alimentatore a parte, che condivide con arduino la massa.
la mia domanda arduino regge 4 tlc.
In teoria dovrebbe poterne pilotare anche di piu ... anch'io sto studiandomi un circuito con quel chip, e la libreria (che e' da modificare dicendogli quanti TLC hai collegati in serie) ti fa indirizzare le uscite in sequenza, cosi ad esempio il primo TLC ha le uscite da 0 a 15, il secondo da 16 a 31, il terzo da 32 a 47, e cosi via ...
La parte logica dei TLC la alimenti da arduino (i 5V che vanno a VCC ed i vari pullup/segnali), mentre la parte di potenza (il positivo che va ai led) lo prendi a parte da un'altro alimentatore (con la massa in comune), e puo essere anche piu basso, in modo da far dissipare ai TLC la minor potenza possibile (le uscite sono equivalenti ad open-collector, quindi potresti alimentarli anche a 3V o simile, basta che l'alimentatore riesca a dare abbastanza corrente per tutti i led che saranno accesi)
ok. ora è chiaro.
Per modificare il numero di TLC devi accedere al TLConfig e modificare il valore. chiudere arduino e riaprirlo affinche prenda le modfiche.
Ho tentato di passarlo come parametro quando inizializzi la libreria. senza esito positivo.
Al momento accedo al file di configurazione.
Quando ho più tempo ci riprovo.
hai provato ha comandare dei servo con la stessa libreria e TLC ?
gcam:
Ho tentato di passarlo come parametro quando inizializzi la libreria. senza esito positivo.
Se la strada è quella di creare una #define prima dell'#include della lib, non ci riuscirai perché quella #define sarà vista solo nell'header che includi ma non nel file .cpp relativo. Te lo dico con certezza perché ci ho già sbattuto la testa io in passato quando ho voluto rendere customizzabile la mia lib swRTC affinché accettasse parametri direttamente dallo sketch in modo da non far mettere le mani dentro ai sorgenti all'utente.
L'unica strada percorribile è quella di inserire tutto il codice della lib nel file .h. Però devi fare un bel lavoro di modifica al codice, non so se alla fine il gioco vale la candela, se è una modifica fatta solo per te.