Помогите подправить скетч для русификации LCD1602

lis255

✩✩✩✩✩✩✩
17 Ноя 2020
10
0
В общем сразу скажу что мои познания в программирование это 1 из 10. больше механик я.
Достался мне один интересный проект , перельстатический насос, за основу взят шаговый двигатель NEMA17 HS4401 высота 38мм с управлением arduino pro mini.

Вот по этой схеме все было собрано
schematics.jpg
Несколько дней мучений с прошивкой и настройкой все получилось. заработало. довольный как слон такой крутой поделкой WhatsApp Image 2020-11-17 at 20.43.20.jpegWhatsApp Image 2020-11-17 at 20.43.39.jpeg
Но вот все время пользования , одно не радовало , английский язык в меню управления.
Ну и решил раз уж с прошивкой справился , то и русификация тоже должна поддаться. Несколько бессонных ночей изучений, поисков, сотни пере прошивок и компиляций процесс не сдвинулся дальше крякозябр на экране 1602. А ну и дергающийся глаз от такой каши в голове 🙂
изучив весь скетч выявил все строки которые выдают информацию на экран , но как сделать компиляцию без ошибок не ясно.

пробовал подключать разные библиотек
<LiquidCrystalRus.h> здесь если память не ошибает выдавала крякозябры
<font_LCD_1602_RUS.h>
<LCD_1602_RUS_ALL.h>
<LiquidCrystal_I2C_OLED
но в общем либо компиляция не проходила , а в с одной из библиотек по ошибки компиляции дошел до

// Setup()
//================================================================================================
void setup() {
DEBUG_BEGIN(115200);

lcd.begin(); это было выделено красны , удаляю но все ровно не помогает
lcd.clear();
lcd.backlight();

в общем понял одно либо нужен какой то там дорогущий дисплей оригинальный или дорисовать в имеющемся не хватающие 8 символов, но это не в моих силах :(
Но вот в душе чую что уже под имеющуюся библиотеку нужно просто код подправить, вот прям почему то уверен на сто процентов, но сам этого сделать уж точно не смогу.

Может кто подскажет чего или лучше бы конечно исправить , ну или хотя бы направят в нужное русло. а уж какой там текст на русский переписать я уже сам дальше доковыляю

Заранее всем благодарен;)

ссылка на исходник :
 

Вложения

lis255

✩✩✩✩✩✩✩
17 Ноя 2020
10
0
Есть хорошая библиотека, очень корректно выводит русские символы - LCD_1602_RUS.h
Спасибо огромное , вопрос если я ее добавляю в скетч , мне старую нужно удалить ? и что нужно будет исправить в самом коде ?
 

TimicH

★★✩✩✩✩✩
9 Фев 2020
127
60
63
Новосибирск
Старую можно закоментировать, а можно и не трогать. Вот только, что сделал вот так и всё работает:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <LCD_1602_RUS.h>
LCD_1602_RUS _lcd1(0x27, 16, 2);
 
  • Лойс +1
Реакции: lis255

kostyamat

★★★★★★✩
29 Окт 2019
1,097
630
Я когда-то делал модернизацию этой библиотеки, с украинскими буквами и вдвое меньшим весом в компилированом виде. Правда у нее есть ограничение - она выводит только заглавные буквы. За счет этого и вес уменьшился. Но экономия места во флеш этого стоит. Если надо, могу выложить куда-то.
 
  • Лойс +1
Реакции: lis255

lis255

✩✩✩✩✩✩✩
17 Ноя 2020
10
0
Старую можно закоментировать, а можно и не трогать. Вот только, что сделал вот так и всё работает:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <LCD_1602_RUS.h>
LCD_1602_RUS _lcd1(0x27, 16, 2);
Поправил свой скетч , точно , компиляция прошла успешно. завтра залью проверю. Но все ровно огромное спасибо, уже есть надежда(y)🕺 а сегодня уже пора :sleep:
 

lis255

✩✩✩✩✩✩✩
17 Ноя 2020
10
0
Оформи код соответствующим тэгом
Извиняюсь что так долго проверял , у нас тут во Владивостоке катаклизм , неделю без света сидели. вот добрался наконец закинул прошивку в начале как советовали подключил зип библиотеку
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <LCD_1602_RUS.h>
LCD_1602_RUS _lcd1(0x27, 16, 2);

а вот кусочек где русский нужен

// Setup()
//================================================================================================
void setup() {
DEBUG_BEGIN(115200);

lcd.begin();
lcd.clear();
lcd.backlight();

// Show invitation
lcd.setCursor(0, 0);
lcd.print(F("Насос"));
lcd.setCursor(0, 1);
lcd.print(String(F(" v")) + String(firmwareVersion, 1) + String(F(" ")));

и все ровно выдает крякозябры на экране
 

TimicH

★★✩✩✩✩✩
9 Фев 2020
127
60
63
Новосибирск
Может и коряво, но у меня работает

void setup() {
lcd.init(); // Инициализация lcd
lcd.backlight(); // Включаем подсветку
 

lis255

✩✩✩✩✩✩✩
17 Ноя 2020
10
0
// Setup()
//================================================================================================
void setup() {


lcd.init();
lcd.backlight();

// Show invitation
lcd.setCursor(0, 0);
lcd.print(F("Peristaltic pump"));
lcd.setCursor(0, 1);
lcd.print(String(F(" v")) + String(firmwareVersion, 1) + String(F(" ")));
исправил как у тебя, выдает ошибку
 

Nikanor

★★✩✩✩✩✩
1 Окт 2020
180
52
какую библу не используй, а одновременно более восьми символов кириллицы не получится вывести.
конечно, если дисплей не поддерживает кириллицу.
 

lis255

✩✩✩✩✩✩✩
17 Ноя 2020
10
0
я пробовал по этой схеме просто одну букву русскую вставлять оно вроде прошивается но после на экране все также а эта буква крякозябрами вылетает
 

Nikanor

★★✩✩✩✩✩
1 Окт 2020
180
52
я никакие библиотеки не использую.
при отрисовке страницы дисплея я использую до восьми своих символов, остальные использую латинские.
да, есть неудобства. но вполне приемлемо.
тоже и для дисплея 20х4.
 

lis255

✩✩✩✩✩✩✩
17 Ноя 2020
10
0
в общем ни чего не понял, далек я все таки от программирования 🤷‍♂️
отрисовке страницы дисплея - вообще меня в тупик загнали
в общем я так понимаю мою прошивку перевести не получится 🤦‍♂️ не переписывая ее полостью
 

Nikanor

★★✩✩✩✩✩
1 Окт 2020
180
52
часть кода. связанную с дисплеем. надо переписывать
 

Шал

✩✩✩✩✩✩✩
26 Мар 2020
23
5
я пробовал по этой схеме просто одну букву русскую вставлять оно вроде прошивается но после на экране все также а эта буква крякозябрами вылетает
Фото с обратной стороны дисплея скинь, глянем что у тебя там.
Походу КИРИЛЛИЦы в кодовой стр нет!
Есть скетч который выводит на дисплей все кодовые стр и их массив символов.

в общем ни чего не понял, далек я все таки от программирования 🤷‍♂️
отрисовке страницы дисплея - вообще меня в тупик загнали
в общем я так понимаю мою прошивку перевести не получится 🤦‍♂️ не переписывая ее полостью
Прошивке фиолетово что в ней писать! Ключевое дисплей у которого нет нужной кодовой стр символов.
Выход один, приобрести новый дисплей где есть обе кодовые страницы!
Стоит копейки и гемора 0.
Можно два языка выводить!

на почитать
и тест что есть в дисплее можно глянуть символьную таблицу дисплея.
C++:
void loop() {
  int currentRow = 0;
  int currentCol = 0;
  for (int letter = 0; letter <= 255; letter++) {
    lcd.setCursor(currentCol, currentRow-1);
    lcd.print(char(letter));
    currentCol++;
      if (currentCol > 16){
        currentCol = 0;
       if (currentRow < 1 ){
        currentRow++;
        }
      else {
        delay(3000);
        lcd.clear();
        currentRow = 0;          
      }
    }
  }      
}
 

Вложения

Шал

✩✩✩✩✩✩✩
26 Мар 2020
23
5

Вложения

Старик Похабыч

★★★★★★★
14 Авг 2019
4,191
1,281
Москва
а вот кусочек где русский нужен
...
lcd.print(F("Насос"));
..
Чем слово насос хорошо, так тем, что ему не нужны русские буквы. сравните
Русский: Насос
Английский: Hacoc
 

lis255

✩✩✩✩✩✩✩
17 Ноя 2020
10
0
Можно и не МЭЛТ
С али есть нормальные тоже!
1602A QAPASS
На фото в аттаче снят модуль айтуси!
вот у меня точно такойже , только подключен через l2c

@lis255, читайте тут описание https://github.com/ssilver2007/LCD_1602_RUS_ALL
В папке examples смотрите примеры. И делайте по аналогии. Если будет что непонятно - пишите.
спасибо буду изучать