Проблемы с lcd экраном 16x2 i2c

leolem
Offline
Зарегистрирован: 22.06.2019

У меня перестало выдовать ошибки, вот так понятно?

И перестаньте меня тролить. ;)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, тогда поздравляю.

leolem
Offline
Зарегистрирован: 22.06.2019

так всё равно мой символ не выводит

leolem
Offline
Зарегистрирован: 22.06.2019

?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Простите, Вы здоровы?

Вам по-русски написали - выкладывайте код и сообщение об ошибке. Вы 

1) сменили билиотеку и несказали об этом (ужж тем более не сказали  на какую)
2) так и не выложили код (вместо этого выложили в #48 только огрызок от него).

Чего Вы хотите? Я сам буду догадываться что там ещё в Вашем коде есть? Я сам буду на кофейной гуще гадать какая у Вас теперь библиотека? А оно мне надо? Если Вам влом нормально выложить код, то ... так оно Вам нужно.

leolem
Offline
Зарегистрирован: 22.06.2019

Спасибо за помощь.

leolem
Offline
Зарегистрирован: 22.06.2019
#include <LiquidCrystal_I2C.h> 
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27,16,2);

void setup() 
{
  byte smily[8] = {
  B00000,
  B00000,
  B01010,
  B00000,
  B00000,
  B10001,
  B01110
};
  lcd.init();   
  lcd.home();  
  lcd.backlight();
  lcd.createChar(1, smily); 
  lcd.write((byte)1);
}

void loop()
{
  lcd.setCursor(6, 0);
  lcd.print("phisics");
  lcd.scrollDisplayRight();
  delay(450);
  lcd.scrollDisplayLeft();
  delay(450);
}

Извините еще раз

А по поводу ошибки у меня правда их больше нету

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Нету, значит поменяли библиотеку. Какая именно версия LiquidCrystal_I2C.h сейчас у Вас стоит?

leolem
Offline
Зарегистрирован: 22.06.2019

1.1.2.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вы издеваетесь? Ссылку давайте, посмотреть-то на неё!

MrFlanker
Offline
Зарегистрирован: 16.01.2018

Это же известная проблема, выше написали решение несколько раз
в файле LiquidCrystal_I2C.cpp

1 inline size_t LiquidCrystal_I2C::write(uint8_t value) {
2     send(value, Rs);
3     return 0;
4 }

замениить return 0; на return 1;

а если его нету то добавить "return 1;

 

b707
Offline
Зарегистрирован: 26.05.2017

MrFlanker пишет:

Это же известная проблема, выше написали решение несколько раз замениить return 0; на return 1; а если его нету то добавить return 1;

если вы программист - то обьясните, чем поможет смена возвращаемого значения, если в коде оно не используется?

а если не программист - не пишите ерунды

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:
чем поможет смена возвращаемого значения, если в коде оно не используется?

Используется и очень активно. Практически все методы (print, println и т.д.) вызывают метод

write(const uint8_t *buffer, size_t size)

А тот весьма критично завязан на то, что "size_t write(uint8_t)" возвращает количество записанных байтов. Сами смотрите (файл "Print.cpp" в поставке IDE)

size_t Print::write(const uint8_t *buffer, size_t size)
{
  size_t n = 0;
  while (size--) {
    if (write(*buffer++)) n++;
    else break;
  }
  return n;
}

т.е. если "size_t write(uint8_t)" не вернёт 1, то у Вас не будет работать "write(const uint8_t *buffer, size_t size)", а значит не будет работать print, println и вообще, практически ничего.

Чтобы не было недоразумений: write - виртуальная функция, поэтому родительские IDE-шные классы вызывают её из дочернего класса - в нашем случае из класса LiquidCrystal.....

b707
Offline
Зарегистрирован: 26.05.2017

ЕвгенийП пишет:

b707 пишет:
чем поможет смена возвращаемого значения, если в коде оно не используется?

Используется и очень активно.

в общем случае вы, конечно, правы - но у ТС в коде как раз используется "size_t write(uint8_t)" в голом виде и возвращаемое значение не анализируется

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, там вроде и print есть в 26-ой строке, но он утверждает, что проблема начинается раньше, это да.

Но мы сейчас не про ТС, пусть сначала покажет что у него за библиотека, потом будем с ним разбираться (в частности объясним, что если не работает setup, то пока не заработает, lopp нужно держать пустым, чтобы на засирать проблему посторонними вещами).

129085
Offline
Зарегистрирован: 17.02.2021

Тоже была такая проблема на1.8.7. заменил return 0; на return 1;

И все заработало...Спасибо.