Fino a questo momento abbiamo utilizzato l’istruzione digitalWrite per far in modo che un determinato pin sia acceso o spento ,oggi vi spiegherò come poter utilizzare anche dei valori intermedi (questo è molto utile se si vuole “comandare” la luminosità di un led o la velocità di un motore).
Arduino di per se non è in grado di attribuire valori intermedi ,ma è capace di captare la velocità d’esecuzione , questa tecnica è chiamata PWM (modulazione della larghezza dell’impulso).
Con questa tecnica il pin passa dallo stato High allo stato LOW molto velocemente .Il rapporto tra il tempo passato tra lo stato High e lo stato LOW identifica il valore medio del segnale trasmesso:possiamo così approssimare un segnale analogico .
Quindi useremo l’ istruzione analogWrite() questo comando richiede 2 parametri il primo è il pin( Solo i pin contrassegnati con la tilde cioè ~ hanno possono eseguire la tecnica PWM ed essi sono 3,5,6,9,10 e 11) il secondo parametro invece può assumere valori tra 0 e 255
LOW=0
HIGH=255
ESEMPIO
Creiamo un circuito con un led e compilare il seguente codice:
[code lang=”obj-c”]
int pin=9;//pin del led
void setup(){
}
void loop(){
for (int i=0;i<=255;i+=5){
analogWrite(pin,i);
delay(50);
}
for (int i=255;i>=0;i-=5){
analogWrite(pin,i);
delay(50);
}
}
[/code]
Questo semplice programmino non fa altro che accende e spegnere un led con la peculiarità che non si accenderà e spegnerà con intermittenza ma lo farà in modo graduale ora resta a voi e alla vostra fantasia utilizzare questa tecnica come meglio potete