• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
led striscia rgb

Striscia led rgb
#1
Star 
Vi chiedo aiuto per collegare una striscia led al gpio del pi4, credo sia da 5v avendola comprata fornita di usb e avendola sempre collegata ad alimentatori 5v e porte usb di vari PC e televisori. Dovrebbe essere una 5050, nel caso non sia comune a tutte le strisce vi dico che ha 4 "pin" indicati con +, G, R, B. Da qui potete inoltrr dedurre il livello delle mie competenze nel campo dell'elettronica ed eventualmente dirmi se lasciar perdere o meno.
Risposta
#2
Ciao,
Striscie a LED le possiamo dividere in due tipologie: indirizzabili oppure no.
Quelle indirizzabili hanno un chip di controllo che consente di accendere in modo differente ogni singolo LED. Mentre quelle "normali" accendono allo stesso modo tutti i LED che le compongono, che sono tutti collegati assieme.
Naturalmente, è molto più intereessante collegare al Raspberry quelle indirizzabili (tipo Neopixel), perchè si possono ottenere effetti interessanti, come animazioni di luce o "giochi" a tempo di musica ecc.. E' una cosa che ho sempre voluto fare, e che per mancanza di tempo, non ho mai sperimentato.
Non si può alimentare direttamente una lunga striscia a LED da Raspberry Pi, non riesce a erogare corrente a sufficienza, occorre usare un alimentatore esterno.
Ti rimando a questo tutorial (in inglese), oppure in italiano se ne parla anche su questo numero di The MagPi
Risposta
#3
(09/04/2020, 00:19)Zzed Ha scritto: Ciao,
Striscie a LED le possiamo dividere in due tipologie: indirizzabili oppure no.
Quelle indirizzabili hanno un chip di controllo che consente di accendere in modo differente ogni singolo LED. Mentre quelle "normali" accendono allo stesso modo tutti i LED che le compongono, che sono tutti collegati assieme.
Naturalmente, è molto più intereessante collegare al Raspberry quelle indirizzabili (tipo Neopixel), perchè si possono ottenere effetti interessanti, come animazioni di luce o "giochi" a tempo di musica ecc.. E' una cosa che ho sempre voluto fare, e che per mancanza di tempo, non ho mai sperimentato.
Non si può alimentare direttamente una lunga striscia a LED da Raspberry Pi, non riesce a erogare corrente a sufficienza, occorre usare un alimentatore esterno.
Ti rimando a questo tutorial (in inglese), oppure in italiano se ne parla anche su questo numero di The MagPi
Le ho trovate entrembe interessanti, sinceramente non avevo considerato il fatto di poter controllare ogni led separatamente, credo che più in là proverò a fare qualcosa del genere, per ora ho solo la curiosità di "provare" il gpio e mi accontenterei anche di una striscia non indirizzabile. Sul tutorial inglese ho letto che i 5v del raspberry sono in grado di alimentare strisce LED di lunghezza minore di un metro (il mio caso), se non potrebbe comportare danni ai componenti eviterei di maneggiare alimentatori (sarei disposto anche a tagliare la striscia e utilizzare 3 LED).
Risposta
#4
Tieni presente nel fare le prove che ciascun pin GPIO può erogare max 15-16 mA a 3,3V per un totale complessivo per tutti i GPIO di 50-60 mA. Nel caso utilizza dei driver, tipo transistor o IC.
Risposta
#5
(09/04/2020, 08:02)ippogrifo Ha scritto: Tieni presente nel fare le prove che ciascun pin GPIO può erogare max 15-16 mA a 3,3V per un totale complessivo per tutti i GPIO di 50-60 mA. Nel caso utilizza dei driver, tipo transistor o IC.

Se decidessi di usare un alimentatore esterno come dovrei collegare il + e i tre restanti pin della striscia?
Risposta
#6
Volendo utilizzare un alimentatore esterno a 5V e X Ampere per alimentare la striscia led devi semplicemente mettere in comune i negativi dell'alimentatore esterno con quello del raspberry. Il positivo alimenterà la striscia led (nessun contatto con il raspberry) e gli alti due pin collegati, come da schema, alla striscia. Unica attenzione, il raspberry lavora con i GPIO ad una tensione IN/OUT di 3,3V. Una tensione in Input maggiore di 3,3V danneggia l'input (nel migliore dei casi).
Risposta
#7
Photo 
Se a qualcuno interessa fare dei giochi di luce personalizzati, vi volevo dare un piccolo spunto.
Lavorando a livello di singoli bit, possiamo pensare di mappare le 28 uscite dei led, tramite un corrispondente bit di posizione, quindi ad esempio al numero binario ….1011 significa che vogliamo accendere (partendo dal bit più a destra meno significativo) il GPIO 0, il GPIO 1 e il 3, ma lasciare spento il secondo.

Così passando un numero ad un programma (io l'ho fatto in C) passiamo numeri (interi lunghi) che vanno da zero (tutti i led spenti) a  268435455 tutti i led accesi, ovvero numero formato da una sequenza di tutti uni (28 uni per la precisione).

Ma come ricavare questo numero rapidamente?

Ad esempio con un foglio excel (allegato), che quando poniamo ad uno la casella diventa rossa:

Immagine Excel

Per leggere questa sequenza, basta fare l'operazione inversa lavorando sui bit.
Ad esempio in C si può fare:

    for (int i=0; i<=27; i++)
   {
    e = pow (2 ,i);
    acceso = ((e & sq[j]) > 0); //Setta il bit a 1 o zero
    digitalWrite(p[i],acceso);
   }


dove sq[] è il vettore che contiene la sequenza di numeri.

Se vi serve il codice completo lo pubblico.


Allegati
.xlsx   SequenzaBit.xlsx (Dimensione: 22.4 KB / Download: 5)
Risposta
#8
Molto interessante il connubio Excel Microsoft-GPIO. Vedo nel file excel di esempio che il numero max di GPIO a livello logico uno è di due: è questo dovuto al non raggiungimento della max corrente erogabile/assorbita contemporaneamente dai pin del GPIO?
Personalmente credo che se tu publicassi il codice sarebbe veramente molto interessante (da C a Python il passo è breve) e potrebbe dare moltissimi spunti.
Essendo codice In C dovresti però commentarlo adeguatamente affinchè i concetti logici, piuttosto che la sintassi, sia chiara.
Risposta
#9
(17/05/2020, 13:33)ippogrifo Ha scritto: Molto interessante il connubio Excel Microsoft-GPIO. Vedo nel file excel di esempio che il numero max di GPIO a livello logico uno  è di due: è questo dovuto al non raggiungimento della max corrente erogabile/assorbita contemporaneamente dai pin del GPIO?
...

Dunque in realtà posso accendere anche tutti i led contemporaneamente, basta settare ad uno tutti i valori dei singoli bit.
Se ti scarichi il foglio Excel che ho allegato troverai che in alcuni punti ho imposto tutti i 28 led accesi contemporaneamente, e considerando che ho usato una resistenza da 270 ohm, la corrente massima erogabile dal raspberry PI 3 è ben al di sotto dei 500mA max totali (consigliati di non superare).

Volendo qui un banale esempio:


Ho anche lasciato tutti i led accesi più di un'ora (mi ero dimenticato di spegnere il Raspberry Big Grin ) e ovviamente nessun problema, chiaramente ho un alimentatore decente che eroga due ampere.

Quindi in sostanza col foglio Excel mi sono calcolato tutti i numeri da mettere nel programma che poi a rotazione ho letto tramite un banale ciclo for doppio (uno che si spazzolava i 28 pin e quello più esterno che si spazzolava i numeri provenienti da Excel.

Se pensi che ti possa interessare continuo, altrimenti non vorrei rompere le balle  Big Grin
Risposta
#10
Sicuramente mi interessa (e credo a molti) il connubio Excel-GPIO in C proprio perchè non è "usuale" tale accostamento e potrebbe avere altri utilizzi. Tieni presente che una parte della sintassi Python è un "derivato", o comunque ha che fare con il C, anche se espressa in altra forma (identazione, def funzioni, variabili locali/globali, ecc). Poi vi è un proprio sviluppo.
Per quanto riguarda la corrente gestibile da ciascun GPIO (15-16 mA) e per il totale di questi che possano erogare/assorbire corrente in stato continuativo è di 50-60 mA (come ancora riportato dalle specifiche tecniche dei devices). Andare oltre, come hai riportato , è al di fuori di quanto specificato dal costruttore a prescindere da utilizzare un alimentatore in grado di erogare più di 500 mA.
L'utilizzo di drivers controllati dai pin del GPIO per l'ON/OFF dei Led è, a mio avviso, la soluzione migliore per evitare il danneggiamento del RPi e gestire grosse correnti.
Risposta
  


Vai al forum:


Navigazione: 4 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect