Hola, buenos dias
Estoy haciendo un programita muy chorra que cuando una entrada se ponga a "1", se reproduzca un sonido.
El programa funciona, excepto cuando cambia de estado de 0 a 1 por segunda vez. Se queda parado a excepcion de que actives el monitor serie, que lo hace volver a funcionar.
¿Tal vez es una excepcion?
el codigo es el siguiente:
void setup () {
Serial.begin (9600);
mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module
delay(1); //wait 1ms for mp3 module to set volume
mp3_set_volume (30);
}
//
void loop () {
int valor;
Serial.begin(9600);
valor=analogRead(0);
Serial.println(valor);
if (valor>1000){
mp3_play (1);
delay (2000);
}
}
Bueno, el programita es corto, pero esta lleno de errores conceptuales que supongo irás corrigiendo si sigues estudiando y programando el Arduino.
Ahora, para salir del paso...
En el bucle IF pones en marcha el mp3, pero ¿donde dices que pare?
Supongo que con poner mp3_play(0) después del bucle IF se solucionará el problema.
void setup () {
Serial.begin (9600);
mp3_set_serial (Serial); //set Serial for DFPlayer-mini mp3 module
delay(1); //wait 1ms for mp3 module to set volume
mp3_set_volume (30);
}
//
void loop () {
int valor;
// ERROR Serial.begin(9600);
valor = analogRead(0);
Serial.println(valor);
if (valor>1000) {
mp3_play (1);
delay (2000);
}
}
A ver si se comporta mejor.
La respuesta a porque se reactiva al entrar al puerto serie porque justamente NUNCA debes inicializar el puerto serie en el loop. Solo en el setup.
Además hay que investigar un poco la librería utilizada
Este comando mp3_stop (); detiene la ejecución al ser alcanzado.
El ejemplo DFPlayer-Mini-mp3.ino tiene comandos para avanzar, retroceder, parar, etc, etc.
Solo con ver en tu librerías donde dice examples, lo puedes comprobar y probar.
Creo que tu problema es no leer las normas y preguntar en un hilo que sigue otro tema. Crea tu propio hilo porque este quedará cerrado. No respondas hilos con mas de 120 dias sin movimientos