Livraison gratuite à partir de 74,95 € NL (99,95 € BE / DE)

Livraison rapide avec DHL

Commandé avant 16:00 = Expédié aujourd'hui

14 jours de retour*


Transport routier

Dans ce Arduino projet Je vous montre comment faire le jeu dit Simon avec un Arduino.
Simon Says est un jeu où vous avez 4 lumières, chacune connectée à un bouton poussoir. Au début, une lumière s'allumera.
Appuyez ensuite sur le bouton correspondant. Si vous avez appuyé sur le bouton droit, le même et un autre voyant s'allumera. Chaque fois que vous faites les choses correctement, une lumière s'allume, chaque fois qu'une lumière s'allume, vous montez d'un tour. Dans ce projet, vous pouvez ajuster le nombre de tours que vous souhaitez jouer.
Si vous n'obtenez pas une séquence correcte, vous avez perdu la partie et recommencez. Chaque fois que le jeu est rejoué, une séquence aléatoire commence.

  • Niveau - Débutant 30% 30%
  • Durée - 20/30 Min 35% 35%
  • Coûts - 36,87 € complets 30% 30%

Étape 1: Fournitures

1X Arduino UNO

1X painboard

Fils de cavalier 18X

Bouton poussoir 4X

1X lumière LED verte, bleue, jaune et rouge

Résistance 4X 220 ohms

Étape 2: Construire et câbler

Maintenant, nous allons assembler Simon Says.

Vous commencez par le plus et le moins de l'Arduino sur le plus et le moins du painboard se connecter.

Ensuite, vous mettez les lumières LED dans la carte. Lorsque vous avez fait cela, placez une résistance de 220 ohms sur le côté positif pour chaque lumière LED, c'est la broche la plus longue.
Ensuite, vous passez de la broche négative des lumières LED chacune à son propre bouton poussoir.

Lorsque vous avez fait cela, vous passez de chaque bouton de la broche qui est verticalement du moins à chaque led (voir schéma de Fritzing) au moins du painboard† Ensuite, vous passez de chaque bouton à la broche qui est en diagonale du moins de la led au plus du painboard.

Après cela, vous ajoutez un câble de la broche diagonale au négatif des leds. A2 = rouge, A3 = vert, A1 = jaune et bleu = A0.

Enfin, un câble passe de l'autre côté de la résistance aux broches d'E / S. Du rouge à la broche 3, du vert à la broche 2, du jaune à la broche 4 et du bleu à la broche 5.

Étape 3: programmation

 

Maintenant que vous avez fini de câbler l'Arduino, vous pouvez le faire board commencer la programmation.

Vous pouvez utiliser le code ci-dessous dans votre programme Arduino. Nous vous recommandons de retaper l'intégralité du code car vous en apprendrez plus.
Dans le code lui-même, vous pouvez ajuster la vitesse à laquelle les lumières s'allument et s'éteignent et de combien ce temps diminue par bonne combinaison. De cette façon, vous pouvez rendre le jeu de plus en plus difficile.

 

const entier MAX_LVL = 10 ;

ordre int [MAX_LVL];

int own_follow [MAX_LVL];

int LVL = 1 ;

vitesse int = 1000;

 

void setup () {

  pinMode (A0, INPUT);

  pinMode (A1, INPUT);

  pinMode (A2, INPUT);

  pinMode (A3, INPUT);

  pinMode (2, SORTIE);

  pinMode (3, SORTIE);

  pinMode (4, SORTIE);

  pinMode (5, SORTIE);

  digitalWrite (2, FAIBLE);

  digitalWrite (3, FAIBLE);

  digitalWrite (4, FAIBLE);

  digitalWrite (5, FAIBLE);

}

 

boucle vide () {

  si (LVL == 1)

  generate_follow ();

  if (digitalRead (A0) == HIGH && digitalRead (A3) == HIGH || LVL! = 1) {

    show_follow ();

    get_follow ();

  }

}

 

void show_sequence () {

  digitalWrite (2, FAIBLE);

  digitalWrite (3, FAIBLE);

  digitalWrite (4, FAIBLE);

  digitalWrite (5, FAIBLE);

  pour (int i = 0; i <LVL; i ++) {

    digitalWrite (séquence [i], HIGH);

    retard (vitesse);

    digitalWrite (séquence [i], LOW);

    délai (200);

  }

}

 

void get_follow () {

  indicateur int = 0;

  pour (int i = 0; i <LVL; i ++) {

    drapeau = 0;

    while (drapeau == 0) {

      if (digitalRead (A0) == LOW) {

        digitalWrite (5, HAUT);

        own_follow [i] = 5;

        drapeau = 1;

        délai (200);

        if (own_order [i]! = order [i]) {

          mauvais ordre ();

          retour;

        }

        digitalWrite (5, FAIBLE);

      }

      if (digitalRead (A1) == LOW) {

        digitalWrite (4, HAUT);

        own_follow [i] = 4;

        drapeau = 1;

        délai (200);

        if (own_order [i]! = order [i]) {

          mauvais ordre ();

          retour;

        }

        digitalWrite (4, FAIBLE);

      }

      if (digitalRead (A2) == LOW) {

        digitalWrite (3, HAUT);

        own_follow [i] = 3;

        drapeau = 1;

        délai (200);

        if (own_order [i]! = order [i]) {

          mauvais ordre ();

          retour;

        }

        digitalWrite (3, FAIBLE);

      }

      if (digitalRead (A3) == LOW) {

        digitalWrite (2, HAUT);

        own_follow [i] = 2;

        drapeau = 1;

        délai (200);

        if (own_order [i]! = order [i]) {

          mauvais ordre ();

          retour;

        }

        digitalWrite (2, FAIBLE);

      }

    }

  }

  good_follow ();

}

 

void generate_follow () {

  randomSeed (millis ());

  pour (int i = 0; i <MAX_LVL; i ++) {

    ordre [i] = aléatoire (2, 6);

  }

}

 

void false_sequence () {

  pour (int i = 0; i <3; i ++) {

    digitalWrite (2, HAUT);

    digitalWrite (3, HAUT);

    digitalWrite (4, HAUT);

    digitalWrite (5, HAUT);

    délai (250);

    digitalWrite (2, FAIBLE);

    digitalWrite (3, FAIBLE);

    digitalWrite (4, FAIBLE);

    digitalWrite (5, FAIBLE);

    délai (250);

  }

  LVL = 1 ;

  vitesse = 1000;

}

 

void good_follow () {

  digitalWrite (2, FAIBLE);

  digitalWrite (3, FAIBLE);

  digitalWrite (4, FAIBLE);

  digitalWrite (5, FAIBLE);

  délai (250);

  digitalWrite (2, HAUT);

  digitalWrite (3, HAUT);

  digitalWrite (4, HAUT);

  digitalWrite (5, HAUT);

  délai (500);

  digitalWrite (2, FAIBLE);

  digitalWrite (3, FAIBLE);

  digitalWrite (4, FAIBLE);

  digitalWrite (5, FAIBLE);

  délai (250);

  si (LVL <MAX_LVL);

  LVL ++;

  vitesse - = 100;

}

Votre jeu Simon Says devrait maintenant ressembler à la vidéo ci-dessous.
Chaque jeu est différent, vous pouvez donc en profiter pendant des heures!

 

La note de www.elektronicavoorjou.nl à Avis sur WebwinkelKeur est 9.3 / 10 basé sur 4997 avis.