Diferència entre revisions de la pàgina «Arduino Dau»
Salta a la navegació
Salta a la cerca
(Hi ha 2 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 30: | Línia 30: | ||
int pausa = 50; // Variable que defineix l'interval | int pausa = 50; // Variable que defineix l'interval | ||
− | |||
// De temps entre cada dígit | // De temps entre cada dígit | ||
− | |||
int numAle = 0; | int numAle = 0; | ||
− | |||
void setup () | void setup () | ||
− | |||
{ | { | ||
Serial.begin(9600); | Serial.begin(9600); | ||
− | |||
pinMode (6,INPUT); | pinMode (6,INPUT); | ||
pinMode (7, OUTPUT); // Assignació de les sortides digitals | pinMode (7, OUTPUT); // Assignació de les sortides digitals | ||
− | |||
pinMode (8, OUTPUT); | pinMode (8, OUTPUT); | ||
− | |||
pinMode (9, OUTPUT); | pinMode (9, OUTPUT); | ||
− | |||
pinMode (10, OUTPUT); | pinMode (10, OUTPUT); | ||
− | |||
pinMode (11, OUTPUT); | pinMode (11, OUTPUT); | ||
− | |||
pinMode (12, OUTPUT); | pinMode (12, OUTPUT); | ||
− | |||
pinMode (13, OUTPUT); | pinMode (13, OUTPUT); | ||
} | } | ||
void display (int a, int b, int c, int d, int e, int f, int g) | void display (int a, int b, int c, int d, int e, int f, int g) | ||
− | |||
// Funció del display | // Funció del display | ||
− | |||
{ | { | ||
int i; | int i; | ||
− | |||
for(i = 7; i <= 13; i++){ | for(i = 7; i <= 13; i++){ | ||
− | |||
digitalWrite(i, LOW); | digitalWrite(i, LOW); | ||
− | |||
} | } | ||
− | |||
delay(1); | delay(1); | ||
− | |||
digitalWrite (7, a); // Es reben 7 variables i s'assignen | digitalWrite (7, a); // Es reben 7 variables i s'assignen | ||
− | |||
digitalWrite (8, b); // A cadascuna de les sortides | digitalWrite (8, b); // A cadascuna de les sortides | ||
− | |||
digitalWrite (9, c); | digitalWrite (9, c); | ||
− | |||
digitalWrite (10, d); | digitalWrite (10, d); | ||
− | |||
digitalWrite (11, e); | digitalWrite (11, e); | ||
− | |||
digitalWrite (12, f); | digitalWrite (12, f); | ||
− | |||
digitalWrite (13, g); | digitalWrite (13, g); | ||
} | } | ||
− | |||
void contar(int aleato) | void contar(int aleato) | ||
− | |||
{ | { | ||
if(aleato==1) | if(aleato==1) | ||
− | |||
{ | { | ||
display (0,1,1,0,0,0,0); // Escriu 1 | display (0,1,1,0,0,0,0); // Escriu 1 | ||
− | |||
} | } | ||
− | |||
else if(aleato==2) | else if(aleato==2) | ||
− | |||
{ | { | ||
− | |||
display (1,1,0,1,1,0,1); // Escriu 2 | display (1,1,0,1,1,0,1); // Escriu 2 | ||
} | } | ||
− | |||
else if(aleato==3) | else if(aleato==3) | ||
− | |||
{ | { | ||
− | |||
display (1,1,1,1,0,0,1); // Escriu 3 | display (1,1,1,1,0,0,1); // Escriu 3 | ||
− | |||
} | } | ||
− | |||
else if(aleato==4) | else if(aleato==4) | ||
− | |||
{ | { | ||
− | |||
display (0,1,1,0,0,1,1); // Escriu 4 | display (0,1,1,0,0,1,1); // Escriu 4 | ||
− | |||
} | } | ||
− | |||
else if(aleato==5) | else if(aleato==5) | ||
− | |||
{ | { | ||
− | |||
display (1,0,1,1,0,1,1); // Escriu 5 | display (1,0,1,1,0,1,1); // Escriu 5 | ||
− | |||
} | } | ||
− | |||
else if(aleato==6) | else if(aleato==6) | ||
− | |||
{ | { | ||
− | |||
display (1,0,1,1,1,1,1); // Escriu 6 | display (1,0,1,1,1,1,1); // Escriu 6 | ||
− | |||
} | } | ||
− | |||
else if(aleato==7) | else if(aleato==7) | ||
− | |||
{ | { | ||
− | |||
display (1,1,1,0,0,0,0); // Escriu 7 | display (1,1,1,0,0,0,0); // Escriu 7 | ||
− | |||
} | } | ||
− | |||
else if(aleato==8) | else if(aleato==8) | ||
− | |||
{ | { | ||
− | |||
display (1,1,1,1,1,1,1); // Escriu 8 | display (1,1,1,1,1,1,1); // Escriu 8 | ||
− | |||
} | } | ||
− | |||
else if(aleato==9) | else if(aleato==9) | ||
− | |||
{ | { | ||
− | |||
display (1,1,1,0,0,1,1); // Escriu 9 | display (1,1,1,0,0,1,1); // Escriu 9 | ||
− | |||
} | } | ||
− | |||
else if(aleato==0) | else if(aleato==0) | ||
− | |||
{ | { | ||
− | + | display (0,0,0,0,0,0,1); // Escriu 0 | |
− | display (0,0,0,0,0,0,1); // Escriu 0 | ||
− | |||
} | } | ||
− | |||
} | } | ||
− | |||
void loop () // Funció principal | void loop () // Funció principal | ||
− | |||
// Depenent de cada dígit, s'envia a la funció display | // Depenent de cada dígit, s'envia a la funció display | ||
− | |||
// Els estats (0 i 1) a cada un dels segments | // Els estats (0 i 1) a cada un dels segments | ||
− | |||
{ | { | ||
randomSeed(analogRead(A0)); | randomSeed(analogRead(A0)); | ||
− | |||
if (digitalRead(6) == HIGH) { | if (digitalRead(6) == HIGH) { | ||
− | |||
numAle=random(1, 10); | numAle=random(1, 10); | ||
− | |||
contar(numAle); | contar(numAle); | ||
− | |||
delay (pausa); | delay (pausa); | ||
− | |||
}else | }else | ||
− | |||
{ | { | ||
− | |||
contar(numAle); | contar(numAle); | ||
} | } |
Revisió de 12:02, 1 juny 2016
Introducció
El projecte consisteix a programar amb Arduino un dau que doni numeros aleatoris entre l'1 i el 9.
Components
Placa Arduino
Botó
Led de 7 segments
Esquema
Aquest és el essquema del projecte:
Video
https://www.youtube.com/watch?v=eovjYhnGAeE
Codi
int pausa = 50; // Variable que defineix l'interval // De temps entre cada dígit int numAle = 0; void setup () {
Serial.begin(9600); pinMode (6,INPUT); pinMode (7, OUTPUT); // Assignació de les sortides digitals pinMode (8, OUTPUT); pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); pinMode (12, OUTPUT); pinMode (13, OUTPUT);
} void display (int a, int b, int c, int d, int e, int f, int g) // Funció del display {
int i; for(i = 7; i <= 13; i++){ digitalWrite(i, LOW); } delay(1); digitalWrite (7, a); // Es reben 7 variables i s'assignen digitalWrite (8, b); // A cadascuna de les sortides digitalWrite (9, c); digitalWrite (10, d); digitalWrite (11, e); digitalWrite (12, f); digitalWrite (13, g);
} void contar(int aleato) {
if(aleato==1) { display (0,1,1,0,0,0,0); // Escriu 1 } else if(aleato==2) { display (1,1,0,1,1,0,1); // Escriu 2 } else if(aleato==3) { display (1,1,1,1,0,0,1); // Escriu 3 } else if(aleato==4) { display (0,1,1,0,0,1,1); // Escriu 4 } else if(aleato==5) { display (1,0,1,1,0,1,1); // Escriu 5 } else if(aleato==6) { display (1,0,1,1,1,1,1); // Escriu 6 } else if(aleato==7) { display (1,1,1,0,0,0,0); // Escriu 7 } else if(aleato==8) { display (1,1,1,1,1,1,1); // Escriu 8 } else if(aleato==9) { display (1,1,1,0,0,1,1); // Escriu 9 } else if(aleato==0) { display (0,0,0,0,0,0,1); // Escriu 0 }
} void loop () // Funció principal // Depenent de cada dígit, s'envia a la funció display // Els estats (0 i 1) a cada un dels segments {
randomSeed(analogRead(A0)); if (digitalRead(6) == HIGH) { numAle=random(1, 10); contar(numAle); delay (pausa); }else { contar(numAle); }