Webwinkel Keurmerk9,0/10 Gratis verzending vanaf €99,95 (NL & BE) Voor 16:00 besteld = Morgen in huis 14 dagen gratis terugsturen info@elektronicavoorjou.nl

In dit Arduino project laat ik zien hoe je het spel simon says kan maken met een Arduino.
Simon Says is een spelletje waarbij een je 4 Lampjes hebt die verbonden zijn aan een druk knop. In het begin gaat er één lampje branden.
Vervolgens druk je de bijbehorende knop in. Als je de juiste knop hebt ingedrukt gaan het zelfde en een volgend lampje branden. Elke keer als je het goed hebt komt er een lampje bij. In dit project kan je gaan we tot rondes, echter kan je dit zelf aanpassen.
Als je een lampje niet goed hebt heb je verloren en start het spel opnieuw.

  • Niveau – Beginner 30% 30%
  • Tijdsduur – 20/30 Min 35% 35%
  • Kosten – €36,87 euro compleet 30% 30%

Stap 1: Benodigheden

1X Arduino UNO

1X breadboard

18X jumper wires

4X push button

1X groen, blauw, geel en rood led lampje

4X 220 ohm weerstand

Stap 2: Bouwen en Bedraden

Nu gaan we het in elkaar zetten van Simon Says.

Je begint met de plus en de min van de Arduino op de plus en de min van het breadboard aan te sluiten.

Daarna doe je de led lampjes in het bord. Als je dat hebt gedaan doe je bij ieder led lampje een 220 ohm weerstand bij de plus zijde dat is de langste pin.
Vervolgens ga je van de min pin van de led lampjes ieder naar een eigen push button.

Als je dat hebt gedaan ga je van bij iedere knop va de pin die verticaal van de min zit bij ieder ledje (zoals te zien in de fritsing) naar de min van het breadboard. Dan ga je van iedere knop bij de pin die diagonaal van de min van het ledje zit naar de plus van het breadboard.

Hierna voeg je nog een kabel bij de diagonale pin van de min van de ledjes toe. Bij die van rood moet naar pin A2. Die van groen moet naar pin A3. De gene van geel moet naar pin A1 en tot slot die van blauw moet naar pin A0. Als laatste gaat er nog een kabel van de andere zijde van de weerstand naar I/O pinnen. Van rood naar pin 3, van groen naar pin 2 van geel naar pin 4 en van blauw naar pin 5.

Stap 3: Programmeren

 

Nu je klaar bent met het bedraden van de Arduino kun je het boardgaan programmeren.
De code die je erop moet zetten kan je hieronder vinden omdat je meer leert van overschrijven dan van kopiëren raden wij aan om de gehele code over te typen.
In de code zelf kan je aanpassen hoe snel de lampjes aan en uit gaan en met hoeveel die tijd afneemt per goede combinatie. Op deze manier kan je het spelletje steeds moeilijker maken.

 

const int MAX_LVL = 10;

int volgorde[MAX_LVL];

int eigen_volg[MAX_LVL];

int LVL = 1;

int snelheid = 1000;

 

void setup(){

  pinMode(A0, INPUT);

  pinMode(A1, INPUT);

  pinMode(A2, INPUT);

  pinMode(A3, INPUT);

  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(){

  if(LVL == 1)

  genereer_volg();

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

    show_volg();

    get_volg();

  }

}

 

void show_volg(){

  digitalWrite(2, LOW);

  digitalWrite(3, LOW);

  digitalWrite(4, LOW);

  digitalWrite(5, LOW);

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

    digitalWrite(volgorde[i], HIGH);

    delay(snelheid);

    digitalWrite(volgorde[i], LOW);

    delay(200);

  }

}

 

void get_volg(){

  int vlag = 0;

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

    vlag = 0;

    while(vlag == 0){

      if(digitalRead(A0) == LOW){

        digitalWrite(5, HIGH);

        eigen_volg[i] = 5;

        vlag = 1;

        delay(200);

        if(eigen_volg[i] != volgorde[i]){

          verkeerde_volg();

          return;

        }

        digitalWrite(5, LOW);

      }

      if(digitalRead(A1) == LOW){

        digitalWrite(4, HIGH);

        eigen_volg[i] = 4;

        vlag = 1;

        delay(200);

        if(eigen_volg[i] != volgorde[i]){

          verkeerde_volg();

          return;

        }

        digitalWrite(4, LOW);

      }

      if(digitalRead(A2) == LOW){

        digitalWrite(3, HIGH);

        eigen_volg[i] = 3;

        vlag = 1;

        delay(200);

        if(eigen_volg[i] != volgorde[i]){

          verkeerde_volg();

          return;

        }

        digitalWrite(3, LOW);

      }

      if(digitalRead(A3) == LOW){

        digitalWrite(2, HIGH);

        eigen_volg[i] = 2;

        vlag = 1;

        delay(200);

        if(eigen_volg[i] != volgorde[i]){

          verkeerde_volg();

          return;

        }

        digitalWrite(2, LOW);

      }

    }

  }

  goede_volg();

}

 

void genereer_volg(){

  randomSeed(millis());

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

    volgorde[i] = random(2, 6);

  }

}

 

void verkeerde_volg(){

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

    digitalWrite(2, HIGH);

    digitalWrite(3, HIGH);

    digitalWrite(4, HIGH);

    digitalWrite(5, HIGH);

    delay(250);

    digitalWrite(2, LOW);

    digitalWrite(3, LOW);

    digitalWrite(4, LOW);

    digitalWrite(5, LOW);

    delay(250);

  }

  LVL = 1;

  snelheid = 1000;

}

 

void goede_volg(){

  digitalWrite(2, LOW);

  digitalWrite(3, LOW);

  digitalWrite(4, LOW);

  digitalWrite(5, LOW);

  delay(250);

  digitalWrite(2, HIGH);

  digitalWrite(3, HIGH);

  digitalWrite(4, HIGH);

  digitalWrite(5, HIGH);

  delay(500);

  digitalWrite(2, LOW);

  digitalWrite(3, LOW);

  digitalWrite(4, LOW);

  digitalWrite(5, LOW);

  delay(250);

  if(LVL < MAX_LVL);

  LVL++;

  snelheid -= 100;

}

Als het goed is ziet jou Simon Says spel er nu ongeveer uit zoals in het onderstaande filmpje.
Elk spelletje is anders, daarom kan er dus uren plezier van hebben!

 

Onze klanten service

We staan voor je klaar per telefoon,  chat en via mail.

Terugsturen is gratis

Niet tevreden met je bestelling? Bij ons kan je kosteloos retourneren

Vraag offerte aan

Grotere oplage? Vraag gemakkelijk een offerte aan.

Fokkerstraat 12
3833LD, Leusden
Tel: 033 - 200 3116
Email: info@elektronicavoorjou.nl

OVERIG

Educatie
Projecten
Partner links
Vacatures

SCHRIJF JE IN VOOR DE NIEUWSBRIEF
En ontvang 5% korting op je volgende bestelling!

LIKE ONS OP FACEBOOK

© Copyright 2018 - 2019 | All Rights Reserved | Sitemap | Elektronica voor jou