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

De Wiket
Salta a la navegació Salta a la cerca
 
(Hi ha 12 revisions intermèdies del mateix usuari que no es mostren)
Línia 8: Línia 8:
  
 
Placa Arduino
 
Placa Arduino
 +
 
Botó
 
Botó
 +
 
Led de 7 segments
 
Led de 7 segments
  
Línia 14: Línia 16:
 
== Esquema ==
 
== Esquema ==
  
[[Fitxer:Exemple.jpg]]
+
Aquest és el essquema del projecte:
 +
 
 +
 
 +
[[Fitxer: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);
 +
   
 +
  }

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