Pages: [1] 2 3 4   Go Down
Author Topic: Programmazione cubo led  (Read 5294 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Sr. Member
****
Karma: 0
Posts: 294
L'uomo non smette di giocare perché invecchia, ma invecchia perché smette di giocare. (George Bernard Shaw)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti, rieccomi con un nuovo quesito per voi!!!

Ho comprato arduino un po' di tempo fa con l'intento di realizzare il famoso cubo di led... dopo tanto tempo l'ho fatto... Bellissimo... ma vorrei tanto capirci qualcosa nella programmazione... smiley-sad ...ovviamente ho copiato tutto il progetto (codice compreso) da un sito... Da quello che ho potuto capire leggendo le righe del programma è tutta una scelta casuale che mi accende i led... Solo che vorrei provare a farmi una sequenza di accensione tutta mia... Scrivere righe di codice non fa per me... non ci capisco nulla di C...

Non so se conoscete Minibloq... E' un software che consente di programmare a blocchi... io mi trovo molto bene... ma per il cubo non so proprio come fare...
se io del livello 1 voglio accendere solo il led centrale... come faccio??? A quali pin devo assegnare il valore HIGH?? Dopo tutta la "fatica" fatta per costruire il cubo vorrei poterlo personalizzare smiley

Come sempre, so che riuscirete a darmi una risposta soddisfacente, quindi anche stavolta ci spero!! Grazie a tutti voi che sopportate le domande di tutti i principianti!! smiley-wink


* cubo.png (338.17 KB, 600x647 - viewed 43 times.)
« Last Edit: March 22, 2012, 07:55:24 am by maggio93 » Logged


Rovereto
Offline Offline
Full Member
***
Karma: 0
Posts: 152
La luce e' piu' veloce del suono. Per questo motivo alcune persone sembrano brillanti fino a quando non parlano.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se vuoi accendere quel LED devi mettere HIGH solo  i pin 10 e 5.
Se invece vuoi accendere il 1° LED in alto a destra devi mettere HIGH solo i pin 1 e 12.
In pratica ogni livello comanda 9 LED per "piano" tramite i pin da 10 a 12, ed i 9 LED del piano sono singolarmente comandati dai pin da 1 (occhio che c'è il TX della seriale) a 9 così puoi accendere quanti LED vuoi per ogni piano.

Ciao
QP
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si vede chiaramente dal progetto, come ti ha detto anche QuercusPetraea, hai il seguente schema:
Livello 1 (pin 10): da pin 9 a pin 1 regoli ogni singolo led
Livello 2 (pin 11): da pin 9 a pin 1 regoli ogni singolo led
Livello 3 (pin 12): da pin 9 a pin 1 regoli ogni singolo led

Ciao,
Biagio.

Logged

Basel, CH
Online Online
Jr. Member
**
Karma: 0
Posts: 84
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@maggio93 sono interessato anche io a questo progetto, non è sapresti indicarmi i link da dove hai preso tutto il materiale per realizzarlo ?? grazie smiley-grin
Logged

Padova
Offline Offline
Jr. Member
**
Karma: 4
Posts: 87
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusate se mi intrometto...
Così com'è indicato nello schema postato da @maggio93 i transistor in questo caso vengono usati come semplici interruttori giusto?
Cioè servono solo per aprire\chiudere il collegamento col gnd? Quindi la corrente per alimentare i led viene direttamente dai pin dell'arduino?
Ma così non si rischia di rovinare la scheda se vengono accesi tutti insieme?

Scusate la miriade di domande ma sono curioso di capire, non ho mai usato i transistor fin'ora  smiley-razz
« Last Edit: March 21, 2012, 06:02:10 pm by dancol90 » Logged

Rovereto
Offline Offline
Full Member
***
Karma: 0
Posts: 152
La luce e' piu' veloce del suono. Per questo motivo alcune persone sembrano brillanti fino a quando non parlano.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

...
Così com'è indicato nello schema postato da @maggio93 i transistor in questo caso vengono usati come semplici interruttori giusto?
Cioè servono solo per aprire\chiudere il collegamento col gnd? Quindi la corrente per alimentare i led viene direttamente dai pin dell'arduino?

Ma così non si rischia di rovinare la scheda se vengono accesi tutti insieme?
...

Si. Viste le correnti in gioco il rischio è reale. Una soluzione è pilotare i catodi con un ULN2803 o 2804, ma ne servono 2 perchè ogni chip ha 8 I/O.

Ciao
QP
Logged

Milano, Italy
Offline Offline
Faraday Member
**
Karma: 10
Posts: 3085
Sideralis Arduino!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

AH ricordo, quello che TUTTI ti avevano sconsigliato di seguire come progetto iniziale! Hai voluto la bici? ORA...

Dopo tutto questo tempo sul forum pero' potevi imparare a scrivere il titolo del topic, no?
Dai!

F
Logged

Federico - Sideralis
Arduino &C: http://www.sideralis.org
Foto: http://blackman.amicofigo.com

Offline Offline
Sr. Member
****
Karma: 0
Posts: 381
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Urca ma per curiosità ho dato un occhio a minibloq e mi pare più complesso che imparare a scrivere il codice... Sei sicuro della strada che stai prendendo?

ps. se butti, dimmi dove  smiley-grin
Logged

Mestre(VE)
Offline Offline
Jr. Member
**
Karma: 0
Posts: 91
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusate se mi intrometto...
Così com'è indicato nello schema postato da @maggio93 i transistor in questo caso vengono usati come semplici interruttori giusto?
Cioè servono solo per aprire\chiudere il collegamento col gnd? Quindi la corrente per alimentare i led viene direttamente dai pin dell'arduino?
Ma così non si rischia di rovinare la scheda se vengono accesi tutti insieme?

Scusate la miriade di domande ma sono curioso di capire, non ho mai usato i transistor fin'ora  smiley-razz

il tuo ragionamento è corretto, infatti di solito per pilotare il cubo si utilizza il multiplexing per piani.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 411
Posts: 11986
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

...
Così com'è indicato nello schema postato da @maggio93 i transistor in questo caso vengono usati come semplici interruttori giusto?
Cioè servono solo per aprire\chiudere il collegamento col gnd? Quindi la corrente per alimentare i led viene direttamente dai pin dell'arduino?

Ma così non si rischia di rovinare la scheda se vengono accesi tutti insieme?
...

Si. Viste le correnti in gioco il rischio è reale. Una soluzione è pilotare i catodi con un ULN2803 o 2804, ma ne servono 2 perchè ogni chip ha 8 I/O.

Ciao
QP
Mi permetto di aggiungere un semplice calcolo: una R da 270ohm (questo è il valore che mostra fritzing) limita la corrente a circa 18-19mA, corrente che sarà utilizzata per alimentare un solo LED; se il firmware prevede un piano per volta, come mi auguro, il micro erogherà circa 160-170mA, valore molto prossimo al suo limite; se malauguratamente si dovesssero accendere due o, peggio, tre livelli, il micro salta di sicuro; chi ha progettato questa cosa, sapendo che il firmware è libero e manipolabile da gente inesperta (senza offesa, ma lo afferma lui stesso) come maggio93 o come altri che in questo Topic manifestano dei dubbi di conoscenza, sappia che è un potenziale assassino di micro, una sorta di MCU Serial Killer smiley-twist
La soluzione più economica probabilmente è quella di montare altri 9 transistor NPN (qualsiasi tipo, tanto al massimo devono sopportare 60mA), oppure un paio di ULN2004 (7 darlington), eliminando così anche i tre transistor interruttori. Naturalmente vanno benissimo i 2803/04 anche se, viste le bassissime correnti in gioco forse sono un po' sprecati.
« Last Edit: March 22, 2012, 08:20:06 am by Michele Menniti » Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Offline Offline
Sr. Member
****
Karma: 0
Posts: 294
L'uomo non smette di giocare perché invecchia, ma invecchia perché smette di giocare. (George Bernard Shaw)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vi capisco, il titolo fa schifo ma vi assicuro che non volevo creare effetti di alcun tipo... Il mio titolo voleva essere "ironico"... insomma, vi chiedo scusa e prometto di impegnarmi per le prossime volte..  per adesso, va bene questo nuovo??
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 411
Posts: 11986
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Vi capisco, il titolo fa schifo ma vi assicuro che non volevo creare effetti di alcun tipo... Il mio titolo voleva essere "ironico"... insomma, vi chiedo scusa e prometto di impegnarmi per le prossime volte..  per adesso, va bene questo nuovo??
sei un grande smiley-wink ora però leggiti le risposte che ti abbiamo dato, quello strumento è potenzialmente pericoloso per il micro di Arduino...
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Genova
Offline Offline
Faraday Member
**
Karma: 17
Posts: 2746
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bhe se non lo butta perché non ci capisce niente, lo butta perché si è sciolto, "simpre in ta munnezza finisce" lol
Logged

Meglio imparare dalle cose inutili piuttosto che non imparare niente.   [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]

Padova
Offline Offline
Jr. Member
**
Karma: 4
Posts: 87
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se si volesse tenere la parte hardware così com'è, non si potrebbe accendere al max un paio di led alla volta per pochi ms, dal primo all'ultimo nel cubo, sfruttando l'effetto POV? La corrente consumata sarebbe limitata (20ma per pin, come diceva @menniti poco sopra) e per brevi periodi...quindi si potrebbe evitare di bruciare tutto...
Ora capisco che è un approccio parecchio più complesso e magari per @maggio93 non è la cosa più semplice, ma come idea potrebbe andare? Quanti ms dovrebbe rimanere acceso ogni led per avere un effetto decente e non vedere sfarfallii?
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 411
Posts: 11986
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se si volesse tenere la parte hardware così com'è, non si potrebbe accendere al max un paio di led alla volta per pochi ms, dal primo all'ultimo nel cubo, sfruttando l'effetto POV? La corrente consumata sarebbe limitata (20ma per pin, come diceva @menniti poco sopra) e per brevi periodi...quindi si potrebbe evitare di bruciare tutto...
Ora capisco che è un approccio parecchio più complesso e magari per @maggio93 non è la cosa più semplice, ma come idea potrebbe andare? Quanti ms dovrebbe rimanere acceso ogni led per avere un effetto decente e non vedere sfarfallii?
a mio parere il problema non è quanto stanno accesi ma quanto stanno spenti, infatti il problema è "vederli accesi" quando "sono spenti", e questo dipende dalla persistenza ottica dei nostri occhi, io credo che si possano accendere contemporaneamente i 9 led, la corrente è alta ma comunque rientra nell'erogabile dell'ATmega, quindi realizzare un multiplexer sui tre transistor di livello è una cosa fattibile, penso che un delay di 10ms tra un livello e l'altro garantisca un buon effetto visivo senza che esploda tutto, ovviamente roba da guardare per qualche minuto, non certo da lasciare tutto il giorno acceso in salotto smiley-mr-green
Logged

Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Pages: [1] 2 3 4   Go Up
Jump to: