Introducció a la robòtica en trenta-una classes/Quart dia: dau electrònic

Salta a la navegació Salta a la cerca

Avui hem connectat un dígit de 7 segments, tal com es veu en la imatge, hem afegit un pulsador, i hem fet un programa que van passant tots els números del zero al nou, molt de pressa, i que queda congelat uns segons en prémer el pulsador. Això ens serveix de dau per a diversos jocs.

Muntatge7segments.png

Com a exercici, canvieu el programa per tal que només apareguin els números del u al sis,

i així emularà un dau clàssic de sis cares.

A continuació el programa que hem fet:

int comptador=0;
void setup() {
// en el setup hi posem el que volem que només s'executi una vegada en engegar
    pinMode(2,OUTPUT);
    pinMode(3,OUTPUT);
    pinMode(4,OUTPUT);
    pinMode(5,OUTPUT);
    pinMode(6,OUTPUT);
    pinMode(7,OUTPUT);
    pinMode(8,OUTPUT);
}

void loop() {
// en el loop hi posem allò que volem que s'executi indefinidament
    if (comptador==0){//numero
        digitalWrite(2,1);
        digitalWrite(3,1);
        digitalWrite(4,0);
        digitalWrite(5,1);
        digitalWrite(6,1);
        digitalWrite(7,1);
        digitalWrite(8,1);
    }
    if (comptador==1){//numero
        digitalWrite(2,0);
        digitalWrite(3,1);
        digitalWrite(4,0);
        digitalWrite(5,1);
        digitalWrite(6,0);
        digitalWrite(7,0);
        digitalWrite(8,0);
    }
    if (comptador==2){//numero
        digitalWrite(2,1);
        digitalWrite(3,1);
        digitalWrite(4,1);
        digitalWrite(5,0);
        digitalWrite(6,1);
        digitalWrite(7,1);
        digitalWrite(8,0);
    }
    if (comptador==3){//numero
        digitalWrite(2,1);
        digitalWrite(3,1);
        digitalWrite(4,1);
        digitalWrite(5,1);
        digitalWrite(6,1);
        digitalWrite(7,0);
        digitalWrite(8,0);
    }
    if (comptador==4){//numero
        digitalWrite(2,0);
        digitalWrite(3,1);
        digitalWrite(4,1);
        digitalWrite(5,1);
        digitalWrite(6,0);
        digitalWrite(7,0);
        digitalWrite(8,1);
    }
    if (comptador==5){//numero
        digitalWrite(2,1);
        digitalWrite(3,0);
        digitalWrite(4,1);
        digitalWrite(5,1);
        digitalWrite(6,1);
        digitalWrite(7,0);
        digitalWrite(8,1);
    }
    if (comptador==6){//numero
        digitalWrite(2,1);
        digitalWrite(3,0);
        digitalWrite(4,1);
        digitalWrite(5,1);
        digitalWrite(6,1);
        digitalWrite(7,1);
        digitalWrite(8,1);
    }
    if (comptador==7){//numero
        digitalWrite(2,1);
        digitalWrite(3,1);
        digitalWrite(4,0);
        digitalWrite(5,1);
        digitalWrite(6,0);
        digitalWrite(7,0);
        digitalWrite(8,0);
    }
    if (comptador==8){//numero
        digitalWrite(2,1);
        digitalWrite(3,1);
        digitalWrite(4,1);
        digitalWrite(5,1);
        digitalWrite(6,1);
        digitalWrite(7,1);
        digitalWrite(8,1);
    }
    if (comptador==9){//numero
        digitalWrite(2,1);
        digitalWrite(3,1);
        digitalWrite(4,1);
        digitalWrite(5,1);
        digitalWrite(6,1);
        digitalWrite(7,0);
        digitalWrite(8,1);
    }
    comptador=comptador+1;
    if (comptador==10){
        comptador=0;
    }
    delay(30);//veloçitat de rotació de numero
    if (digitalRead(10)==1){
        delay(4000);//temps que estem ensenyant el resultat, en ms. O sigui, 4 segons
    }
}