X9C503 funciona con ESP32??

Arduino, STM32 (Maple), ESP8266, ESP32, etc
lechuquilla
Mensajes: 4
Registrado: 04 May 2024, 02:31
Agradecido: 0
Agradecimiento recibido: 3 veces

X9C503 funciona con ESP32??

Mensaje sin leer por lechuquilla »

No consigo que X9C503 funcione con ESP32 pero si con Arduino Mega.

Que necesito --> Poder manejar el X9C503 para bajar el volumen de una entrada de línea de audio. No quiero usar potenciómetro manuales comunes.

Esquema X9C503:

INC__| o o | VCC
U/D__| o o | CS
RH___| o o | RL
GND__| o o | Rwiper


En mi caso:

INC------| o o | VCC (5v)
U/D------| o o | GND
Audio in | o o | GND
GND------| o o | Salida


En Arduino Mega conecto todo directamente a la placa y el funcionamiento es correcto.

En ESP32 si lo conecto a la placa no funciona, así que he usado el diodo 2N3904 para los pines 'INC' y 'U/D' (también he probado con 'CS' pero Arduino Mega lo hace bien estando a tierra), y funciona pero no lo hace bien, describo el problema:

Hay que introducir valores entre 0 y 99, y en general lo hace bien, para valores bajos el volumen baja y para valores altos el volumen sube. El problema lo detecté introduciendo siempre el mismo valor.

En este caso fue el '91', si lo introduzco varias veces seguidas obtengo distintos resultados, normalmente el volumen se mantiene constante pero a veces sube, otras baja e incluso se produce el silencio total

Con Arduino Mega introduzco el '91' 500 veces y el
volumen no cambia nunca, es constante y su funcionamiento es siempre correcto.

¿Cuál puede ser el problema?
¿Que otro componente puedo usar?

Como alternativa he probado con el FM62429, con ESP32 funciona correctamente, pero tiene la función de amplificar que no me viene bien. Para la entrada de línea ya uso resistencias de 22kΩ, luego el potenciómetro y por último el MSGEQ7, no tiene mucho sentido cambiar un potenciómetro para bajar el voltaje y sustituirlo por un componente que puede amplificar. Puedo limitar por código el FM62429 por ejemplo al 60% y sólo usarlo para bajar el volumen aunque no creo que sea una solución muy elegante.

Audio Line In -> resistencias de 22kΩ-> X9C503 -> MSGEQ7
Audio Line In -> resistencias de 22kΩ-> FM62429 -> MSGEQ7

Alguna idea o sugerencia?

Código: Seleccionar todo

#include "X9C10X.h"
#define CSPIN 33
#define INCPIN 14
#define UDPIN 27

X9C503 pot;

void setup() {
  Serial.begin(9600);
  pot.begin(INCPIN, UDPIN, CSPIN);  //  pulse, direction, select
  Serial.println("Introduce un valor entre 1 y 99");
}

void loop() {
  if(Serial.available() != 0){
    int value = Serial.parseInt();
    if (value != 0) {
      pot.setPosition(value, true);
      delay(30);
      Serial.print("Valor introducido: ");
      Serial.println(value);
    }
  }
  delay(100);
}
Estos usuarios agradecieron al autor lechuquilla por el mensaje:
Naguissa
Valoración: 33%
Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 507
Registrado: 04 Jul 2016, 11:17
Agradecido: 110 veces
Agradecimiento recibido: 134 veces

Re: X9C503 funciona con ESP32??

Mensaje sin leer por Naguissa »

Por lo que he visto en el datasheet del X9C503 funciona a 5V. El Arduino Mega también, pero el ESP es 3,3V. Muy probablemente esté teniendo problemas con las señales.

Si no lo has hecho, prueba de alimentar el X9C503 a 5V, aunque tampoco te asegura que funcione correctamente. De no ser así necesitarás, además, un convertidor de nivel de señal.
lechuquilla
Mensajes: 4
Registrado: 04 May 2024, 02:31
Agradecido: 0
Agradecimiento recibido: 3 veces

Re: X9C503 funciona con ESP32??

Mensaje sin leer por lechuquilla »

Hasta donde he podido averiguar el X9C503 que tengo en mis manos trabaja a 5V, si se conecta a un Arduino Mega funciona correctamente, pero para poder usarlo en ESP32 hay que hacer uso de transistores.

El problema es que no tengo mucha experiencia y no sabía que con los transistores tenía que usar las resistencias de 4k7 a tierra para que pueda alcanzar el estado LOW. Ahora funciona correctamente, para la misma entrada siempre la misma salida.

A tener en cuenta que el X9C503 es uno barato comprado en AliExpress, compré 4 y 1 no funciona.

Ten en cuenta que lo mismo que se ha hecho con 'INC' Y 'U/D' debes hacerlo con 'CS' si quieres que el valor seleccionado de la resistencia se almacene. Yo no necesito que persista así que lo dejo a tierra y en el código selecciono un pin libre que no vaya a usar. Aunque el pin no se vaya a usar no se puede seleccionar cualquiera que esté libre, si seleccionas un pin y no es bueno no te preocupes, cada vez que intentes cambiar el valor de la resistencia te mostrará un mensaje de error por consola y así podrás seleccionar otro que no falle.

El código que lo hace funcionar es el mismo que publiqué al inicio


Imagen
Estos usuarios agradecieron al autor lechuquilla por el mensaje:
Naguissa
Valoración: 33%
lechuquilla
Mensajes: 4
Registrado: 04 May 2024, 02:31
Agradecido: 0
Agradecimiento recibido: 3 veces

Re: X9C503 funciona con ESP32??

Mensaje sin leer por lechuquilla »

Naguissa escribió: 09 May 2024, 07:49 Por lo que he visto en el datasheet del X9C503 funciona a 5V. El Arduino Mega también, pero el ESP es 3,3V. Muy probablemente esté teniendo problemas con las señales.

Si no lo has hecho, prueba de alimentar el X9C503 a 5V, aunque tampoco te asegura que funcione correctamente. De no ser así necesitarás, además, un convertidor de nivel de señal.
Gracias Naguissa! Probé a usarlo a 5V por medio de los transistores, pero mi problema era otro, no sabía manejar bien el transistor porque hay que ponerle una resistencia a tierra para que pueda tomar el valor LOW. Cuando aprueben la respuesta podrás ver lo que te digo

Un saludo!
Estos usuarios agradecieron al autor lechuquilla por el mensaje:
Naguissa
Valoración: 33%
Avatar de Usuario
Naguissa
Administrador del Sitio
Mensajes: 507
Registrado: 04 Jul 2016, 11:17
Agradecido: 110 veces
Agradecimiento recibido: 134 veces

Re: X9C503 funciona con ESP32??

Mensaje sin leer por Naguissa »

En tu caso, pocas señales y todas de salida, la solución que has usado es perfecta.

En mi caso, por comodidad y porque ya tengo varios módulos por casa, propuse el conversor de nivel. Aunque es cierto que es un poco matar moscas a cañonazos también lo es que esos módulos son muy baratos, sencillos y funcionan muy bien.
  • Similar Topics
    Respuestas
    Vistas
    Último mensaje