Introducció a la robòtica en trenta-una classes/Quart dia: dau electrònic
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.
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
}
}