Pilotare striscia led RGB.

Ciao a tutti,
Il mio progetto, è di pilotare una striscia RGB a 12V (comprate dai cinesi)con arduino,quello che non sono n grado di fare(per ora); è la scelta dei transistor.
Grazie.

molte strip non necessitano di alcun transistor....
serve comunque marca modello e cilindrata dei tuoi led :smiley:

Il minimo, Mosfet Logic Level IRL540

ops 12V :slight_smile:

Grazie 1000, quindi, il G del mosfet, si connette alla porta PWM dell arduino (controllo) e il D alla striscia RGB, per quanto riguarda la marca é FoYo 5050, non penso che si possa fare senza transistor, la striscia è lunga 5 metri (un centinaio di led) non penso che arduino riesca alimentarli senza danneggiarsi.

Tranquillo. Arduino non "alimenta" niente. Si limita a pilotare il G dei mosfet con un assorbimento trascurabile. Il problema sarà l'alimentazione a 12V della striscia. hai calcolato quanta corrente ti servirà?

Ciao,
P.

Luke677099:
Grazie 1000, quindi, il G del mosfet, si connette alla porta PWM dell arduino (controllo) e il D alla striscia RGB, ...

C'è anche un bello schema disegnato da pighixxx che è, praticamente, come quello di Brunello ... in allegato, lo vedi in alto a destra.

Guglielmo

scheda_5.pdf (429 KB)

Grazie a tutti,
il mio progetto sta avanzando, la parte hardware è fatta, ora tocca la parte software, per ora lo sketch lo sto facendo tramite tinkcad, e non su un arduino vero perchè non voglio rovinarlo, ma è normale che se premo un pulsante l'entrata da 0 va a 1 e se lo rilascio rimane a 1?è cosi anche nella realta o è un problema di simulazione?

Luke677099:
... ma è normale che se premo un pulsante l'entrata da 0 va a 1 e se lo rilascio rimane a 1?è cosi anche nella realta o è un problema di simulazione?

Come è collegato il pulsante? Hai messo la resistenza di pull-up/pull-down (a secondo di come è collegato il pulsante)?

Guglielmo

gpb01:
Come è collegato il pulsante? Hai messo la resistenza di pull-up/pull-down (a secondo di come è collegato il pulsante)?

Guglielmo

Si la resistenza di pull_down lo messa,

... allora c'è qualche cosa che non va.

Se ho ben capito, con il pulsante NON premuto, tu vuoi leggere LOW (la pull-down), mentre con il pulsante premuto vuoi leggere HIGH, giusto ?

Se è così, metti uno schema perché, come detto, c'è qualche cosa che non va ...

Guglielmo

Su tinkercad il tempo simulazione può avanzare diversamente dalla realtà, per cui PWM/fading vari sono difficili da realizzare. Per vedere avanzare i secondi correttamente basta aggiungere nella loop un delay(20), che però nella realtà potrebbe falsare i tempi di esecuzione voluti.

In sostanza le simulazioni hanno sempre grossi limiti, primo tra tutti quello di funzionare in universo ideale dove i disturbi non esistono.

gpb01:
... allora c'è qualche cosa che non va.

Se ho ben capito, con il pulsante NON premuto, tu vuoi leggere LOW (la pull-down), mentre con il pulsante premuto vuoi leggere HIGH, giusto ?

Se è così, metti uno schema perché, come detto, c'è qualche cosa che non va ...

Guglielmo

gpb01:
... allora c'è qualche cosa che non va.

Se ho ben capito, con il pulsante NON premuto, tu vuoi leggere LOW (la pull-down), mentre con il pulsante premuto vuoi leggere HIGH, giusto ?

Se è così, metti uno schema perché, come detto, c'è qualche cosa che non va ...

Guglielmo

lo schema è semplice(non riesco ad allegarlo) 1 pulsante collegato al pi n 2 e in parallelo all "uscita"ho messo un resistore da 1k che va a massa(pull_down) tramite il monitor seriale vado a leggere il valore del pin 2 allego il codice, non è niente è solo un esercizio che sto facendo con lo scopo di capire come si creano le funzioni e leggere lo stato delle uscite/entratevoid

 setup()
{
 pinMode(12, OUTPUT);
 pinMode(13, OUTPUT);
 pinMode(2,INPUT);

 Serial.begin(9600);
 digitalWrite(12,0);
 digitalWrite(13,0);
}





void loop(){
 
 
bool pulsante=digitalRead(2);
Serial.println(pulsante);

 
//----------------------- 
 if (pulsante==1){onoff(1,0);}
 if (pulsante==0){
      onoff(0,0);   
      onoff(0,1);}
 
 

//-----------------end if
 
 
  
 
 

 }

void onoff (bool accesa12,bool accesa13){
 digitalWrite(12,accesa12);
 digitalWrite(13,accesa13);
}

>Luke677099: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo