Re: xl4015
Вот простой скетч - http://rcl-radio.ru/?p=130369
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
forum.rcl-radio.ru → Разное → xl4015
Вот простой скетч - http://rcl-radio.ru/?p=130369
запустил тест скетч
работает, но какие-то артефакты. Что-то со скетчем не то или неисправность?
У Вас точно OLED 1.3?
не знаю, такой
Попробуйте заменить строку
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
теперь все ОК!
У Вас OLED 0.96 с контроллером SSD1306
спасибо
Теперь бы перенести вверх нижнюю строку, вообще красиво будет.
Или повернуть изображение.
Есть такие ЛГТ, пытался собрать устройство в этой теме.
Взял новую ЛГТ, пытаюсь запустить тест ЛСД, ничего не работает. Во всех случаях такая картинка.
При запуске на Ардуино этого теста, ЛСД работает (как показано выше).
Может есть информация как включить в работу это ЛГТ.
Внесли изменения в скетч связанные с дисплеем?
Попробуйте заменить строку
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
Внесли изменения в скетч связанные с дисплеем?
Попробуйте заменить строку
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
Конечно менял!!
Вы же раньше писали об этом!
Загрузите I2C сканер, посмотрите определяется ли i2c адрес дисплея
Загрузите I2C сканер, посмотрите определяется ли i2c адрес дисплея
как это сделать?
http://forum.rcl-radio.ru/viewtopic.php?id=64
Загрузите скетч и откройте монитор порта
монитор порта показал 0х3С
Вот что на дисплее. Настройкой еще не занимался,
Напрягает цветовая схема (при заказе у китайцев что-то пропустил).Просто не разобрался думал цвета можно менять.
Потом почитал и понял, что цвета менять нельзя. Так это?
Если это так, то сделать в верхней строке ,желтым, установленные параметры: U-0.00 I-0.00 ,
а ниже, шрифтом покрупнее реальные показания на выходе U 0.00 I 0.00.
Или в одну или две строки
Так можно будет сделать ?
Лучше две строки -- измеренные показания
Сегодня - завтра постараюсь поправить скетч.
вот окончательно. Теперь настроить и посмотреть как будет выводиться измеренные данные.
ИЗМЕНЕНИЯ:
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");
u8g.drawStr(52,10,"V");
нужно так немного сдвинуть, при выводе показаний, показания перекрывают знак -V
#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() );
}
}
На двухцветном отлично смотрится. Жаль он мелковат.
Вопрос: питая операционник и компаратор 9В на выходе получаем те же 9В. Без стабилитронов по входам Ардуино ей может поплохеть.
Чем вызвано раздельное питание ОУ, компаратора и Ардуино?
Вопрос: питая операционник и компаратор 9В на выходе получаем те же 9В. Без стабилитронов по входам Ардуино ей может поплохеть.
По схеме только показания тока считываются с выхода ОУ, если все верно собрано и ток имеет программное ограничение, то напряжение на выходе ни когда не превысит 5 В.
Чем вызвано раздельное питание ОУ, компаратора и Ардуино?
При питании ОУ от 5 В, максимальное выходное напряжение будет немного меньше 5В, что приводит к снижению точности измерения тока.
Например максимальное выходное напряжение при питании ОУ от 5 В будет 4,2 В, а вход АЦП измеряет от 0 до 5 В 12 бит 0 - 4095. имеет место снижение точности, так как АЦП будет измерять в более узком диапазоне с потерей точности.
Также выходной сигнал с ОУ подается на вход компаратора, который связывает регулирующее напряжение стабилизации тока с показаниями тока. Проще подавать регулирующее напряжение от 0 до 5 В, чем от 0 до 4,2 В. При питании 5 В, регулирующее напряжение выше 4,2 В уже не будет действовать на компаратор.
forum.rcl-radio.ru → Разное → xl4015
Форум работает на PunBB, при поддержке Informer Technologies, Inc
|