Arduino UNO, Dfplayer y teléfono analogo

He intentado en varias ocasiones incluso apoyado por IA y no logro hacerlo funcionar.

Que necesito: un teléfono análogo que no vaya conectado a ninguna línea telefónica, el cual al descolgar el auricular se escuche un mp3 y al colgar y volver a levantar el auricular vuelva a empezar la música desde el principio, estoy ocupando únicamente un Arduino uno, un dfplayer una bocina de 8 oms, logró hacer funcionar con conexión directa el Arduino con el dfplayer pero no puedo conectarlo a un teléfono análogo y escuchar la música ¿Cómo podría realizar está conexión?

#include <SoftwareSerial.h>
#include <DFPlayerMini_Fast.h>

SoftwareSerial mySerial(10, 11); // RX, TX
DFPlayerMini_Fast myDFPlayer;

const int hookSwitchPin = 2; // Pin conectado al interruptor del auricular
bool isPlaying = false; // Bandera para evitar múltiples activaciones

void setup() {
pinMode(hookSwitchPin, INPUT_PULLUP);
Serial.begin(9600); // Para depuración
mySerial.begin(9600);
delay(100); // Pequeña espera para estabilidad

if (!myDFPlayer.begin(mySerial)) { // Inicializa DFPlayer Mini
Serial.println("Error al inicializar DFPlayer Mini");
while (true); // Se detiene aquí si hay error
}

myDFPlayer.volume(20); // Ajusta el volumen (0-30)
}

void loop() {
if (digitalRead(hookSwitchPin) == LOW && !isPlaying) { // Si se descuelga el auricular y no está reproduciendo
Serial.println("Reproduciendo...");
myDFPlayer.play(1); // Reproduce "001.mp3"
isPlaying = true; // Marca que ya está reproduciendo

while (digitalRead(hookSwitchPin) == LOW) {
  // Espera hasta que se cuelgue el auricular
}

Serial.println("Detenido");
myDFPlayer.stop(); // Detiene la reproducción
isPlaying = false; // Resetea la bandera
delay(500); // Pequeño retardo para estabilidad

}
}

He trasladado su tema de una categoría de idioma inglés del foro a la categoría International > Español @joabsme

En adelante por favor usar la categoría apropiada a la lengua en que queráis publicar. Esto es importante para el uso responsable del foro, y esta explicado aquí la guía "How to get the best out of this forum".
Este guía contiene mucha información útil. Por favor leer.

De antemano, muchas gracias por cooperar.

1 Like

Creo que va a estar complicado, entiendo que a decir teléfono análogo te refieres a un teléfono de los que se conectan a una linea telefónica analógica, siendo así esos teléfonos funcionan con un voltaje de 48V en continua y sobre esta tensión modulan el audio que se recibe por la linea, quizás modificando los circuitos interiores se podría conseguir que la música llegue directamente al auricular, pero habría que ver como hacer que el Arduino detecte que el auricular se ha descolgado para comenzar a reproducir y que detecte que se ha colgado el auricular para reiniciar el proceso.

1 Like

Como dice @tresvdoble vas a tener que intervenir el teléfono, no hay otra.

Obviamente se va a inutilizar el teléfono, tenelo en cuenta.

Identifica los cables del auricular, si es un aparato moderno seguramente tenga un conector RJ-9 para el cable rulo del "tubo", y aíslalos del circuito (corta las pistas que van al conector o puntos de soldadura de los cables, según sea el caso).

Has lo mismo con los contactos del interruptor de la orquilla.

Otra vez, si es un aparato moderno, vas a tener un conector RJ-11 para la entrada de línea; corta las pistas que van al conector o puntos de soldadura del cable (si fuese fijo).

Para conectar con el UNO y DFplayer vas a necesitar cable de 4 conductores.
Tal vez podrías aprovechar el conector RJ-11.

Como sea, de los 4 conductores suelda 2 al conector del auricular y otros 2 a los contactos del interruptor de la orquilla.

Si quisieras aprovechar el conector RJ-11, suelda los cables a los 4 contactos del conector pero antes asegúrate que el cable (de entrada de línea) tenga 4 conductores, por ej. los aparatos de Panasonic traen cable de solo 2 hilos.

Y listo, conecta los cables del interruptor a GND y el pin del UNO y los otros a las salidas del DFplayer.

Espero que se entienda la explicación. :wink:

Moderador:
Por favor, lee las Normas del foro y publica/edita tu código/error usando etiquetas de código.
Ve a edición, luego selecciona todo el código que has publicado/editado, lo cortas y click en (<CODE/>)




Además aunque ya te lo dijo el moderador del foro en inglés si publicas en el foro en inglés usa ese idioma de lo contrario debes hacerlo en este foro en español.
Ya tienes una advertencia, si incurres en mas faltas ere pasible de sanciones.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.