Visto 933 veces.

Controlar con el mando a distancia del televisor el volumen de un amplificador viejo y la propia tv (Con arduino nano + un sensor IR reutilizado)

Esquema para integrar el controlador de volumen dentro de un amplificador viejo junto a un conversor de digital (spdif) a analógico. La intención de este proyecto es poder controlar el volumen de la tele nueva que no tiene salida analógica a través del amplificador viejo y con el propio mando de la tele.

El proyecto está basado en otro existente de Vitim(victornpb) y que se puede encontrar en la siguiente dirección: http://www.instructables.com/id/Remote-Volume-Control-for-old-stereo-amp/
El proyecto original está pensado para construir el control de volumen fuera del amplificador y mi proyecto dentro del amplificador.

A continuación pongo el video y debajo del video encontrareis el esquema y el código del sketch así como los links de descarga de las librerías.

Esquema

Sketch

 

Sketch para controlar el volumen mediante un mando a distancia

El sistema de control está basado en el controlador de volumen IC PT2257 y un sensor IR común. PT2257 Datasheet: http://www.princeton.com.tw/Portals/0/Product/PT2257.pdf

Este código a sido creado por Javier Vicente Medina (jvm.Bricobit.com) 07/01/2018 utilizando como referencia el proyecto y código creado por Víctor NPB, el 11/09/2014 el cual puede ser visitado desde http://www.instructables.com/id/Remote-Volume-Control-for-old-stereo-amp/

La libreria para controlar el IC PT2257 – la podeis descargar desde: https://github.com/victornpb/Evc_pt2257
La libreria para interactuar con el sensor IR la podeis descargar desde: https://github.com/z3t0/Arduino-IRremote
Una vez descargadas descomprimir y colocar en la carpeta libraries de vuestro arduino.

La librería está configurada para utilizar los siguientes pines de arduino por defecto:
Conecta el puerto -> 5 SCL(RELOJ) del PT2257 al puerto analógico de arduino nano -> A0
Conecta el puerto -> 4 SDA(DATOS) del PT2257 al puerto analógico de arduino nano -> A1

Métodos disponibles de la librería
evc_setVolume(0) Establece para los dos canales, la atenuación a 0db (Es decir el volumen máximo)
evc_setVolume(79) Establece para los dos canales la atenuación a 79db (Es decir el volumen mínimo)
evc_setVolumeRight(15) Establece solo la atenuación para el canal derecho a 15
evc_setVolumeLeft(15) Establece solo la atenuación para el canal izquierdo 15
evc_mute(true) Silencia los dos canales a 95dB
evc_mute(false) Quita el silencio y deja el volumen como estaba antes de ser silenciado
evc_off() Apaga el IC y guarda en memoria el volumen actual para cuando vuelva a encenderse ? (No sé si funciona)

IMPORTANTE!! LA LIBRERIA Evc_pt2257.h esta desactualizada y solo funciona con la versión 1.6.9 del IDE de arduino, con cualquier otra versión superior el compilador da error.
Para descargaros la versión del IDE de arduino 1.6.9 podéis hacerlo desde https://www.arduino.cc/en/Main/OldSoftwareReleases
Si ya teneis la ultima instalada, podeis descargar he instalar por separado la versión sin instalador portable.

 

El integrado pt2257 yo lo compre aqui muy barato y con envio gratuito, ya sabeis si no teneis prisa… https://es.aliexpress.com/item/I2C-2-channels-digital-volume-controller-IC-PT2257-NEW/32802067364.html?spm=a2g0s.9042311.0.0.485rTT

Y el arduino Nano aquí https://es.aliexpress.com/item/Freeshipping-1pcs-lot-Nano-3-0-controller-compatible-for-arduino-nano-CH340-USB-driver-NO-CABLE/32804787481.html?spm=a2g0s.9042311.0.0.485rTT

No es original pero funciona muy bien, si realmente fuera a utilizarlo en un proyecto serio, por ejemplo para comercializarlo, si que me plantearia utilizar el arduino nano original, pero para hacer inventos y chapuzas no me apetece gastar 30€ por cada arduino nano original.

Yo compre 2 de oferta por 1.50€ es decir pagué 3€ en total con envió incluido, ahora no están de oferta pero  2€ por cada uno sigue siendo barato mas 60 céntimos de envió 2.65€, aunque podéis estar al tanto de cuando los ponen en oferta.

Si aun asi no estáis convencidos de comprar un arduino chino podéis colaborar con el proyecto arduino comprándolo original desde bricogeek http://tienda.bricogeek.com/arduino/12-arduino-nano-8058333490342.html

 

Haasta otra Amigoooos!!!

6 comments on “Controlar con el mando a distancia del televisor el volumen de un amplificador viejo y la propia tv (Con arduino nano + un sensor IR reutilizado)

  • Avatar

    Hola, estoy intentando construir este proyecto, pero el código me da errores múltiples a la hora de compilar. ¿Qué es lo que puedo estar haciendo mal?

    Arduino:1.6.9 (Windows 10), Tarjeta:»Arduino/Genuino Uno»

    C:\Users\info\AppData\Local\Temp\ccjdCx9q.ltrans1.ltrans.o: In function i2c_write':

    C:\Users\info\Dropbox\Sinergetica 1\Arduino\Arduino\libraries\Evc_pt2257/SoftI2CMaster.h:432: undefined reference to ass_i2c_delay_half’

    C:\Users\info\Dropbox\Sinergetica 1\Arduino\Arduino\libraries\Evc_pt2257/SoftI2CMaster.h:432: undefined reference to ass_i2c_wait_scl_high'

    C:\Users\info\Dropbox\Sinergetica 1\Arduino\Arduino\libraries\Evc_pt2257/SoftI2CMaster.h:432: undefined reference to ass_i2c_delay_half’

    C:\Users\info\Dropbox\Sinergetica 1\Arduino\Arduino\libraries\Evc_pt2257/SoftI2CMaster.h:432: undefined reference to ass_i2c_delay_half'

    C:\Users\info\Dropbox\Sinergetica 1\Arduino\Arduino\libraries\Evc_pt2257/SoftI2CMaster.h:432: undefined reference to ass_i2c_wait_scl_high’

    C:\Users\info\Dropbox\Sinergetica 1\Arduino\Arduino\libraries\Evc_pt2257/SoftI2CMaster.h:432: undefined reference to ass_i2c_delay_half'

    C:\Users\info\AppData\Local\Temp\ccjdCx9q.ltrans1.ltrans.o: In function ass_i2c_stop’:

    C:\Users\info\Dropbox\Sinergetica 1\Arduino\Arduino\libraries\Evc_pt2257/SoftI2CMaster.h:356: undefined reference to ass_i2c_delay_half'

    C:\Users\info\Dropbox\Sinergetica 1\Arduino\Arduino\libraries\Evc_pt2257/SoftI2CMaster.h:356: undefined reference to ass_i2c_delay_half’

    C:\Users\info\Dropbox\Sinergetica 1\Arduino\Arduino\libraries\Evc_pt2257/SoftI2CMaster.h:356: undefined reference to ass_i2c_wait_scl_high'

    C:\Users\info\Dropbox\Sinergetica 1\Arduino\Arduino\libraries\Evc_pt2257/SoftI2CMaster.h:356: undefined reference to ass_i2c_delay_half’

    C:\Users\info\AppData\Local\Temp\ccjdCx9q.ltrans2.ltrans.o: In function i2c_start(unsigned char) [clone .constprop.37]':

    C:\Users\info\Dropbox\Sinergetica 1\Arduino\Arduino\libraries\Evc_pt2257/SoftI2CMaster.h:283: undefined reference to ass_i2c_wait_scl_high’

    C:\Users\info\Dropbox\Sinergetica 1\Arduino\Arduino\libraries\Evc_pt2257/SoftI2CMaster.h:283: undefined reference to ass_i2c_delay_half'

    C:\Users\info\Dropbox\Sinergetica 1\Arduino\Arduino\libraries\Evc_pt2257/SoftI2CMaster.h:283: undefined reference to ass_i2c_write’

    collect2.exe: error: ld returned 1 exit status

    Se encontraron múltiples librerías para «IRremote.h»
    Usado: C:\Users\info\Dropbox\Sinergetica 1\Arduino\Arduino\libraries\IRremote
    No usado: C:\Program Files (x86)\Arduino\libraries\RobotIRremote
    exit status 1
    Error compilación en tarjeta Arduino/Genuino Uno.

    Gracias y un saludo!!

    Reply
    • Avatar
      BRICOBIT says:

      Hola Juan, seguro que estas utilizando la versión 1.6.9 del IDE de Arduino? cualquier otra versión el compilador da error con la librería Evc_pt2257.h

      Reply
  • Avatar

    Hola! Quería preguntarte si sabes que CI puedo utilizar si quiero reducir el volumen pero de 5 canales, pensé en poner 3 CI de los que usaste y al momento de bajar o subir volumen que la condificion if afectarán en los 3 CI, pero como puedo definir 3 al mismo tiempo? Como viene predefinido los pines que usara, como puedo definir los otros dos CI?

    Reply
    • Avatar
      BRICOBIT says:

      Hola Max, yo solo encontré ese integrado con información suficiente para poderlo utilizar, no sé si abran otros con capacidad de controlar más canales, lo de utilizar 3 integrados como el que use yo podría funcionar, para ello dependiendo del integrado que quieras controlar el volumen deberás cambiar los pines de salida de manera dinámica, luego tendrás que replicar el circuito por 3, porque me imagino que lo que quieres es controlar el volumen de 3 canales por separado, es una idea que yo creo que pude funcionar, por defecto la librería viene configurada para escuchar por los siguientes puertos al IC

      Conecta el puerto -> 5 SCL(RELOJ) del PT2257 al puerto analógico de arduino nano -> A0
      Conecta el puerto -> 4 SDA(DATOS) del PT2257 al puerto analógico de arduino nano -> A1

      Entonces tu deberías conectar los otros dos IC uno en A2 y A3 y el otro IC en A4 y A5

      Después para poder recuperar información de los 3 IC o poderles enviar datos para subir o bajar volumen, tendrás que arreglártelas para enviar o recibir la seña por unos puertos u otros cambiándolos dinámicamente, no se si la librería tendrá alguna función ya prepara que te permita cambiar de puertos en tiempo de ejecución, si no tendrás que destripar la librería y añadirle tu esa funcion, un saludo amigo

      Reply
  • Avatar

    Hola

    Intento ver cuales son los Códigos de mi control pero cuando desconecto esto da error

    //Serial.println(irrecv.decode(&results);

    Error
    expected primary-expression before ‘/’ token

    Reply
  • Avatar
    Juan Jimenez says:

    Me puedes ayudar a elaborar un controlador de volumen con salida 3.5mm AUX estéreo o con RCA sin el convertidor de Audio óptico mejor dicho

    Reply

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.