26

Re: XL4016

Схема странная.
Особенно С7 и D2 - сопротивление бесполезно.

27

Re: XL4016

Вот более подробная схема http://forum.rcl-radio.ru/uploads/images/2025/06/f09af86f71a49e8d3296597b6d975f96.jpg

28

Re: XL4016

Добрый день!
Захотел собрать управляемый Arduino регулируемый стабилизатор напряжения и тока.
Вот ссылка с Вашего сайта - http://rcl-radio.ru/?p=131518
и не только эта, а и - http://rcl-radio.ru/?p=131682 и http://rcl-radio.ru/?p=132644
Меня интересует только один вопрос.
Изначально я взял на основу Arduino Nano.
С вывода Arduino я подавал на 2 вывод микросхемы LM393. Сделал все как на этой схеме. Единственное не использовал пока ни дисплей ни Энкодер. Напряжение устанавливал вводом значения в монитор порта. Код могу скинуть. Я его написал сам.
Пользовался как библиотекой расширеной для ШИМ от Алекса Гайвера (PWM_set(PIN_PWM_XL4016, Kpwm_XL4016);), так и встроенным командами analogWrite(pin, value). Потом перешел на плату ESP32-C3 PRO MINI, где используется команда ledcWrite(PIN_PWM_XL4016, Kpwm_XL4016);
Но заметил такую особенность. После выполнения команды PWM_set, analogWrite или ledcWrite должно пройти до 200 мс и только тогда на выходе стабилизатора, а именно на ноге 3 XL4016, появляется тот необходимый уровень напряжения, который был задан.

Т.е. эта схема, как я понимаю, имеет определенную инертность. Я уже начинал отслеживать специально и измерять это время, после которого на выходе устанавливается задаваемое напряжение.
Например:
    ledcWrite(PIN_PWM_XL4016, Kpwm_XL4016);
    for (int tt = 1; tt <= 70; tt++) {
      time1 = millis();
      delay( 10 );
      Serial.print(String("Uзад. = ")       +       U_zadan       +       " мВ");                       Serial.print("\t");
      Serial.print("Kpwm - ");                  Serial.print(Kpwm_XL4016);            Serial.print(" ед.");    Serial.print("\t\t");
      Serial.print("Uвх. = ");                 Serial.print( U_1 );                  Serial.print(" мВ");        Serial.print("\t");
      Serial.print("Uвых. = ");                Serial.print( Voltage_2(AVG) );       Serial.print(" мВ");        Serial.print("\t\t");
      time1 = millis() - time1;
      time2 = time2 + time1;
      Serial.print( time1 );          Serial.print("\t");    Serial.print( time2 );      Serial.println(" мс");
    }
Потом стал измерять напряжение именно на выходе ШИМ контроллера (Arduino и ESP32). Получается, что после команды PWM_set, analogWrite или ledcWrite должно пройти 50 мс, до установления задаваемого уровня.
Вот я и думаю, а нормально ли это? или я делаю что-то не так...
Я еще сделал код, который отслеживает выходное напряжение и в случае необходимости подстраивает напряжение и удерживает задаваемое. Это я к тому, что команда PWM_set, analogWrite или ledcWrite должна выполняться одна за другой с разным шагом подстройки и т.д. и тут ни как 200 мс не задумывается ждать.
Поясните пожалуйста, если возможно.