Advertisement
matheus29t

DESAFIO_GENIUS_3_LEDS

Oct 23rd, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. #define yellow 10
  5. #define green 9
  6. #define red 8
  7. #define button1 2
  8. #define button2 3
  9. #define button3 4
  10.  
  11. int buttonState;
  12. void setup() {  
  13.   pinMode(yellow, OUTPUT);
  14.   pinMode(green, OUTPUT);
  15.   pinMode(red, OUTPUT);
  16.   pinMode(button1, INPUT);
  17.   pinMode(button2, INPUT);
  18.   pinMode(button3, INPUT);
  19.   Serial.begin(9600);
  20. }
  21. void loop() {
  22.   int randomInt, i;
  23.   int order[19];
  24.   for(i=0;i<19;i++){
  25.     randomInt = random(3);
  26.     order[i] = randomInt;
  27.   }
  28.   for(i=0;i<19;i++){
  29.     Serial.print(order[i]);
  30.   }
  31.   digitalWrite(red, LOW);
  32.   digitalWrite(green, LOW);
  33.   digitalWrite(yellow, LOW);
  34.   iterations(order);
  35. }
  36.  
  37. void iterations(int *order){
  38.   int i, j, LED;
  39.   for(i=0;i<19;i++){
  40.     for(j=0;j<i;j++){
  41.       if(order[j]==0) LED = red;
  42.       else if(order[j]==1) LED = green;
  43.       else if(order[j]==2) LED = yellow;
  44.       delay(500);
  45.       digitalWrite(LED, HIGH);
  46.       delay(700);
  47.       digitalWrite(LED, LOW);
  48.     }
  49.     for(j=0;j<i;j++){
  50.       readButtons();
  51.       if(buttonState==0) LED = red;
  52.       else if(buttonState==1) LED = green;
  53.       else if(buttonState==2) LED = yellow;
  54.       digitalWrite(LED, HIGH);
  55.       Serial.println(buttonState);
  56.       delay(300);
  57.       digitalWrite(LED, LOW);
  58.       if(buttonState != order[j]) gameOver();
  59.     }
  60.   }
  61.   victory();
  62. }
  63. void readButtons(){
  64.   if(digitalRead(button1)==HIGH) buttonState = 0;
  65.   else if(digitalRead(button2)==HIGH) buttonState = 1;
  66.   else if(digitalRead(button3)==HIGH) buttonState = 2;
  67.   else readButtons();  
  68. }
  69. void gameOver(){
  70.   digitalWrite(red, HIGH);
  71.   digitalWrite(green, HIGH);
  72.   digitalWrite(yellow, HIGH);
  73.   delay(4000);
  74.   loop();
  75. }
  76.  
  77. void victory(){
  78.   int i, j;
  79.   digitalWrite(red, LOW);
  80.   digitalWrite(green, LOW);
  81.   digitalWrite(yellow, LOW);
  82.   for(i=0;i<4;i++){
  83.     for(i=0;i<3;i++){
  84.       digitalWrite(red, HIGH);
  85.       digitalWrite(green, LOW);
  86.       digitalWrite(yellow, LOW);
  87.       delay(200);
  88.       digitalWrite(red, LOW);
  89.       digitalWrite(green, HIGH);
  90.       digitalWrite(yellow, LOW);
  91.       delay(200);
  92.       digitalWrite(red, LOW);
  93.       digitalWrite(green, LOW);
  94.       digitalWrite(yellow, HIGH);
  95.       delay(200);
  96.     }
  97.   }
  98.   loop();
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement