Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

LCD 2004 I2C часть экрана засветка

Вт фев 21, 2023 08:38:21

Здравствуйте уважаемые Гуру !

Только начал юзать ATmega328 (Arduino NANO).
Подключал LCD 2004 напрямую, все работало ОК !!!

Решил избавиться от лишних проводов и прикупил плату I2C для дисплея.

И вот что на экране....
Изображение

Выкручиваю контраст почти на максимум
Изображение

Если на максимум...
Изображение

идет срыв и при уменьшении контрастности экран не отображает цифры..

Подскажите где копать ???

Re: LCD 2004 I2C часть экрана засветка

Вт фев 21, 2023 18:29:42

Информации мало. Дайте свой программный код (или фрагмент кода для управления дисплея).
Понятия не имеем, что там написали как прогр. кода.

Re: LCD 2004 I2C часть экрана засветка

Ср фев 22, 2023 04:26:22

... Дайте свой программный код (или фрагмент кода для управления дисплея).


Код банальный , простейший...

Спойлер#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);

void setup(){
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("01234567890123456789");
lcd.setCursor(0, 1);
lcd.print("01234567890123456789");
lcd.setCursor(0, 2);
lcd.print("01234567890123456789");
lcd.setCursor(0, 3);
lcd.print("01234567890123456789");
}

void loop(){
}



Причем если в LOOP() выводить на экран динамическую информацию,
на экране появляются крякозяблы. Попытаюсь выложить видео....

Скетч динамического вывода...
Спойлер#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
#include <GyverBME280.h>
GyverBME280 bme; // Создание обьекта BME280

void setup() {
pinMode(LED_BUILTIN, OUTPUT);

// Инициализация дисплея
lcd.init();
lcd.backlight();

Serial.begin(9600);

Serial.println("Start BME280");
// запуск датчика и проверка на работоспособность
if (!bme.begin(0x76)) Serial.println("Error!");
} // SETUP END


void loop() {
digitalWrite(LED_BUILTIN, HIGH);

uint32_t sec = millis() / 1000ul; // полное количество секунд
int timeHours = (sec / 3600ul); // часы
int timeMins = (sec % 3600ul) / 60ul; // минуты
int timeSecs = (sec % 3600ul) % 60ul; // секунды

String stH = String(timeHours);
String stM = String(timeMins);
String stS = String(timeSecs);

if (stH.length()<2)
stH = "0" + String(timeHours);

if (stM.length()<2)
stM = "0" + String(timeMins);

if (stS.length()<2)
stS = "0" + String(timeSecs);

// переводим курсор на позицию колонка 0 строка 3
lcd.setCursor(12, 0);
// печатаем секунды с начала работы скетча:
lcd.print(stH+":"+stM+":"+stS);

lcd.setCursor(0,0);
lcd.print("T="+String(bme.readTemperature())+char(223)+"C");

lcd.setCursor(0,1);
lcd.print("H="+String(bme.readHumidity())+"%");

lcd.setCursor(0,2);
lcd.print("P="+String(pressureToMmHg(bme.readPressure()))+"mm");
lcd.setCursor(11,2);
lcd.print("A="+String(pressureToAltitude(bme.readPressure()))+"m");


lcd.setCursor(0,3);
lcd.print(String(3.14159265,9));

digitalWrite(LED_BUILTIN, LOW);
delay(1000);

}


Re: LCD 2004 I2C часть экрана засветка

Ср фев 22, 2023 06:27:51

Попробуйте маленькие задержки между командами > 10 мС, возможно библиотека не отслеживает освобождение шины, нужно дать задержку чтобы шина освободилась по таймауту

Re: LCD 2004 I2C часть экрана засветка

Ср фев 22, 2023 07:15:14

Попробуйте маленькие задержки между командами > 10 мС, возможно библиотека не отслеживает освобождение шины, нужно дать задержку чтобы шина освободилась по таймауту

Задержку сделал но симптомы теже...
Спойлер// переводим курсор на позицию колонка 0 строка 3
lcd.setCursor(12, 0);
// печатаем секунды с начала работы скетча:
lcd.print(stH+":"+stM+":"+stS);
delay(15);
lcd.setCursor(0,0);
lcd.print("T="+String(bme.readTemperature())+char(223)+"C");
delay(15);
lcd.setCursor(0,1);
lcd.print("H="+String(bme.readHumidity())+"%");
delay(15);
lcd.setCursor(0,2);
lcd.print("P="+String(pressureToMmHg(bme.readPressure()))+"mm");
delay(15);
lcd.setCursor(11,2);
lcd.print("A="+String(pressureToAltitude(bme.readPressure()))+"m");
delay(15);
lcd.setCursor(0,3);
lcd.print(String(3.14159265,9));

digitalWrite(LED_BUILTIN, LOW);
delay(500);


Главное почему левая верхняя часть экрана изначально слабая контрастность
Изображение
и почему срывается на букаряськи после примерно 20-30 выводов на экран

Добавлено after 24 minutes 23 seconds:
Я только начинаю пользоваться, не кидайте тапки сразу.

Вот Скетч
Спойлер//#include <LiquidCrystal.h>
//LiquidCrystal lcd(6,7,2,3,4,5);
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);
#include <GyverBME280.h>
GyverBME280 bme; // Создание обьекта BME280

// SETUP //////////////////////////////////////////
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
// Инициализация дисплея
//lcd.begin(20, 4); // 20-символов 4-строки
//lcd.clear(); // Очистка экрана
lcd.init();
lcd.backlight();

Serial.begin(9600);

Serial.println("Start BME280");
// запуск датчика и проверка на работоспособность
if (!bme.begin(0x76)) Serial.println("Error!");
} // SETUP END


void loop() {
digitalWrite(LED_BUILTIN, HIGH);

uint32_t sec = millis() / 1000ul; // полное количество секунд
int timeHours = (sec / 3600ul); // часы
int timeMins = (sec % 3600ul) / 60ul; // минуты
int timeSecs = (sec % 3600ul) % 60ul; // секунды

String stH = String(timeHours);
String stM = String(timeMins);
String stS = String(timeSecs);

if (stH.length()<2)
stH = "0" + String(timeHours);

if (stM.length()<2)
stM = "0" + String(timeMins);

if (stS.length()<2)
stS = "0" + String(timeSecs);

// переводим курсор на позицию колонка 0 строка 3
lcd.setCursor(12, 0);
// печатаем секунды с начала работы скетча:
lcd.print(stH+":"+stM+":"+stS);
delay(15);
lcd.setCursor(0,0);
lcd.print("T="+String(bme.readTemperature())+char(223)+"C");
delay(15);
lcd.setCursor(0,1);
lcd.print("H="+String(bme.readHumidity())+"%");
delay(15);
lcd.setCursor(0,2);
lcd.print("P="+String(pressureToMmHg(bme.readPressure()))+"mm");
delay(15);
lcd.setCursor(11,2);
lcd.print("A="+String(pressureToAltitude(bme.readPressure()))+"m");
delay(15);
lcd.setCursor(0,3);
lcd.print(String(3.14159265,9));

digitalWrite(LED_BUILTIN, LOW);
delay(500);

}


Вот лог компиляции
СпойлерUsing board &#39;nano&#39; from platform in folder: C:\Users\fast3\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Using core &#39;arduino&#39; from platform in folder: C:\Users\fast3\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Detecting libraries used...
"C:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\sketch\\STANSIONbar.ino.cpp" -o nul
Alternatives for Wire.h: [Wire Wire@1.0]
ResolveLibrary(Wire.h)
-> candidates: [Wire Wire@1.0]
"C:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\sketch\\STANSIONbar.ino.cpp" -o nul
Alternatives for LiquidCrystal_I2C.h: [LiquidCrystal I2C@1.1.2]
ResolveLibrary(LiquidCrystal_I2C.h)
-> candidates: [LiquidCrystal I2C@1.1.2]
"C:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-Ic:\\Users\\fast3\\Documents\\Arduino\\libraries\\LiquidCrystal_I2C-1.1.2" "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\sketch\\STANSIONbar.ino.cpp" -o nul
Alternatives for GyverBME280.h: [GyverBME280@1.5]
ResolveLibrary(GyverBME280.h)
-> candidates: [GyverBME280@1.5]
"C:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-Ic:\\Users\\fast3\\Documents\\Arduino\\libraries\\LiquidCrystal_I2C-1.1.2" "-Ic:\\Users\\fast3\\Documents\\Arduino\\libraries\\GyverBME280\\src" "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\sketch\\STANSIONbar.ino.cpp" -o nul
Using cached library dependencies for file: C:\Users\fast3\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\Wire\src\Wire.cpp
Using cached library dependencies for file: C:\Users\fast3\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\Wire\src\utility\twi.c
Using cached library dependencies for file: c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp
Using cached library dependencies for file: c:\Users\fast3\Documents\Arduino\libraries\GyverBME280\src\GyverBME280.cpp
Generating function prototypes...
"C:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-Ic:\\Users\\fast3\\Documents\\Arduino\\libraries\\LiquidCrystal_I2C-1.1.2" "-Ic:\\Users\\fast3\\Documents\\Arduino\\libraries\\GyverBME280\\src" "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\sketch\\STANSIONbar.ino.cpp" -o "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"C:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\builtin\\tools\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Компиляция скетча...
"C:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-Ic:\\Users\\fast3\\Documents\\Arduino\\libraries\\LiquidCrystal_I2C-1.1.2" "-Ic:\\Users\\fast3\\Documents\\Arduino\\libraries\\GyverBME280\\src" "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\sketch\\STANSIONbar.ino.cpp" -o "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\sketch\\STANSIONbar.ino.cpp.o"
Compiling libraries...
Compiling library "Wire"
Используем предварительно скомпилированный файл: C:\Users\fast3\AppData\Local\Temp\arduino-sketch-4C42037CB92C357B765ABE47B404526E\libraries\Wire\utility\twi.c.o
Используем предварительно скомпилированный файл: C:\Users\fast3\AppData\Local\Temp\arduino-sketch-4C42037CB92C357B765ABE47B404526E\libraries\Wire\Wire.cpp.o
Compiling library "LiquidCrystal I2C"
"C:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -Wall -Wextra -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-Ic:\\Users\\fast3\\Documents\\Arduino\\libraries\\LiquidCrystal_I2C-1.1.2" "-Ic:\\Users\\fast3\\Documents\\Arduino\\libraries\\GyverBME280\\src" "c:\\Users\\fast3\\Documents\\Arduino\\libraries\\LiquidCrystal_I2C-1.1.2\\LiquidCrystal_I2C.cpp" -o "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\libraries\\LiquidCrystal_I2C-1.1.2\\LiquidCrystal_I2C.cpp.o"
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp: In member function &#39;void LiquidCrystal_I2C::begin(uint8_t, uint8_t, uint8_t)&#39;:
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp:66:39: warning: unused parameter &#39;cols&#39; [-Wunused-parameter]
void LiquidCrystal_I2C::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) {
^~~~

Compiling library "GyverBME280"
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp: In member function &#39;void LiquidCrystal_I2C::setDelay(int, int)&#39;:
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp:307:39: warning: unused parameter &#39;cmdDelay&#39; [-Wunused-parameter]
void LiquidCrystal_I2C::setDelay (int cmdDelay,int charDelay) {}
^~~~~~~~
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp:307:52: warning: unused parameter &#39;charDelay&#39; [-Wunused-parameter]
void LiquidCrystal_I2C::setDelay (int cmdDelay,int charDelay) {}
^~~~~~~~~
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp: In member function &#39;uint8_t LiquidCrystal_I2C::init_bargraph(uint8_t)&#39;:
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp:310:50: warning: unused parameter &#39;graphtype&#39; [-Wunused-parameter]
uint8_t LiquidCrystal_I2C::init_bargraph(uint8_t graphtype){return 0;}
^~~~~~~~~
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp: In member function &#39;void LiquidCrystal_I2C::draw_horizontal_graph(uint8_t, uint8_t, uint8_t, uint8_t)&#39;:
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp:311:55: warning: unused parameter &#39;row&#39; [-Wunused-parameter]
void LiquidCrystal_I2C::draw_horizontal_graph(uint8_t row, uint8_t column, uint8_t len, uint8_t pixel_col_end){}
^~~
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp:311:68: warning: unused parameter &#39;column&#39; [-Wunused-parameter]
void LiquidCrystal_I2C::draw_horizontal_graph(uint8_t row, uint8_t column, uint8_t len, uint8_t pixel_col_end){}
^~~~~~
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp:311:84: warning: unused parameter &#39;len&#39; [-Wunused-parameter]
void LiquidCrystal_I2C::draw_horizontal_graph(uint8_t row, uint8_t column, uint8_t len, uint8_t pixel_col_end){}
^~~
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp:311:98: warning: unused parameter &#39;pixel_col_end&#39; [-Wunused-parameter]
void LiquidCrystal_I2C::draw_horizontal_graph(uint8_t row, uint8_t column, uint8_t len, uint8_t pixel_col_end){}
^~~~~~~~~~~~~
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp: In member function &#39;void LiquidCrystal_I2C::draw_vertical_graph(uint8_t, uint8_t, uint8_t, uint8_t)&#39;:
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp:312:53: warning: unused parameter &#39;row&#39; [-Wunused-parameter]
void LiquidCrystal_I2C::draw_vertical_graph(uint8_t row, uint8_t column, uint8_t len, uint8_t pixel_row_end){}
^~~
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp:312:66: warning: unused parameter &#39;column&#39; [-Wunused-parameter]
void LiquidCrystal_I2C::draw_vertical_graph(uint8_t row, uint8_t column, uint8_t len, uint8_t pixel_row_end){}
^~~~~~
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp:312:82: warning: unused parameter &#39;len&#39; [-Wunused-parameter]
void LiquidCrystal_I2C::draw_vertical_graph(uint8_t row, uint8_t column, uint8_t len, uint8_t pixel_row_end){}
^~~
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp:312:96: warning: unused parameter &#39;pixel_row_end&#39; [-Wunused-parameter]
void LiquidCrystal_I2C::draw_vertical_graph(uint8_t row, uint8_t column, uint8_t len, uint8_t pixel_row_end){}
^~~~~~~~~~~~~
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp: In member function &#39;void LiquidCrystal_I2C::setContrast(uint8_t)&#39;:
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp:313:45: warning: unused parameter &#39;new_val&#39; [-Wunused-parameter]
void LiquidCrystal_I2C::setContrast(uint8_t new_val){}
^~~~~~~

Используем предварительно скомпилированный файл: C:\Users\fast3\AppData\Local\Temp\arduino-sketch-4C42037CB92C357B765ABE47B404526E\libraries\GyverBME280\GyverBME280.cpp.o
Compiling core...
Using precompiled core: C:\Users\fast3\AppData\Local\Temp\arduino-core-cache\core_arduino_avr_nano_cpu_atmega328_3298eff961b564fab0b565cfdac762dc.a
Linking everything together...
"C:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-gcc" -Wall -Wextra -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p -o "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E/STANSIONbar.ino.elf" "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\sketch\\STANSIONbar.ino.cpp.o" "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\libraries\\Wire\\Wire.cpp.o" "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\libraries\\Wire\\utility\\twi.c.o" "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\libraries\\LiquidCrystal_I2C-1.1.2\\LiquidCrystal_I2C.cpp.o" "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E\\libraries\\GyverBME280\\GyverBME280.cpp.o" "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E/..\\arduino-core-cache\\core_arduino_avr_nano_cpu_atmega328_3298eff961b564fab0b565cfdac762dc.a" "-LC:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E" -lm
"C:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E/STANSIONbar.ino.elf" "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E/STANSIONbar.ino.eep"
"C:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-objcopy" -O ihex -R .eeprom "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E/STANSIONbar.ino.elf" "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E/STANSIONbar.ino.hex"
Несколько библиотек найдено для "Wire.h"
Используется: C:\Users\fast3\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\Wire
Не используется: C:\Users\fast3\Documents\Arduino\libraries\Wire
Используем библиотеку Wire версии 1.0 из папки: C:\Users\fast3\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\Wire
Используем библиотеку LiquidCrystal I2C версии 1.1.2 из папки: C:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2
Используем библиотеку GyverBME280 версии 1.5 из папки: C:\Users\fast3\Documents\Arduino\libraries\GyverBME280
"C:\\Users\\fast3\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-size" -A "C:\\Users\\fast3\\AppData\\Local\\Temp\\arduino-sketch-4C42037CB92C357B765ABE47B404526E/STANSIONbar.ino.elf"
Скетч использует 14910 байт (48%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 527 байт (25%) динамической памяти, оставляя 1521 байт для локальных переменных. Максимум: 2048 байт.


Может LiquidCrystal_I2C кривой ???

Добавлено after 3 minutes 49 seconds:
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp: In member function 'void LiquidCrystal_I2C::begin(uint8_t, uint8_t, uint8_t)':
c:\Users\fast3\Documents\Arduino\libraries\LiquidCrystal_I2C-1.1.2\LiquidCrystal_I2C.cpp:66:39: warning: unused parameter 'cols' [-Wunused-parameter]
void LiquidCrystal_I2C::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) {
^~~~


ЧТО ЗА КРАСНОТА при компиляции ???

Re: LCD 2004 I2C часть экрана засветка

Ср фев 22, 2023 10:02:19

Предупреждения. Переменная объявлена, но не используется. Исправление рекомендуется, но не обязателное. Работает.
Склонен думать, что это проблема дисплея. Но как работает через 6 контактов напрямую …
Даже если бы захотел, не могу программно сделать цифры полусветлыми в одной части экрана :).
Какую версию Arduino IDE используете?

Re: LCD 2004 I2C часть экрана засветка

Ср фев 22, 2023 10:22:25

Предупреждения. Переменная объявлена, но не используется.
Какую версию Arduino IDE используете?

Склоняюсь к тому, что экран подгорел когда на контроллере сгорел диод шотки.

Добавлено after 40 seconds:
Arduino ide крайний.

Добавлено after 5 minutes 52 seconds:
Попробую экран запаять напрямую без I2C.
Сразу будет ясно, как вы считаете ?
Последний раз редактировалось gps38region Ср фев 22, 2023 13:39:19, всего редактировалось 1 раз.

Re: LCD 2004 I2C часть экрана засветка

Ср фев 22, 2023 10:44:03

Немного согните плату дисплея (контакты имеет внутри токопроводящую резину), не улучшается ли контрастность в пораженной области?
Да, с помощью простого "Привет, мир" с изменением цифр/букв достаточно нескольких минут.
А что случилось, что сгорел диод? Другие дефекты? Каким напряжением питались?

Re: LCD 2004 I2C часть экрана засветка

Ср фев 22, 2023 10:55:14

Контроллер в плате расширения стоял, был подключен дисплей параллельно и датчик на макетке.
Плата расширения попала на макетку и ...
Сижу i2c выпаиваю

Re: LCD 2004 I2C часть экрана засветка

Ср апр 19, 2023 08:46:48

Решил разобрать экран.
Между контактами платы экрана и контактами (резиновые проводники) затек флюс. (Еще тот рукожоп)
Промыл собрал и подключил к экрану плату I2C.

Новая проблема нарисовалась....
Подскажите чайнику в чем проблема ?
Раньше этот код работал, скрины я выше выкладывал.

Изображение

Добавлено after 49 minutes 23 seconds:
LiquidCrystal_I2C бывают разные !!!

Или не ставится библиотека...
Или компилируется с ошибкой...
Или бывают правильные...

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

На экране пока тишина ...... (подсветкой управляю вкл/выкл)

Re: LCD 2004 I2C часть экрана засветка

Ср апр 19, 2023 17:35:59

Из существующих в интернете, используемая LiquidCrystal_I2C очень старая. Лучше бы свой код загрузили бы :) Скачал с оптическим распознаванием OCR. Попробуйте.
Вложения
test.zip
(4.57 KiB) Скачиваний: 35

Re: LCD 2004 I2C часть экрана засветка

Чт апр 20, 2023 02:31:52

Лучше бы свой код загрузили бы :)

Код я выложил общим скриншотом.
По работе с LCD мне фиолетово какую библиотеку использовать, адаптироваться можно легко. Но вот то что выкладывают чаще всего то все и используют.

Re: LCD 2004 I2C часть экрана засветка

Чт апр 20, 2023 07:11:42

Ясно. Для того, чтобы опробовать программный код на мой комп, мне приходилось самому писать на клавиатуре (или как-то иначе (OCR)). Проще, если вы поделились текстовым файлом.

Не написали: сработал ли пример, который я вставил? Там библиотека LiquidCrystal_I2C локальная (в локальной папке проекта).

Re: LCD 2004 I2C часть экрана засветка

Чт апр 20, 2023 07:19:10

gps38region,
А к шине I2C подключен только дисплей?

Re: LCD 2004 I2C часть экрана засветка

Чт апр 20, 2023 07:57:18

gps38region,
А к шине I2C подключен только дисплей?


Нет, еще 3 устройства но адреса не пересекаются.

Re: LCD 2004 I2C часть экрана засветка

Чт апр 20, 2023 08:01:27

Я спросил потому, что у I2C быстродействие не бесконечно. Если по шине идёт интенсивный обмен, то возможны проблемы с выводом на дисплей, я с таким когда-то давно сталкивался.

Re: LCD 2004 I2C часть экрана засветка

Чт апр 20, 2023 09:20:23

Если по шине идёт интенсивный обмен, то возможны проблемы с выводом на дисплей

Спасибо, попробую чисто экран подключить.
Стоят часы реального времени, датчик BM280, MQ135.
Ответить