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!