1

Тема: xl4015

http://forum.rcl-radio.ru/uploads/images/2024/03/02a3e58fe780ba17e252c9a95e18c12f.png


#define KALL_I_IZ 1.200 
#define KALL_U_IZ 0.730 

#include <Wire.h> 
#include <U8glib.h>            // https://github.com/olikraus/u8glib/
  
  U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST);

  int n,m,m1;
  float i_dig,u_dig,i_dig1;
  float u_iz,i_iz,i_iz1;
  long i_sum,u_sum,i_sum1;
  bool w=1;

void setup(){
  delay(200);
  Wire.begin();
  analogReadResolution(12);// АЦП 12 БИТ
  analogReference(DEFAULT);
  pinMode(A0,INPUT);
  pinMode(A1,INPUT);
  pinMode(A2,INPUT);
  pinMode(13,OUTPUT);
  u8g.firstPage();  
   do {
  u8g.setFont(u8g_font_profont12r); 
  u8g.drawStr(30,10,"POWER SUPPLY");
  u8g.drawStr(30,25,"0-30V 0-3A");
  u8g.drawStr(30,55,"rcl-radio.ru");
  } while( u8g.nextPage() );
  delay(2000);
  }

void loop(){
  i_dig = analogRead(A0);
  i_sum = i_sum+i_dig;
  n++;if(n>9){n=0;i_iz=i_sum/10;i_sum=0;} 


  u_dig = analogRead(A1);
  u_sum = u_sum+u_dig;
  m++;if(m>9){m=0;u_iz=u_sum/10;u_sum=0;w=1;} 

  i_dig1 = analogRead(A2);
  i_sum1 = i_sum1+i_dig1;
  m1++;if(m1>9){m1=0;i_iz1=i_sum1/10;i_sum1=0;} 

  if(i_iz*1.05>=i_iz1){digitalWrite(13,HIGH);}else{digitalWrite(13,LOW);}

  if(w==1){
  u8g.firstPage();  
   do {
  u8g.drawLine(0, 26, 128, 26);u8g.drawLine(0, 53, 128, 53);
  u8g.setFont(u8g_font_profont29r); 
  u8g.drawStr(0,22,"U");u8g.setPrintPos(35, 22);u8g.print(u_iz*KALL_U_IZ/100.0,1);u8g.drawStr(110,22,"V");
  u8g.drawStr(0,50,"I");u8g.setPrintPos(35, 50);u8g.print(i_iz*KALL_I_IZ/1000.0,2);u8g.drawStr(110,50,"A");
  u8g.setFont(u8g_font_profont12r);
  u8g.setPrintPos(75, 64);u8g.print(i_iz1*KALL_I_IZ/1000.0,2);
  u8g.drawStr(15,64,"I stab = ");u8g.drawStr(105,64,"A");

  } while( u8g.nextPage() );
  }
  }    

2

Re: xl4015

Фото проекта

http://forum.rcl-radio.ru/uploads/images/2024/03/fb9dfdccb932220372e5d07a4d295a61.png

http://forum.rcl-radio.ru/uploads/images/2024/03/fc50755fbcd2108bd5d7d29b6209c755.png

http://forum.rcl-radio.ru/uploads/images/2024/03/a933e3729e61db0a7592689dd9a8c8e8.png

http://forum.rcl-radio.ru/uploads/images/2024/03/88cb881899a2c6c538b64e7418512228.png

http://forum.rcl-radio.ru/uploads/images/2024/03/6596010cb5351664ee0caa64fa2fdd01.png

http://forum.rcl-radio.ru/uploads/images/2024/03/604e67b9a13c86851a62f594804ecfb9.png

http://forum.rcl-radio.ru/uploads/images/2024/03/1b2078ec2dbcc6cbfe4c6b54ae6f59a0.png

http://forum.rcl-radio.ru/uploads/images/2024/03/169769e7cd115b04cb434ee28686b19c.png

http://forum.rcl-radio.ru/uploads/images/2024/03/d0bde7511c6012065334ebb17a385959.png

Нагрузка

http://forum.rcl-radio.ru/uploads/images/2024/03/61a3351e6c1ab4332dcff9f1aa92592a.png

3 (2024-07-19 16:55:02 отредактировано sanj76a)

Re: xl4015

1. почему вы применили A1 LM393, а A2 LM358?
     (почему разные операционники)

2. А можно-ли вместо Р1,Р2 вставить энкодер, как сдесь

     http://rcl-radio.ru/?p=131561

4

Re: xl4015

было бы намного лучше, если бы показания дисплея были как здесь:
http://rcl-radio.ru/?p=131561
http://forum.rcl-radio.ru/uploads/images/2024/07/1484e2225e2b6af642bb9af0d9e7c0af.png
(жду из китая детали, как только будут начну собирать, а пока вопросы...)

5

Re: xl4015

sanj76a пишет:

1. почему вы применили A1 LM393, а A2 LM358?
     (почему разные операционники)

2. А можно-ли вместо Р1,Р2 вставить энкодер, как сдесь

     http://rcl-radio.ru/?p=131561

1. Компаратор и ОУ
2.Можно, но нужно два АЦП MCP4725, чтобы была возможность управления энкодером.

6

Re: xl4015

на мой вопрос, про энкодер вы ответили:

...2.Можно, но нужно два АЦП MCP4725, чтобы была возможность управления энкодером.

А как же здесь, АЦП нет http://rcl-radio.ru/?p=131518

7

Re: xl4015

Там регулировка реализована на PWM сигнале, что вызвало сильные помехи, точность измерения тока и напряжения очень низкие. Не получится сделать токовую стабилизацию на должном уровне.

Если применить ЦАП , то регулировка будет как с резисторами, без помех, точность измерения тока и напряжения очень высокая, токовая стабилизация будет на должном уровне.

8

Re: xl4015

вы писали:
...Информация об установленном выходном напряжении, ток нагрузки  и режимы работы будут выводиться на дисплей OLED 1.3 128×64 (чип драйвера — SH1106  I2C).

А можно поточнее расписать ,что отображает индикатор. Где установленное, а где измеренное U и I.
Было бы хорошо если б отображалось и установленное и измеренное U,I и I стабилизации, как я предлагал выше:
Сообщений: 594

Разберусь с LGT, затем начну собирать, а пока хочу выяснить непонятные моменты.

9

Re: xl4015

Измеренное крупные цифры, установленное мелкие.

10 (2024-08-07 11:27:11 отредактировано sanj76a)

Re: xl4015

Если смотреть выше ваши выставленные фото, то мелким шрифтом прописан ток
стабилизации, а где напряжение?
Я уже поднимал этот вопрос, Сообщение: 596

11

Re: xl4015

Напряжение есть только в другом проекте, в этом нет отображения установленного напряжения, только измеренное.

12

Re: xl4015

Нет, это только для линейного регулятора http://rcl-radio.ru/?p=131561
Для ШИМ регулятора нужны 2 ЦАП чтобы убрать резисторы регулировки тока и напряжения и поставить вместо них один энкодер.

13

Re: xl4015

Эсли выставленное напряжение соответствует измеренному, зто одно.
Но когда работает стабилизация тока, то измеренное не соответствует выставленному напряжению, и это несоответствие мы не видим

14

Re: xl4015

liman324 пишет:

Нет, это только для линейного регулятора http://rcl-radio.ru/?p=131561
Для ШИМ регулятора нужны 2 ЦАП чтобы убрать резисторы регулировки тока и напряжения и поставить вместо них один энкодер.

А причем тут энкодер, разговор про отображение тока и напряжения

15

Re: xl4015

В проекте для xl4015 напряжение на дисплей выводится измеренной, при токовой стабилизации измеренное напряжение будет иметь фактическое значение. Надо просто измерить регулирующее напряжение и пересчитать его, тем самым получим выставленное значение напряжения.

16

Re: xl4015

liman324 пишет:

В проекте для xl4015 напряжение на дисплей выводится измеренной, при токовой стабилизации измеренное напряжение будет иметь фактическое значение. Надо просто измерить регулирующее напряжение и пересчитать его, тем самым получим выставленное значение напряжения.

что-то, нет желания пересчитывать, просто хочется посмотреть и увидеть...

17 (2024-08-07 12:04:59 отредактировано sanj76a)

Re: xl4015

итак окончательный вопрос. Сможете сделать отображение установленного и измеренного тока и напряжения в этом проекте?
Хотелось бы повторить, но не устраивает отображение информации на ЛСД

18

Re: xl4015

У меня нет возможности проверить скетч в железе, Вам придется самому тестировать и подобрать коэффициент для измерения установленного напряжения.

Вход А3 нужно подключить к резистору регулировки напряжения, аналогично как сделано при измерении тока стабилизации.

http://forum.rcl-radio.ru/uploads/images/2024/08/b98233ebf02b61c82673078668e82705.png

#define KALL_I_IZ 1.200 
#define KALL_U_IZ 0.730 
#define KALL_U_IZ1 0.730 

#include <Wire.h> 
#include <U8glib.h>            // https://github.com/olikraus/u8glib/
  
  U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST);

  int n,m,m1,m2;
  float i_dig,u_dig,i_dig1,u_dig1;
  float u_iz,i_iz,i_iz1,u_iz1;
  long i_sum,u_sum,i_sum1,u_sum1;
  bool w=1;

void setup(){
  delay(200);
  Wire.begin();
  analogReadResolution(12);// АЦП 12 БИТ
  analogReference(DEFAULT);
  pinMode(A0,INPUT);
  pinMode(A1,INPUT);
  pinMode(A2,INPUT);
  pinMode(A3,INPUT);
  pinMode(13,OUTPUT);
  u8g.firstPage();  
   do {
  u8g.setFont(u8g_font_profont12r); 
  u8g.drawStr(30,10,"POWER SUPPLY");
  u8g.drawStr(30,25,"0-30V 0-3A");
  u8g.drawStr(30,55,"rcl-radio.ru");
  } while( u8g.nextPage() );
  delay(2000);
  }

void loop(){
  i_dig = analogRead(A0);
  i_sum = i_sum+i_dig;
  n++;if(n>9){n=0;i_iz=i_sum/10;i_sum=0;} 


  u_dig = analogRead(A1);
  u_sum = u_sum+u_dig;
  m++;if(m>9){m=0;u_iz=u_sum/10;u_sum=0;w=1;} 

  i_dig1 = analogRead(A2);
  i_sum1 = i_sum1+i_dig1;
  m1++;if(m1>9){m1=0;i_iz1=i_sum1/10;i_sum1=0;} 

  u_dig1 = analogRead(A3);
  u_sum1 = u_sum1+u_dig1;
  m2++;if(m2>9){m2=0;u_iz1=u_sum1/10;u_sum1=0;} 

  if(i_iz*1.05>=i_iz1){digitalWrite(13,HIGH);}else{digitalWrite(13,LOW);}

  if(w==1){
  u8g.firstPage();  
   do {
  u8g.drawLine(0, 26, 128, 26);u8g.drawLine(0, 53, 128, 53);
  u8g.setFont(u8g_font_profont29r); 
  u8g.drawStr(0,22,"U");u8g.setPrintPos(30, 22);u8g.print(u_iz*KALL_U_IZ/100.0,1);
  u8g.drawStr(0,50,"I");u8g.setPrintPos(30, 50);u8g.print(i_iz*KALL_I_IZ/1000.0,2);
  u8g.setFont(u8g_font_profont12r);
  u8g.setPrintPos(100, 50);u8g.print(i_iz1*KALL_I_IZ/1000.0,2);
  u8g.setPrintPos(100, 22);u8g.print(u_iz1*KALL_U_IZ1/100.0,1);

  } while( u8g.nextPage() );
  }
  }    

19

Re: xl4015

хорошо, займусь, результаты буду выкладывать.

20 (2024-08-07 12:58:17 отредактировано sanj76a)

Re: xl4015

вот беда, компаратора нету, какие изменения сделать если использовать ОУ?
как применение ОУ скажется на конструкции?

21

Re: xl4015

нужен компаратор, если его заменить на ОУ то работать не будет

22 (2024-08-07 13:34:01 отредактировано sanj76a)

Re: xl4015

Вы писали:
При применении шунта с сопротивлением отличным от указанного на схеме, подберите коэффициент усиления ОУ LM358 таким образом, что бы выходное напряжение ОУ не превышало 5 В......

....не превышало 5 В - сколько?  3в,4в,4.9в?
в каких пределах?

23

Re: xl4015

При максимальном токе в 3А на выходе ОУ напряжение должно быть близко к 5В но не превышать 5В иначе можно повредить аналоговый вход контроллера

24

Re: xl4015

не могу понять почему не находит библиотеку

Arduino: 1.8.19 (Windows 10), Плата:"LGT8F328, 64 (normal), External 32MHz, 32, 328P-LQFP32 (e.g. MiniEVB nano-style or WAVGAT), 57600"



In file included from D:\УСТРОЙСТВА\БП_LX4015\sketch_feb06a\sketch_feb06a.ino:8:0:

D:\Arduino_1.8.19\libraries\U8glib/U8glib.h:42:10: fatal error: u8g.h: No such file or directory

#include "u8g.h"

          ^~~~~~~

compilation terminated.

exit status 1

Ошибка компиляции для платы LGT8F328.



Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"

25

Re: xl4015

https://github.com/olikraus/u8glib.git