51

Re: xl4015

Вот простой скетч - http://rcl-radio.ru/?p=130369

52

Re: xl4015

http://forum.rcl-radio.ru/uploads/images/2024/08/649752c181ed6b5659718d9bc124be56.jpg
запустил тест скетч
работает, но какие-то артефакты. Что-то со скетчем не то или неисправность?

53

Re: xl4015

У Вас точно OLED 1.3?

54

Re: xl4015

http://forum.rcl-radio.ru/uploads/images/2024/08/66efe3bdde00864888f4286a1996b8dc.jpg

не знаю, такой

55

Re: xl4015

Попробуйте заменить строку

U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST);

на

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST);    // Fast I2C / TWI

56 (2024-08-26 00:52:07 отредактировано sanj76a)

Re: xl4015

теперь все ОК!
http://forum.rcl-radio.ru/uploads/images/2024/08/80d72fbf9f5d652158af8bc406d7bd44.jpg

57

Re: xl4015

У Вас OLED 0.96 с контроллером SSD1306

58

Re: xl4015

спасибо

59 (2024-08-26 09:44:36 отредактировано Karl2233)

Re: xl4015

Теперь бы перенести вверх нижнюю строку, вообще красиво будет.
Или повернуть изображение.

60

Re: xl4015

http://forum.rcl-radio.ru/uploads/images/2024/08/0e46a2ded04ccdad94c7d45f6e1b889d.jpg

Есть такие ЛГТ, пытался собрать устройство в этой теме.
Взял новую ЛГТ, пытаюсь запустить тест ЛСД, ничего не работает. Во всех случаях такая картинка.
При запуске на Ардуино этого теста, ЛСД работает (как показано выше).
Может есть информация как включить в работу это ЛГТ.

61

Re: xl4015

Внесли изменения в скетч связанные с дисплеем?

Попробуйте заменить строку

U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST);

на

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST);    // Fast I2C / TWI

62 (2024-08-30 22:44:03 отредактировано sanj76a)

Re: xl4015

liman324 пишет:

Внесли изменения в скетч связанные с дисплеем?

Попробуйте заменить строку

U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST);

на

U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST);    // Fast I2C / TWI


Конечно менял!!
Вы же раньше писали об этом!

63

Re: xl4015

Загрузите I2C сканер, посмотрите определяется ли i2c адрес дисплея

64

Re: xl4015

liman324 пишет:

Загрузите I2C сканер, посмотрите определяется ли i2c адрес дисплея

как это сделать?

65

Re: xl4015

http://forum.rcl-radio.ru/viewtopic.php?id=64

Загрузите скетч и откройте монитор порта

66

Re: xl4015

монитор порта показал 0х3С

67 (2024-08-31 20:02:55 отредактировано sanj76a)

Re: xl4015

http://forum.rcl-radio.ru/uploads/images/2024/08/92baeb2c7bc921c76c881e0140f408c7.jpg

Вот что на дисплее. Настройкой еще не занимался,
Напрягает цветовая схема (при заказе у китайцев что-то пропустил).Просто не разобрался думал цвета можно менять.
Потом почитал и понял, что цвета менять нельзя. Так это?
Если это так, то сделать в верхней строке ,желтым, установленные параметры: U-0.00  I-0.00 ,
а ниже, шрифтом покрупнее реальные показания   на выходе  U 0.00   I 0.00.
Или в одну или две строки
Так можно будет сделать ?

68 (2024-08-31 20:11:40 отредактировано sanj76a)

Re: xl4015

Лучше две строки -- измеренные показания

69

Re: xl4015

Сегодня - завтра постараюсь поправить скетч.

70 (2024-09-01 14:00:45 отредактировано sanj76a)

Re: xl4015

http://forum.rcl-radio.ru/uploads/images/2024/09/9c8ffaa45cb7346fe1baf791484e84bf.jpg

вот окончательно. Теперь настроить и посмотреть  как будет выводиться измеренные данные.

ИЗМЕНЕНИЯ:
  u8g.drawLine(0, 15, 128, 15);
  u8g.drawLine(0, 37, 128, 37);

  u8g.setFont(u8g_font_profont15r);
  u8g.drawStr(0,10,"U-");u8g.setPrintPos(20,10);u8g.print(u_iz1*KALL_U_IZ1/100.0,1);
  u8g.drawStr(65,10,"I-");u8g.setPrintPos(85,10);u8g.print(i_iz1*KALL_I_IZ/1000.0,2);

  u8g.setFont(u8g_font_profont12r);
  u8g.drawStr(45,10,"V");
  u8g.drawStr(117,10,"A");
 
  u8g.setFont(u8g_font_profont29r);
  u8g.drawStr(0,35,"U-");u8g.setPrintPos(30,35);u8g.print(u_iz*KALL_U_IZ/100.0,1);
  u8g.drawStr(0,60,"I-");u8g.setPrintPos(30,60);u8g.print(i_iz*KALL_I_IZ/1000.0,2);
 
  u8g.setFont(u8g_font_profont17r);
  u8g.drawStr(110,35,"V");u8g.drawStr(110,60,"A");

71 (2024-09-01 14:01:30 отредактировано sanj76a)

Re: xl4015

u8g.drawStr(52,10,"V");
нужно так немного сдвинуть, при выводе показаний, показания перекрывают знак -V

72

Re: xl4015

#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_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST);    // Fast I2C / TWI

  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, 16, 128, 16);//u8g.drawLine(0, 53, 128, 53);
  u8g.setFont(u8g_font_profont29r); 
  u8g.drawStr(0,40,"U");u8g.setPrintPos(35, 40);u8g.print(u_iz*KALL_U_IZ/100.0,1);u8g.drawStr(114,40,"V");
  u8g.drawStr(0,64,"I");u8g.setPrintPos(35, 64);u8g.print(i_iz*KALL_I_IZ/1000.0,2);u8g.drawStr(114,64,"A");
  u8g.setFont(u8g_font_profont12r);
  u8g.drawStr(0,12,"U");u8g.setPrintPos(20, 12);u8g.print(u_iz1*KALL_U_IZ1/100.0,1);
  u8g.drawStr(70,12,"I");u8g.setPrintPos(90, 12);u8g.print(i_iz1*KALL_I_IZ/1000.0,2);

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

73

Re: xl4015

На двухцветном отлично смотрится. Жаль он мелковат.

74

Re: xl4015

Вопрос: питая операционник и компаратор 9В на выходе получаем те же 9В. Без стабилитронов по входам Ардуино ей может поплохеть.
Чем вызвано раздельное питание  ОУ, компаратора и Ардуино?

75

Re: xl4015

Вопрос: питая операционник и компаратор 9В на выходе получаем те же 9В. Без стабилитронов по входам Ардуино ей может поплохеть.

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

Чем вызвано раздельное питание  ОУ, компаратора и Ардуино?

При питании ОУ от 5 В, максимальное выходное напряжение будет немного меньше 5В, что приводит к снижению точности измерения тока.
Например максимальное выходное напряжение при питании ОУ от 5 В будет 4,2 В, а вход АЦП измеряет от 0 до 5 В 12 бит 0 - 4095. имеет место снижение точности, так как АЦП будет измерять в более узком диапазоне с потерей точности.

Также выходной сигнал с ОУ подается на вход компаратора, который связывает регулирующее напряжение стабилизации тока с показаниями тока. Проще подавать регулирующее напряжение от 0 до 5 В, чем от 0 до 4,2 В. При питании 5 В, регулирующее напряжение выше 4,2 В уже не будет действовать на компаратор.