Spedizione gratuita da 74,95 € NL (99,95 € BE/DE)

Consegna veloce con DHL

Ordinato prima delle XNUMX:XNUMX = Spedito oggi

Restituzione entro XNUMX giorni*


Paese

In questo Arduino progetto mostro come si può realizzare il gioco che dice Simon con un Arduino.
Simon Says è un gioco in cui hai 4 luci, ognuna collegata a un pulsante. All'inizio si accende una spia.
Quindi premere il pulsante corrispondente. Se hai premuto il pulsante destro, la stessa e un'altra spia si accendono. Ogni volta che lo fai bene, entra una luce, ogni volta che arriva una luce sali di un giro. In questo progetto puoi regolare quanti round vuoi giocare.
Se non ottieni una sequenza corretta, perdi la partita e ricomincia da capo. Ogni volta che il gioco viene riprodotto, inizia una sequenza casuale.

  • Livello – Principiante 30% 30%
  • Durata – 20/30 Min 35% 35%
  • Costi – € 36,87 euro completo 30% 30%

Passaggio 1: forniture

1X Arduino UNO

1X paneboard

Cavi di collegamento 18X

Pulsante 4X

1X LED verde, blu, giallo e rosso

4 resistenze da 220 ohm

Passaggio 2: costruisci e cabla

Ora lo metteremo insieme da Simon Says.

Inizi con il più e il meno di Arduino sul più e meno del paneboard per connettere.

Quindi metti le luci a LED nella scheda. Dopo averlo fatto, posiziona una resistenza da 220 ohm sul lato positivo di ciascuna luce LED, questo è il pin più lungo.
Quindi si passa dal pin meno delle luci a LED al proprio pulsante.

Fatto ciò si passa da ogni bottone dello spillo che è in verticale dal meno di ogni led (vedi diagramma Fritzing) al meno del paneboard† Quindi si passa da ogni pulsante al pin che è diagonale dal meno del led al più del paneboard.

Dopo questo aggiungi un cavo dal pin diagonale al meno dei led. A2 = rosso, A3 = verde, A1 = giallo e blu = A0.

Infine, un cavo va dall'altro lato del resistore ai pin I/O. Dal rosso al pin 3, dal verde al pin 2, dal giallo al pin 4 e dal blu al pin 5.

Passaggio 3: programmazione

 

Ora che hai finito di cablare Arduino puoi farlo board iniziare a programmare.

Puoi copiare il codice qui sotto nel tuo programma Arduino. Ti consigliamo di riscrivere l'intero codice poiché ne imparerai di più.
Nel codice stesso puoi regolare la velocità di accensione e spegnimento delle luci e di quanto tempo diminuisce per una buona combinazione. In questo modo puoi rendere il gioco sempre più difficile.

 

costante int MAX_LVL = 10;

ordine int[MAX_LVL];

int proprio_segui[MAX_LVL];

int LVL = 1;

tasso int = 1000;

 

void setup () {

  pinMode(A0, INGRESSO);

  pinMode(A1, INGRESSO);

  pinMode(A2, INGRESSO);

  pinMode(A3, INGRESSO);

  pinMode (2, OUTPUT);

  pinMode (3, OUTPUT);

  pinMode (4, OUTPUT);

  pinMode (5, OUTPUT);

  digitalWrite (2, LOW);

  digitalWrite (3, LOW);

  digitalWrite (4, LOW);

  digitalWrite (5, LOW);

}

 

void loop () {

  se(LVL == 1)

  generare_segui();

  if(letturadigitale(A0) == ALTA &&letturadigitale(A3) == ALTA || LVL != 1){

    show_follow();

    get_follow();

  }

}

 

void show_follow(){

  digitalWrite (2, LOW);

  digitalWrite (3, LOW);

  digitalWrite (4, LOW);

  digitalWrite (5, LOW);

  for(int i = 0; io < LVL; i++){

    digitalWrite(ordine[i], ALTO);

    ritardo (velocità);

    digitalWrite(ordine[i], LOW);

    ritardo (200);

  }

}

 

void get_follow(){

  int flag = 0;

  for(int i = 0; io < LVL; i++){

    bandiera = 0;

    mentre(bandiera == 0){

      if(digitalRead(A0) == BASSO){

        digitalWrite (5, HIGH);

        proprio_segui[i] = 5;

        bandiera = 1;

        ritardo (200);

        if(own_follow[i] != sequenza[i]){

          wrong_follow();

          ritorno;

        }

        digitalWrite (5, LOW);

      }

      if(digitalRead(A1) == BASSO){

        digitalWrite (4, HIGH);

        proprio_segui[i] = 4;

        bandiera = 1;

        ritardo (200);

        if(own_follow[i] != sequenza[i]){

          wrong_follow();

          ritorno;

        }

        digitalWrite (4, LOW);

      }

      if(digitalRead(A2) == BASSO){

        digitalWrite (3, HIGH);

        proprio_segui[i] = 3;

        bandiera = 1;

        ritardo (200);

        if(own_follow[i] != sequenza[i]){

          wrong_follow();

          ritorno;

        }

        digitalWrite (3, LOW);

      }

      if(digitalRead(A3) == BASSO){

        digitalWrite (2, HIGH);

        proprio_segui[i] = 2;

        bandiera = 1;

        ritardo (200);

        if(own_follow[i] != sequenza[i]){

          wrong_follow();

          ritorno;

        }

        digitalWrite (2, LOW);

      }

    }

  }

  good_follow();

}

 

vuoto generate_follow(){

  seme casuale(millis());

  for(int i = 0; io < MAX_LVL; i++){

    sequenza[i] = casuale(2, 6);

  }

}

 

void wrong_follow() {

  for(int i = 0; io < 3; i++){

    digitalWrite (2, HIGH);

    digitalWrite (3, HIGH);

    digitalWrite (4, HIGH);

    digitalWrite (5, HIGH);

    ritardo (250);

    digitalWrite (2, LOW);

    digitalWrite (3, LOW);

    digitalWrite (4, LOW);

    digitalWrite (5, LOW);

    ritardo (250);

  }

  LVL = 1;

  velocità = 1000;

}

 

void good_follow(){

  digitalWrite (2, LOW);

  digitalWrite (3, LOW);

  digitalWrite (4, LOW);

  digitalWrite (5, LOW);

  ritardo (250);

  digitalWrite (2, HIGH);

  digitalWrite (3, HIGH);

  digitalWrite (4, HIGH);

  digitalWrite (5, HIGH);

  ritardo (500);

  digitalWrite (2, LOW);

  digitalWrite (3, LOW);

  digitalWrite (4, LOW);

  digitalWrite (5, LOW);

  ritardo (250);

  se(LVL < MAX_LVL);

  LVL++;

  velocità -= 100;

}

Il tuo gioco Simon Says ora dovrebbe assomigliare al video qui sotto.
Ogni gioco è diverso, quindi puoi divertirti per ore!

 

L'apprezzamento di www.electronicsvoorjou.nl at Recensioni WebwinkelKeur è 9.3 / 10 basato su 5028 recensioni.