/*
Projeto 47 - Ecoponto azul (Papel e Cartão)
Física na Lixa
https://fisicanalixa.blogspot.com/
https://sites.google.com/aelixa.pt/fisicaearduino
*/
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
#include <Servo.h>
SoftwareSerial mySoftwareSerial(10, 11); //RX e TX
DFRobotDFPlayerMini myDFPlayer;
Servo servoMotor;
#define pinLEDvermelho 7
#define pinLEDverde 6
#define pinIV 4
#define pinServo 3
bool estadoIV;
int i;
int angulo;
void setup()
{
Serial.begin(9600);
mySoftwareSerial.begin(9600);
pinMode(pinLEDvermelho, OUTPUT);
pinMode(pinLEDverde, OUTPUT);
pinMode(pinIV, INPUT);
if (!myDFPlayer.begin(mySoftwareSerial))
{
digitalWrite(pinLEDvermelho, HIGH); //O cartão não se encontra no DFPlayer
digitalWrite(pinLEDverde, LOW);
while (true);
}
else
{
digitalWrite(pinLEDvermelho, LOW);
digitalWrite(pinLEDverde, HIGH); //O cartão está pronto
}
myDFPlayer.setTimeOut(500); //Timeout serial de 500 ms
myDFPlayer.volume(20); //Volume (entre 0 e 30)
myDFPlayer.EQ(0); //Equalização normal
servoMotor.attach(pinServo);
}
void loop()
{
angulo = 0;
servoMotor.write(angulo);
estadoIV = digitalRead(pinIV);
i = 0;
while(estadoIV == 0)
{
if(i == 0)
{
myDFPlayer.play(1);
angulo = 90;
servoMotor.write(angulo);
delay(8000);
}
i++;
estadoIV = digitalRead(pinIV);
}
}