Nota: TUTTI i prodotti OSOYOO per Arduino sono schede di terze parti completamente compatibili con Arduino.

Introduzione

In questa lezione mostreremo come modificare gradualmente la luminanza di un LED attraverso la programmazione. Poiché la luce pulsante sembra respirare, le diamo un nome magico: LED che respira. Otterremo questo effetto con la modulazione di larghezza degli impulsi (PWM).

Preparazione

Hardware

Scheda base OSOYOO (completamente compatibile con Arduino UNO rev.3) x 1
Breadboard x 1
LED x 1
Resistenza da 200 ohm x 1
Ponticello M/M x 5
Cavo USB x 1
PC x 1

Software

Arduino IDE (version 1.6.4+)

Che cos’è il PWM?

La modulazione di larghezza di impulso, o PWM, è una tecnica per ottenere risultati analogici con mezzi digitali. Il controllo digitale viene utilizzato per creare un’onda quadra, un segnale commutato tra acceso e spento. Questo schema on-off può simulare tensioni comprese tra l’accensione completa (5 Volt) e lo spegnimento (0 Volt) modificando la porzione di tempo che il segnale trascorre acceso rispetto a quella che trascorre spento. La durata del “tempo di accensione” è chiamata larghezza dell’impulso. Per ottenere valori analogici variabili, si modifica, o si modula, l’ampiezza dell’impulso.
Per ottenere valori analogici variabili, si cambia, o si modula, l’ampiezza dell’impulso. Se si ripete questo schema on-off abbastanza velocemente con un LED, ad esempio, il risultato è come se il segnale fosse una tensione costante tra 0 e 5 V che controlla la luminosità del LED. (Vedere the PWM description on the official website of Arduino).

Dall’oscillogramma superiore si può notare che l’ampiezza della tensione CC in uscita è pari a 5 V. Tuttavia, la tensione effettiva in uscita è solo di 3,75 V attraverso il PWM perché il livello alto occupa solo il 75% della tensione totale in un periodo.
Ecco un’introduzione ai tre parametri di base del PWM:

  1. uty cycle describes the proportion of “on” time to the regular interval or period of time.
  2. Period describes the reciprocal of pulses in one second.
  3. The voltage amplitude here is 0V–5V.

Connessione

Sulla maggior parte delle schede di base OSOYOO ci sono 5 pin contrassegnati da ‘PWM’ accanto al numero del pin (su alcune schede è un simbolo “~”) – questi pin sono pin PWM. Qui usiamo il pin3 per controllare il LED.Collegare l’hardware come nel seguente diagramma di Fritzing:

Avviso:
Non è possibile collegare direttamente un LED a una batteria o a una fonte di tensione. In primo luogo, perché il LED ha un cavo positivo e uno negativo e non si accende se sono al contrario e, in secondo luogo, un LED deve essere utilizzato con un resistore per limitare o “soffocare” la quantità di corrente che scorre attraverso il LED – altrimenti il LED potrebbe bruciarsi!

Carica schizzo

Collegare la scheda OSOYOO Basic al computer utilizzando il cavo USB. Il LED verde di alimentazione (PWR) dovrebbe accendersi. Aprire l’IDE Arduino e selezionare il tipo di scheda e il tipo di porta corrispondenti alla scheda OSOYOO Basic.

Ora caricate il file ‘PWM_Control_LED’  o copiare il codice sottostante nella nuova finestra dell’IDE Arduino e caricarlo sulla scheda OSOYOO Basic. Attendere qualche secondo: si dovrebbero vedere lampeggiare i led RX e TX sulla scheda. Se il caricamento ha avuto successo, nella barra di stato apparirà il messaggio “Done uploading”.

void setup ()
{
  pinMode(3,OUTPUT);// declare pin 3 to be an output
}

void loop()
{
  for (int a=0; a<=255;a++)     //loop from 0 to 255,it controls the increase in PWM brightness
  {
    analogWrite(3,a);           //set the brightness of pin 3:          
    delay(8);                   //wait for 8 ms        
  }
    for (int a=255; a>=0;a--)   //loop from 255 down to 0,it control PWM brightness reduction
  {
    analogWrite(3,a);           // set the brightness of pin 3:
    delay(8);                   //wait for 8 ms
  }
  delay(800);                  //wait for 800 ms
}

Risultato della corsa

Pochi secondi dopo il termine del caricamento, si dovrebbe vedere il LED diventare sempre più luminoso, per poi affievolirsi lentamente, proprio come se si respirasse.