PWM

Pilotare LED RGB

Come usare Arduino per pilotare strip led RGB

La tecnologia led si è ormai evoluta ed inizia ad essere presente in modo pronunciato in molti ambienti, dalla casa agli uffici fino ad arrivare all’illuminazione pubblica. I vantaggi in termini di risparmio energetico sono enormi e la qualità della luce emessa sta raggiungendo un comfort visivo soddisfacente.

Anche nell’arredamento troviamo soluzioni carine che vanno dalla lampada da salotto multicolore alle luci di cortesia nei piani cottura oppure alle barre led impermeabili poste nel box doccia.

Vista la nostra passione per l’auto-costruzione possiamo realizzare un dispositivo basato su Arduino per pilotare una barra led RGB. Per questo tutorial ho usato una Arduino Leonardo e uno spezzone di 10 cm di una strip led RGB da un metro. Questo modello viene alimentato a 12Vdc e un modulo assorbe, con tutti i led accesi circa 55mA. (quindi un metro assorbe circa 550mA).

Un elemento RGB è composto da 3 LED distinti (Rosso, Verde, Blu) disposti in modo da poter interagire tra loro per formare diversi colori complementari.

Stril Led RGB da 10 cm

Continua a leggere

Servo SG-5010 come controllarlo con Netduino tramite segnale PWM

Utilizzare la classe PWM per controllare un servo 0-180 gradi

Il servo meccanismo è un dispositivo capace di eseguire dei movimenti meccanici in funzione del segnale applicato al suo ingresso. Viene utilizzato spesso per eseguire lavori continui, ovvero per controllare meccanismi che non possono essere azionati continuamente da personale umano.  In campo hobbystico viene impegnato per azionamenti a distanza tipici del radio modellismo.

Servo meccanismo TowerPro sg-5010

Continua a leggere

PWM gestione col Netduino

Come generare un segnale PWM

I pin digitali del Netduino, come sapiamo, possono svolgere anche delle funzioni aggiuntive, in particolare i pin 5, 6, 10 ed 11 sono in grado di generare un segnale pwm (Pulse Width Modulation). Utilizzando questa funzione possiamo generare un segnale con una frequenza minima di 15Hz ed una massima di 500KHz, con un Duty Cycle variabile da 0 a 100%. Per poter generarlo dobbiamo creare un’istanza di oggetto dalla classe PWM

PWM pwm = new PWM(pin del Netduino);

Il costruttore della classe richiede come parametro il pin del Netduino che vogliamo utilizzare per generare il pwm.
Le funzioni disponibili sono due:

 

SetPulse accetta due argomenti, il primo indica il valore della frequenza da generare ed il secondo il valore del duty cycle. Il valori validi da inserire nel parametro della frequenza vanno da 2 a 65535 mentre quelli validi da inserire nel parametro duty cycle vanno da 1 a 65534 ma dipendono dal parametro frequenza.
Il valore 2 corrisponde a una frequenza di 500Khz mentre il valore 65535 corrisponde a un frequenza di 15hz.
Il secondo parametro che definisce il duty cycle dipende strettamente dal valore numerico inserito nel parametro della frequenza. Chiarisco subito con un esempio, se voglio generare un segnale a 100Hz con duty cycle del 30% devo procedere in questo modo: Continua a leggere

Capire il duty cycle

La guida definitiva al Duty Cycle

Uno dei primi esperimenti che feci quando iniziai a studiare elettronica, fu pilotare un piccolo motorino dc. Presto capii che abbassando la tensione di alimentazione, per far diminuire la velocità del motore, portava anche a una perdita di potenza del motore stesso, dovuta ad un conseguente calo di corrente.
Dopo vari studi imparai che, per tenere il motore sempre con una certa forza a diverse velocità, non bisognava abbassare il valore di tensione, ma pilotare il motore con un segnale ad onda quadra e variare il duty cycle dello stesso.
Il duty cycle è il rapporto che c’è tra il segnale positivo e il periodo totale del segnale ad onda quadra ed è espresso in percentuale. Un duty cycle del 100% equivale ad un segnale Alto continuo, uno del 0% equivale ad un segnale Basso continuo mentre un duty cycle del 50% significa che il segnale Alto dura quanto quello Basso.

Onda quadra e duty cycle

per calcolarlo basta eseguire questa semplice formula


dove Livello Alto è il valore di tempo della durata del segnale positivo mentre Periodo è il tempo relativo al periodo del segnale ad onda quadra.
Possiamo fare un semplice esempio:

Supponendo che il livello alto duri 10ms e il periodo del segnale ad onda quadra sia di 20ms, potremmo calcolare che il duty cycle sia del 50%, infatti 10ms / 20ms = 0.5 che moltiplicato per 100 da 50(%).

Nel caso in cui invece il tempo del livello alto sia di 2ms e il periodo del segnale di 20ms otterremo un duty cycle del 10%

Duty Cycle 10%

Mentre se il tempo del livello alto è di 18ms e il periodo del segnale di 20ms otterremo un duty cycle del 90%.

Duty Cycle 90%

Questa caratteristica è stata implementata sia nel Netduino che nell’Arduino e la capacità di variare il duty cycle viene comunemente detta PWM (Pulse Width Modulation). Per generare un segnale ad onda quadra con duty cycle variabile bisogna configurare alcuni pin dedicati del Netduino/Arduino ed usare delle semplici funzioni.

Rimani aggiornato

La mia lista dei prodotti
Compra su Amazon Italia

Compra su Amazon Italia
Sondaggi

Arduino.cc vs Arduino.org

Visualizza risultati

Loading ... Loading ...
Seguimi su Twitter