Разработки ecoins

Библиотеки для разных контроллеров

ecoins
Подполковник
Сообщения: 1230
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 210
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1241

Сообщение ecoins » 06.09.2021{, 18:24}

Утвш писал(а):
05.09.2021{, 14:36}
5.09.21 8.31.odt
(23.17 КБ) 3 скачивания
Посмотрели. Просто не находит файл RT_HW_LCD_HD44780.h.
Такого файла нет в библиотеке RT_HW_BASE.h - такой файл был раньше, а теперь он называется короче - RT_HW_HD44780.
Скорее всего у Вас в проекте старый ПБ.
Пришлите проект.

ecoins
Подполковник
Сообщения: 1230
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 210
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1242

Сообщение ecoins » 06.09.2021{, 18:44}

JonyBest писал(а):
17.08.2021{, 10:35}
2. Не корректно выводит изображение на дисплей 16х4. Алгоритм остался, похоже, от дисплея 20х4, по этому смещаются в 3-4х строках на 4е колонки ...
Приобрел дисплей 16x4, проверил. Действительно смещается.
Проверил на простом тесте из примеров - смещается, т.е. проблема в дисплее.
-----------------------------------------------------------
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 4);
void setup(){
lcd.begin(); lcd.backlight();
lcd.setCursor(0,0); lcd.print("Str0-0123456789*");
lcd.setCursor(0,1); lcd.print("Str1-0123456789*");
lcd.setCursor(0,2); lcd.print("Str2-0123456789*");
lcd.setCursor(0,3); lcd.print("Str2-0123456789*");}
void loop(){}
LCD16x4_1.jpg
-----------------------------------------------------------
Проверил на доработанном тесте с "заплатками" - нормально.
-----------------------------------------------------------
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 4);
void setup(){
lcd.begin(); lcd.backlight();
lcd.setCursor(0,0); lcd.print("Str0-0123456789*Str2");
lcd.setCursor(0,1); lcd.print("Str1-0123456789*Str3");
lcd.setCursor(0,2); lcd.print("-0123456789*");
lcd.setCursor(0,3); lcd.print("-0123456789*");}
void loop(){}
LCD16x4_2.jpg
-------------------------------------------------------
Таким образом:
позиции 17-20 1-ой строки соответствуют 1-4 позициям 3 строки.
позиции 17-20 2-ой строки соответствуют 1-4 позициям 4 строки.
То ли задумка разработчика, то ли ошибка производителя при прошивке партии чипов LCD.
-------------------------------------------------------
Вопросы к заинтересованным лицам:
1.описанное ошибка производителя или так дисплеи 16х4 задуманы?
2.стоит ли в библиотеку RT_HW_BASE.h добавлять соответствующую "заплатку"?
-------------------------------------------------------
Спасибо.
Для скачивания вложений Вы должны быть зарегистрированы.

Аватара пользователя
nalnik
Подполковник
Сообщения: 1242
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 85
Откуда: Кисловодск
Имя: Александр

Разработки ecoins

#1243

Сообщение nalnik » 06.09.2021{, 19:10}

Отправлено спустя 55 минут 6 секунд:
ecoins писал(а):
06.09.2021{, 18:44}
Приобрел дисплей 16x4, проверил.
Доброго вечера ecoins
Скажите, Вы можете сделать блоки для TFT 240x320 ILI9341 ? (без тачскрина*)
https://www.google.com/search?q=TFT+240 ... 36&bih=704
Или так и будите работать и учить на дисплеях 25+ летней давности?
Если нет таких - могу оплатить пару штук.
Я хочу быть добрее, но люди сами нарываются.

Утвш
Рядовой
Сообщения: 73
Зарегистрирован: 02.12.2016{, 07:31}
Репутация: 1

Разработки ecoins

#1244

Сообщение Утвш » 06.09.2021{, 21:49}

ecoins писал(а):
06.09.2021{, 18:24}
Пришлите проект.
Это не мой проект. Это ваш пример 001 из папки 005 из архива "000_Блоки Flprog, примеры, руководства.zip" в начале темы.
001_LCD_test.flp
Для скачивания вложений Вы должны быть зарегистрированы.

ecoins
Подполковник
Сообщения: 1230
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 210
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1245

Сообщение ecoins » 06.09.2021{, 22:40}

Утвш писал(а):
06.09.2021{, 21:49}
Это не мой проект. Это ваш пример 001 из папки 005 из архива "000_Блоки Flprog, примеры, руководства.zip" в начале темы.
Понятно. Над этой строки запись
Устаревшее описание, но в нем есть полезное...
000_Блоки Flprog, примеры, руководства.zip

Примеры из этого архива не работают с новой библиотекой.
В первом посте внизу есть примеры.

Утвш
Рядовой
Сообщения: 73
Зарегистрирован: 02.12.2016{, 07:31}
Репутация: 1

Разработки ecoins

#1246

Сообщение Утвш » 07.09.2021{, 01:12}

ecoins писал(а):
06.09.2021{, 22:40}
В первом посте внизу есть примеры.
Нет там примеров. Во всяком случае я не нашел .Два архива с библиотеками и два архива с блоками пользователя. Ну да бог с ними. Попробую так разобраться. Спасибо

edyapd
Капитан
Сообщения: 754
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 62
Имя: Эдуард

Разработки ecoins

#1247

Сообщение edyapd » 07.09.2021{, 05:32}

ecoins писал(а):
06.09.2021{, 18:44}
т.е. проблема в дисплее
Возможно это поможет разобраться.
Во всяком случаи, у меня всегда срабатывало правило
Видеопамять организована в две строки по 40 символов в каждой. Эта привязка является жесткой и не подлежит изменению. Другими словами, независимо от того, сколько реальных строк будет иметь каждый конкретный ЖКИ-модуль, скажем 80х1 или 20х4, адресация видеопамяти всегда производится как к двум строкам по 40 символов.
В случаи с четырёх строчным дисплеем третья строка является продолжением первой, а четвёртая продолжением второй. По этой причине при 16х4 у вас и появляются отступы в начале третьей и четвёртой строки.
Для скачивания вложений Вы должны быть зарегистрированы.

ecoins
Подполковник
Сообщения: 1230
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 210
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1248

Сообщение ecoins » 07.09.2021{, 18:43}

edyapd писал(а):
07.09.2021{, 05:32}
В случаи с четырёх строчным дисплеем третья строка является продолжением первой, а четвёртая продолжением второй. По этой причине при 16х4 у вас и появляются отступы в начале третьей и четвёртой строки.
Спасибо за ответ.
Попробовал вывод на стандартных блоках FLProg. Та же самая проблема.
Библиотек под такой дисплей не встречал.
В качестве гипотезы считаю, что это или не очень удачная конструкция, или ошибка прошивки.
Сделать в библиотеке можно, но видимо не стоит тратить на это усилия.

edyapd
Капитан
Сообщения: 754
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 62
Имя: Эдуард

Разработки ecoins

#1249

Сообщение edyapd » 07.09.2021{, 19:25}

ecoins писал(а):
07.09.2021{, 18:43}
Библиотек под такой дисплей не встречал.
Я в С++ полный дуб, но разве это не является установкой смещения для строк, в стандартной библиотеке?
СпойлерПоказать

Код: Выделить всё

setRowOffsets(0x00, 0x40, 0x00 + cols, 0x40 + cols);
.
................
.
void LiquidCrystal::setRowOffsets(int row0, int row1, int row2, int row3)
{
  _row_offsets[0] = row0;
  _row_offsets[1] = row1;
  _row_offsets[2] = row2;
  _row_offsets[3] = row3;
}
. 
..............
.
void LiquidCrystal::setCursor(uint8_t col, uint8_t row)
{
  const size_t max_lines = sizeof(_row_offsets) / sizeof(*_row_offsets);
  if ( row >= max_lines ) {
    row = max_lines - 1;    // we count rows starting w/0
  }
  if ( row >= _numlines ) {
    row = _numlines - 1;    // we count rows starting w/0
  }
  
  command(LCD_SETDDRAMADDR | (col + _row_offsets[row]));
}
У меня на данный момент нет дисплея 16х4, чтобы проверить. Но почему-то мне кажется, что никаких проблем со стандартными блоками FLProg быть не должно.
Или мы говорим о разных вещах.

ecoins
Подполковник
Сообщения: 1230
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 210
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1250

Сообщение ecoins » 07.09.2021{, 21:27}

edyapd писал(а):
07.09.2021{, 19:25}
Я в С++ полный дуб, но разве это не является установкой смещения для строк, в стандартной библиотеке?
Вы неплохо ориентируетесь в библиотеке на C++ -с этим у Вас неплохо.
edyapd писал(а):
07.09.2021{, 19:25}
У меня на данный момент нет дисплея 16х4, чтобы проверить. Но почему-то мне кажется, что никаких проблем со стандартными блоками FLProg быть не должно.
Или мы говорим о разных вещах.
О вещах говорим об одних, но есть нюансы.
И на стандартных блоках FLProg прямолинейно не получается...
FLProg_Standart_LCD16x4.flp
lcd16x4.png
Копия IMG_3106.jpg
---
Но идею, как решить не сложно проблему Вы мне подсказали.
И даже попробовал. И что-то получилось.
Спасибо.
Для скачивания вложений Вы должны быть зарегистрированы.

edyapd
Капитан
Сообщения: 754
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 62
Имя: Эдуард

Разработки ecoins

#1251

Сообщение edyapd » 08.09.2021{, 05:17}

ecoins писал(а):
07.09.2021{, 21:27}
И на стандартных блоках FLProg прямолинейно не получается
Да, сейчас посмотрел библиотеку LiquidCrystal_I2C, там на самом деле заданы жёсткие смещения для строк.
Но моё мнение, что это как раз ошибка в библиотеке, так как она не учитывает то, что заложил производитель микросхемы.
Если у вас есть возможность переделать этот же проект, но без I2C, чтобы использовалась библиотека LiquidCrystal, то думаю всё будет как надо.
Впрочем, мне кажется, что вы уже сами увидели отличие этих библиотек.

Я хоть и не очень заинтересован (на данный момент) в этих дисплеях, но пожалуй отвечу на вопросы:
ecoins писал(а):
06.09.2021{, 18:44}
Вопросы к заинтересованным лицам:
1.описанное ошибка производителя или так дисплеи 16х4 задуманы?
2.стоит ли в библиотеку RT_HW_BASE.h добавлять соответствующую "заплатку"?
1. Это не ошибка производителя. Это именно так устроен контроллер HD44780. И тут не важно, какой дисплей применяется 16х4 или 20х4.
2. Если вы хотите создать по настоящему рабочую библиотеку для любого существующего дисплея на контроллере HD44780, то надо делать не заплатку, а искать рабочее решение.

ecoins писал(а):
07.09.2021{, 21:27}
И даже попробовал. И что-то получилось.
Удачи в реализации.

ecoins
Подполковник
Сообщения: 1230
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 210
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1252

Сообщение ecoins » 08.09.2021{, 06:29}

edyapd писал(а):
08.09.2021{, 05:17}
1. Это не ошибка производителя. Это именно так устроен контроллер HD44780. И тут не важно, какой дисплей применяется 16х4 или 20х4.
2. Если вы хотите создать по настоящему рабочую библиотеку для любого существующего дисплея на контроллере HD44780, то надо делать не заплатку, а искать рабочее решение.
С Вашими подсказками решение наметилось - действительно нужно рассматривать дисплеи как 2-х строчные и соответственно надо позиционировать курсор в памяти контроллера.
При ревизии библиотеки возможно попробую.
--------
LCD HD44780 превратилось для нас неким преследующим "наваждением" - все время что-то новое сплывает - недавно дисплей 40x4, теперь 16х4, ну и другое разное.
Но дисплей удобный, мы его используем активно при тестировании разных библиотек.

o615ye161
Сержант
Сообщения: 136
Зарегистрирован: 19.12.2019{, 14:47}
Репутация: 2
Имя: Сергей

Разработки ecoins

#1253

Сообщение o615ye161 » 08.09.2021{, 09:39}

Здравствуйте ecoins, подскажите пожалуйста почему датчик DHT22 на вашем блоке категорически не работает, на стандартном блоке FLP работает
Для скачивания вложений Вы должны быть зарегистрированы.

ecoins
Подполковник
Сообщения: 1230
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 210
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1254

Сообщение ecoins » 10.09.2021{, 13:08}

o615ye161 писал(а):
08.09.2021{, 09:39}
Здравствуйте ecoins, подскажите пожалуйста почему датчик DHT22 на вашем блоке категорически не работает, на стандартном блоке FLP работает
Ваш тест работает, если поменять пин с 6 на 4 - что-то у Вас конфликтует.
---------------------
Доработал Ваш тест с учетом возможностей ПБ.
test_shet_v2_eis.rar
Стенд.jpg
EIS_01_СИСТЕМАвер_1_25(10_09_21).rar
RT_00_HW_BASE_v6_70_v01_100921.rar
------
Библиотеки лучше использовать из приложенных - в них есть небольшие полезные улушения.
В первый пост пока выкладывать не будем.
Для скачивания вложений Вы должны быть зарегистрированы.

o615ye161
Сержант
Сообщения: 136
Зарегистрирован: 19.12.2019{, 14:47}
Репутация: 2
Имя: Сергей

Разработки ecoins

#1255

Сообщение o615ye161 » 10.09.2021{, 23:15}

ecoins писал(а):
10.09.2021{, 13:08}
Ваш тест работает, если поменять пин с 6 на 4 - что-то у Вас конфликтует.
Спасибо, буду пробовать

o615ye161
Сержант
Сообщения: 136
Зарегистрирован: 19.12.2019{, 14:47}
Репутация: 2
Имя: Сергей

Разработки ecoins

#1256

Сообщение o615ye161 » 11.09.2021{, 12:41}

ecoins писал(а):
10.09.2021{, 13:08}
Библиотеки лучше использовать из приложенных - в них есть небольшие полезные улушения.
В первый пост пока выкладывать не будем.
Это конечно хорошо, но приходится каждый раз проект переделывать, менять все блоки во избежание конфликтов при компиляции

ecoins
Подполковник
Сообщения: 1230
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 210
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1257

Сообщение ecoins » 11.09.2021{, 15:30}

o615ye161 писал(а):
11.09.2021{, 12:41}
Это конечно хорошо, но приходится каждый раз проект переделывать, менять все блоки во избежание конфликтов при компиляции
В Вашем случае не совсем так - работать будет и на старых блоках и библиотеках.
------
В целом Вы правы - было бы удобно, когда продукт будет сразу готов. Но редко когда так получается с учетом требований, которые мы ставим перед разработками (мультиплатформенность, многозадачность, быстродействие, компактность, "горячее" переподключение периферийных модулей и сенсоров, защита от единичных сбоев(1-7) [например из-за плохого контакта, прерывания от WiFi
и пр.], использование не только i2c, но и SPI, прочие "фишки".
Вы можете использовать библиотеки как есть, но можете и преодолевая неудобства, "волнами" переходить на новые версии.
Тем самым Вы будете активно способствовать развитию наших библиотек.
С такими предложениями по сотрудничеству мы не раз обращались к участниками форума, кто-то откликается положительно.
--------
И ещё - значительное время и усилий уходит на поиск на наиболее удобного интерфейса пользовательских блоков. Порой для этого дорабатываются и библиотечные функции.
------
Заработал ли у Вас DHT22?
------
Успехов.

o615ye161
Сержант
Сообщения: 136
Зарегистрирован: 19.12.2019{, 14:47}
Репутация: 2
Имя: Сергей

Разработки ecoins

#1258

Сообщение o615ye161 » 11.09.2021{, 20:29}

ecoins писал(а):
11.09.2021{, 15:30}
Тем самым Вы будете активно способствовать развитию наших библиотек.
Рад в этом поучаствовать

Отправлено спустя 9 минут 50 секунд:
ecoins писал(а):
11.09.2021{, 15:30}
Заработал ли у Вас DHT22?
На днях буду тестировать, но контроллер уже будет Mega2560, с помощью этого датчика и вашего блока хочу уйти от I2C и HTU21 так как мега при этой комбинации периодически виснет, да и еще есть одна проблема датчик HTU21 почему то не хочет работать хотя сам датчик исправен, пробовал несколько, изменений нет, сама шина работает проверял совместно с LCD, пока не разобрался в чем причина

ecoins
Подполковник
Сообщения: 1230
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 210
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1259

Сообщение ecoins » 11.09.2021{, 22:25}

o615ye161 писал(а):
11.09.2021{, 20:39}
На днях буду тестировать, но контроллер уже будет Mega2560, с помощью этого датчика и вашего блока хочу уйти от I2C и HTU21 так как мега при этой комбинации периодически виснет, да и еще есть одна проблема датчик HTU21 почему то не хочет работать хотя сам датчик исправен, пробовал несколько, изменений нет, сама шина работает проверял совместно с LCD, пока не разобрался в чем причина
У нас на стендах работают HTU21, в том числе и на Mega2560.
Возможные источники проблем:
1.На HTU21 немного "мудрено" выведены пины - возможно надо поменять SCL,SDA местами.
2.Полезно отсканировать шину i2c - у нас для этого есть удобный блок, который через блок многофункционального генератора можно запустить на периодическое сканирование.
3.Редко встречаются модули с сенсором HTU21 с уже установленным преобразователем 5->3.3в. Если его нет, то можно пожечь сенсор. Мы используем преобразователь уровня для согласования линий SDA,SCL и понижающий стабилизатор.
4.ОБычные библиотеки HTU21 очень чувствительны и к качеству контактов - любой сбой требует перезапуска контроллера. Наши библиотеки решают эту проблему.
5.Полезно не забывать подтягивающие резисторы +5в на SDA,SCL - достаточно 10кОм, но для большей устойчивости (особенно если провода длинные) полезно будет из сделать поменьше (до 1 кОм).
6.Если провода длинные, то полезно соединять ленточным кабелем, с прокладкой между SCL и SDA проводника GND.
---
Успехов.

ecoins
Подполковник
Сообщения: 1230
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 210
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1260

Сообщение ecoins » 13.09.2021{, 19:37}

ESP32C3
Rovki прислал чип ESP32C3 https://aliexpress.ru/item/100500276079 ... 41b71BevYg
Пишут о чипе как о "Восходящей звезде" - замена ESP8266.
Для исследования приобрел плату отладки https://aliexpress.ru/item/100500281000 ... 41b71BevYg
На неё есть документация с электрической схемой.
esp-c3-32s-kit-v1.0_specification.pdf
Попробовал на простом тесте.
ESP32C3_Blink_RGB.ino
Возникли трудности с функцией Serial.print()....
-----
При подключении монитора порта работа скетча прекращается.
После выхода из монитора работа возобновляется со сбросом.
Возможно в схемотехнике модуля есть ошибки?
Может кто-нибудь разберется, а то работа встала...
Для скачивания вложений Вы должны быть зарегистрированы.

Ответить

Вернуться в «Библиотеки пользователей»