estou fazendo um projeto no arduino com um sensor de movimento que ativa um sinal sonoro, por meio de um módulo dfplayer, estou com algumas dúvidas se o código está correto, tendo em vista que sou iniciante na programação de arduino. Alguma dica ?
segue o código
#include "SoftwareSerial.h" // Inclui a biblioteca SoftwareSerial.h
#include "DFRobotDFPlayerMini.h" // Inclui a biblioteca DFRobotDFPlayerMini.h
int pinSensorPIR = 8;// Declara andar 1 como pino digital 8
int pinLed = 9;// Declara andar 1 como pino digital 9
int valorSensorPIR = 0;// Declara andar 1 como pino digital 0
//Inicia a comunicação serial nos pinos 10 (RX) e 11(TX)
SoftwareSerial mySoftwareSerial(10, 11);
// Declara o módulo DFPlayer
DFRobotDFPlayerMini myDFPlayer;
// Fixa os parâmetros iniciais
char buf;
int pausa = 0;
int equalizacao = 0;
void setup() {
Serial.begin(9600); //Inicializando o serial monitor
//Definido pinos como de entrada ou de saída
pinMode(pinSensorPIR,INPUT);// Configura a porta digital 8 como entrada
pinMode(pinLed,OUTPUT);// Configura a porta digital 9 como saída
//Comunicacao serial com o modulo
mySoftwareSerial.begin(9600);
// Inicializa as funções do módulo DFPlayer
myDFPlayer.begin(mySoftwareSerial);
//Configurações iniciais
myDFPlayer.setTimeOut(500); //Timeout serial 500ms
myDFPlayer.volume(30); // Volume 30 (1-31)
myDFPlayer.EQ(0); // Equalizacao normal
}
void loop() {
//Aguarda a entrada de dados pela serial
while (Serial.available() > 0) {
buf = Serial.read();
//Reproducao
if (buf == '1') { // Limita as faixas possíveis
buf = buf - 48;
myDFPlayer.play(buf); // Reproduz a música selecionada
}
}
if (digitalRead(valorSensorPIR)) { // Se reconhecer movimento
myDFPlayer.play(1); // Seleciona faixa 1
delay(4000); // Reproduz por 4s antes de parar
}
else {
myDFPlayer.stop(); // Se não reconhecer movimento um não reproduz
}
}