Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "SoftwareSerial.h"
- #include "DFRobotDFPlayerMini.h"
- #define start A0
- #define koniec A1
- #define srodek A2
- #define czerwona 5
- #define zielona 7
- #define zwora 8
- int led_pin = 6;
- long timer_point;
- // randomowe zmienna do mrugania ledami
- int state = 0;
- // 0 -> blad
- // 1 -> byl na starcie
- // 2 -> jest cacy
- SoftwareSerial mySoftwareSerial(3, 2); // RX, TX
- DFRobotDFPlayerMini myDFPlayer;
- void setup()
- {
- mySoftwareSerial.begin(9600);
- Serial.begin(115200);
- if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3.
- Serial.println(F("Unable to begin:"));
- Serial.println(F("1.Please recheck the connection!"));
- Serial.println(F("2.Please insert the SD card!"));
- while (true);
- }
- Serial.println(F("DFPlayer Mini online."));
- myDFPlayer.volume(30);
- pinMode(start, INPUT);
- pinMode(koniec, INPUT);
- pinMode(srodek, INPUT);
- pinMode(czerwona, OUTPUT);
- pinMode(zielona, OUTPUT);
- pinMode(zwora, OUTPUT);
- pinMode(led_pin, OUTPUT);
- digitalWrite(czerwona, HIGH);
- digitalWrite(zielona, LOW);
- digitalWrite(zwora, LOW);
- analogWrite(led_pin, 0);
- timer_point = 2000;
- myDFPlayer.play(1);
- }
- void loop()
- {
- int odczyt = readBar();
- if (state == 0 && odczyt == 100)
- {
- delay(10);
- if (state == 0 && odczyt == 100)
- {
- state = 1;
- digitalWrite(czerwona, LOW);
- digitalWrite(zielona, HIGH);
- Serial.println("Wykonaj zagadkę");
- analogWrite(led_pin, 0);
- }
- }
- if (state == 1 && odczyt == 0) {
- delay(10);
- if (state == 1 && odczyt == 0)
- {
- //win
- state = 2;
- digitalWrite(zwora, HIGH);
- Serial.println("Udało się! ;)");
- digitalWrite(led_pin, HIGH);
- myDFPlayer.play(2);
- while (1)
- ;
- }
- }
- if (state == 1 && odczyt == -1)
- {
- delay(10);
- if (state == 1 && odczyt == -1)
- {
- state = 0;
- //zle, blad, BEEP
- Serial.println("ERROR - BŁĄD ! ");
- myDFPlayer.play(1);
- digitalWrite(czerwona, HIGH);
- digitalWrite(zielona, LOW);
- timer_point = millis();
- }
- }
- if ((state == 0) && (millis() - timer_point < 1300))
- {
- analogWrite(led_pin, random(255));
- delay(random(50));
- }
- else {
- analogWrite(led_pin, 0);
- }
- }
- int readBar()
- {
- if (digitalRead(start) == 1)
- {
- return 100;
- }
- if (digitalRead(koniec) == 1)
- return 0;
- if (digitalRead(srodek) == 1)
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement