Diferència entre revisions de la pàgina «Arduino Dau»

De Wiket
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:


Set.jpg


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);
    
  }