Ok, entonces este es el esquema que propongo.
Descargo de responsabilidad: en la vida real, nunca harás nada de eso. Esto solo es bueno para un estudio detallado del controlador de dinero. Esto no es rentable, no es universal, no es muy eficiente en términos de potencia y no es nada simple. Si desea un diseño real, debe consultar el controlador IC buck de cualquier proveedor de descenso y leer las hojas de datos con precisión.
Descargo de responsabilidad 2: no estoy seguro de cuánto tiempo y cuán profundo podré explicar la teoría. Debes estudiar eso por ti mismo, no es tan difícil.
Entonces, en el esquema que propongo, tiene un interruptor MOSFET, inductor y capacitor de salida que hará un buen trabajo para PWM de 20 kHz (no creo que Arduino pueda hacerlo mejor), D1 permitirá que L1 siga conduciendo cuando el interruptor esta apagado
R3 y R4 proporcionarán retroalimentación. Configúrelos de modo que cuando la salida sea estable, el voltaje esté en el centro de su rango de ADC, probablemente sea de 1.65 V
Ahora lo que te hizo la mayoría de tus problemas. Para conducir M1 necesitas un voltaje mayor que Vs. Así que hay C2 que se precargará a VCC al principio, y una vez que su salida esté estable, con VOUT. Cuando se encenderá M1 y el voltaje en el nodo de conmutación aumentará a VIN, C2 aún se cargará y proporcionará voltaje VIN + VOUT, lo que permitirá mantener abierto M1.
U1 y U2 se utilizan para cargar y descargar rápidamente la puerta M1. Preste atención, yo uso optoacopladores AC. Para los optoacopladores de CC puede que necesite una entrada un poco diferente. ¡¡Bajo ninguna condición, abre ambos !! simplemente los destruirá. Considere la puerta lógica para evitar tal evento.
Selección de componentes: Defina qué voltaje y corriente necesita en la salida.
Seleccione el L1 para tener el 200% de IOUT
C1- 200% de VOUT.
D1: 200% de IOUT y 150% de VIN para polarización inversa, baja fuga, voltaje de avance mínimo.
C2- 200% de VOUT
C3- 150% de VIN
M1- VDS > 150% de VIN, Idrain > 150% de IOUT, VGS < 80% VOUT , VTH < 80% de VCC
Pruebas: Comience con VIN = 12V y PWM de 20kHz, 50% de ciclo de trabajo. Ponga la resistencia de potencia 100R como carga. Deberá medir aproximadamente 6 V, si todo está bien.
Control de bucle cerrado OK, esta es la parte más difícil. Sobre todo porque es toda una teoría, pero si tiene tiempo para descubrirlo, le proporcionaré algunas pautas básicas para crear un controlador PID con su Arduino.
Establecer VFB_Reference = 1.65V
Defina la interrupción que se llamará al comienzo de cada ciclo PWM
Pruebe el VFB exactamente 200 ns después del inicio de la interrupción
Establecer VFB_Error_Last = VFB_Error
Establecer VFB_Error = VFB_Sample - VFB_Reference
Establecer VFB_Integral = VFB_Integral + VFB_Error
Establecer VFB_Derivative = VFB_Error - VFB_Error_Last
Establecer Voltage_Command = A * VFB_Error + B * VFB_Inegral + C * VFB_Derivative
Convierta Voltage_Command a PWM_Command.
Preste atención: hago todos los cálculos en voltios. Esta es la mejor manera de depurar. Así que no olvide las conversiones de ADC a voltios, trabajando en punto flotante, etc. También la variable VFB_Integral debería limitarse; de lo contrario, podría rodar.
A, B y C son coeficientes que deberá ajustar. Puede ser cualquier cosa, depende tanto de la etapa de potencia como de la carga, pero también de lo bien que haga todo el circuito.
Tenga mucho cuidado con el muestreo de VFB. Debe ser lo más preciso y silencioso posible.
Prepárese para las sorpresas, como los excesos, etc. Para evitarlas, use el arranque suave: VFB_Reference comenzará con 0V y aumentará lentamente a 1.65V durante un tiempo prolongado, como 100 ms.
Diagnosticar sobretensión. Si ve VFB un 10% más alto que 1.65V, declare la condición de falla y establezca VFB_Reference a 0.
¡Buena suerte! Es un proyecto serio. Diría que, después de años en la industria, es factible, pero no trivial. Si tiene éxito, se convertirá (y lo digo en serio) en un verdadero especialista en el cambio de fuentes de alimentación y en un candidato realmente bueno para convertirse en un ingeniero de control, lo que a su vez es realmente bueno.