Estoy trabajando con un circuito que debería controlar la intensidad de varios LED utilizando los pines CTL y REF en un número de pieza del controlador buckpuck 3021-DE-1000 . Estoy usando un AD5204 digipot configurado como un reóstato entre la CTL y los pines REF en el buckpuck para modular la corriente vista en el terminal CTL, que a su vez modula la corriente que el buckpuck envía al LED (cuanto más alta es la corriente vista en CTL, más baja es la salida del LED). Estoy usando un Arduino para controlar el AD5204. El circuito completo que estoy investigando se muestra a continuación:
Creoquelapartepertinentedelcircuitoes:
No puedo hacer que los LED se enciendan. Los interruptores (SW-SPDT) y los BJT (Q1-3) se usan como encendido / apagado para los LED, mientras que el Digipot se supone que controla la intensidad de la salida del LED.
Mi idea inicial fue que no me estaba comunicando correctamente con el digipot, pero con un analizador lógico he confirmado que estoy enviando los comandos SPI correctos al AD5204. Este es el código que estoy usando (los pines Arduino 7,8 y 9 están escritos en alto para poner los BJT en corte, y los interruptores mecánicos están conectados al pin Arduino, no a GND, por lo que teóricamente la corriente en CTL debería estar dictando la salida del LED):
#include <SPI.h>
int cs = 10;
int address = 1;
int potval = 10;
void setup() {
pinMode(7,OUTPUT); digitalWrite(7,HIGH);
pinMode(8,OUTPUT); digitalWrite(8,HIGH);
pinMode(9,OUTPUT); digitalWrite(9,HIGH);
pinMode(cs,OUTPUT); digitalWrite(cs,HIGH);
SPI.begin();
}
void loop() {
digitalWrite(cs,LOW);
SPI.transfer(address);
SPI.transfer(potval);
digitalWrite(cs,HIGH);
delay(10);
}
Entonces estoy empezando a dudar que la comunicación con el AD5204 sea el problema, pero eso me deja bastante perdido. No estoy seguro de por qué los LED no se encienden, especialmente porque incluso si no me estaba comunicando con el AD5204, de forma predeterminada, todos los valores de los potes deberían estar configurados en rango medio (5kOhm).
En ese momento, los LED deberían estar encendidos, por lo que yo entiendo. ¿Hay algo que esté pasando por alto en el resto del circuito?
He intentado ser exhaustivo con la información que he proporcionado, pero disculpe de antemano si he omitido cosas e intentaré agregar la información lo antes posible, si lo he hecho.
EDIT
Bien, un par de cosas que he encontrado:
(1) Parece que no estoy cambiando el valor del limpiaparabrisas en el digipot; permanece en el valor predeterminado de 5kOhm, sin importar qué valor intente escribirle. Así que ese es un problema que necesito resolver.
(2) Al mismo tiempo, cuando el reómetro tiene un valor de 5kOhm, el LED debería estar encendido. He confirmado esto en una placa de pruebas con el mismo buckpuck que estoy usando en la PCB y en una olla rotativa mecánica: a 5 kOhm, el voltaje en el terminal CTL es ~ 1.23 V, y el LED está en su nivel más brillante.
(3) En la PCB con el circuito completo como se muestra en la imagen anterior, obtengo 4.3V en el terminal CTL para cada RDAC en el 5204, que no concuerda con (2).