Introducció a la robòtica en trenta-una classes/Novè dia: fem anar un LED tricolor
Led tricolor i arduino nano / micro.

Avui ens hem dedicat a apendre a activar les sortides en mode analògic. Això es, que no només podem encendre o apagar una sortida, per exemple un led, sino que també podem fer que s’encengui amb més o menys intensitat.
Com que la placa arduino uno la tenim ocupada en el cotxe, hem adquirit una placa arduino nano per a cada alumne, per poder anar fent altres coses a part del vehicle.
L’avantatge de les plaques nano, és que son més econòmiques perquè tenen un
connector mini usb que ja no es fa servir. La micro ja té el connector micro usb que tenim a la majoria de dispositius. També es poden trobar versions del nano amb connector micro usb a webs asiàtiques.
Per a aquest mode de funcionament no ens serveixen totes les sortides, sino només les que ens diu la documentació que permeten PWM. PWM és l’abreviatura en anglès de Pulse Wide Modulation, o modulació de l’ample de pols, que consisteix d’activar a impulsos més o menys llargs una sortida. D’aquesta manera aconseguim entregar més o menys energia, i veiem que un llum llueix amb més o menys força.
Fixeu-vos que el LED té una pota més llarga que és el comú. Cal respectar-ho o es farà malbé.
El programa d’exemple:
int vermell; // valor potència vermell
int verd; // potència verd
int blau; // potència blau
void setup() {
pinMode(9, OUTPUT); // pin del vermell
pinMode(10, OUTPUT); // pin del verd
pinMode(11, OUTPUT); // pin del blau
}
void loop() {
// encenem el vermell a poc a poc
while (vermell<256){ // mentre no superem el màxim
analogWrite(9, vermell); // escrivim el valor
vermell=vermell+1; // augmentem la llum un punt
delay(10); // esperem 10ms
}
analogWrite(9, 0); // apaguem el vermell
// encenem el verd a poc a poc
while (verd<256){ // mentre no superem el màxim
analogWrite(10, verd); // escrivim el valor
verd=verd+1; // augmentem la llum un punt
delay(10); // esperem 10ms
}
analogWrite(10, 0); // apaguem el verd
// encenem el blau a poc a poc
while (blau<256){ // mentre no superem el màxim
analogWrite(11, blau); // escrivim el valor
blau=blau+1; // augmentem la llum un punt
delay(10); // esperem 10ms
}
analogWrite(11, 0); // apaguem el blau
// fem anar el blau de res a tot i el vermell de tot a res
blau=0;
vermell=255;
while (blau<256){ // mentre no superem el màxim
analogWrite(9, vermell); // escrivim el valor
analogWrite(11, blau); // escrivim el valor
blau=blau+1; // augmentem el blau un punt
vermell=vermell-1; // disminuïm el vermell un punt
delay(10); // esperem 10ms
}
analogWrite(11, 0); // apaguem el blau
analogWrite(9,0); // apaguem el vermell
vermell=0; // posem a zero el vermell
verd=0; // posem el verd a zero
blau=0; // posem el blau a zero
}
Exercici: feu anar la imaginació. Podem pensar un color i mirar de reproduir-lo en el led.
Podem fer seqüències dels colors que més ens agradin. Podem simular un foc per al
pessebre.... A veure què surt!