//#include <DFPlayer_Mini_Mp3.h>
#include <SoftwareSerial.h>
#define leftMonoPin 7
#define rightMonoPin 3
#define specEffectPin 5
#define butPin 8
SoftwareSerial mySerialL(11, 12);
SoftwareSerial mySerialR(9, 10);
const byte volume = 20;
const byte numTracks[] = {4, 6};
const byte timeBut = 200;
uint64_t lastTimeBut;
byte lastButState;
bool leftPlay = false;
bool rightPlay = false;
bool playVideo = false;
void setup() {
Serial.begin(9600);
pinMode(leftMonoPin, INPUT);
pinMode(rightMonoPin, INPUT);
pinMode(butPin, INPUT_PULLUP);
pinMode(specEffectPin, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
if (digitalRead(leftMonoPin) == LOW || digitalRead(rightMonoPin) == LOW) {
digitalWrite(specEffectPin, HIGH);
if (digitalRead(leftMonoPin) == LOW && !leftPlay) {
delay(100);
leftPlay = true;
digitalWrite(13, HIGH);
}
else if(leftPlay && digitalRead(leftMonoPin) == HIGH) {
leftPlay = false;
digitalWrite(13, LOW);
}
if (digitalRead(rightMonoPin) == LOW && !rightPlay) {
delay(100);
rightPlay = true;
digitalWrite(12, HIGH);
}
else if(rightPlay && digitalRead(rightMonoPin) == HIGH) {
rightPlay = false;
digitalWrite(12, LOW);
}
}
else {
digitalWrite(specEffectPin, LOW);
digitalWrite(12, LOW);
digitalWrite(13, LOW);
}
checkBut();
if(Serial.available() && playVideo) {
Serial.read();
playVideo = false;
}
}
void checkBut() {
byte stateBut = digitalRead(butPin);
if (stateBut == LOW && stateBut != lastButState) {
if (millis() - lastTimeBut > timeBut && !playVideo) {
lastTimeBut = millis();
Serial.write(1);
playVideo = true;
Serial.read();
}
}
lastButState = stateBut;
}