Страница 62 из 80
Разработки ecoins
Добавлено: 07 сен 2021, 18:43
ecoins
edyapd писал(а): 07 сен 2021, 05:32
В случаи с четырёх строчным дисплеем третья строка является продолжением первой, а четвёртая продолжением второй. По этой причине при 16х4 у вас и появляются отступы в начале третьей и четвёртой строки.
Спасибо за ответ.
Попробовал вывод на стандартных блоках FLProg. Та же самая проблема.
Библиотек под такой дисплей не встречал.
В качестве гипотезы считаю, что это или не очень удачная конструкция, или ошибка прошивки.
Сделать в библиотеке можно, но видимо не стоит тратить на это усилия.
Разработки ecoins
Добавлено: 07 сен 2021, 19:25
edyapd
ecoins писал(а): 07 сен 2021, 18:43
Библиотек под такой дисплей не встречал.
Я в С++ полный дуб, но разве это не является установкой смещения для строк, в стандартной библиотеке?
[spoiler]
Код: Выделить всё
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]));
}
[/spoiler]
У меня на данный момент нет дисплея 16х4, чтобы проверить. Но почему-то мне кажется, что никаких проблем со стандартными блоками FLProg быть не должно.
Или мы говорим о разных вещах.
Разработки ecoins
Добавлено: 07 сен 2021, 21:27
ecoins
edyapd писал(а): 07 сен 2021, 19:25
Я в С++ полный дуб, но разве это не является установкой смещения для строк, в стандартной библиотеке?
Вы неплохо ориентируетесь в библиотеке на C++ -с этим у Вас неплохо.
edyapd писал(а): 07 сен 2021, 19:25
У меня на данный момент нет дисплея 16х4, чтобы проверить. Но почему-то мне кажется, что никаких проблем со стандартными блоками FLProg быть не должно.
Или мы говорим о разных вещах.
О вещах говорим об одних, но есть нюансы.
И на стандартных блоках FLProg прямолинейно не получается...
FLProg_Standart_LCD16x4.flp
lcd16x4.png
Копия IMG_3106.jpg
---
Но идею, как решить не сложно проблему Вы мне подсказали.
И даже попробовал. И что-то получилось.
Спасибо.
Разработки ecoins
Добавлено: 08 сен 2021, 05:17
edyapd
ecoins писал(а): 07 сен 2021, 21:27
И на стандартных блоках FLProg прямолинейно не получается
Да, сейчас посмотрел библиотеку LiquidCrystal_I2C, там на самом деле заданы жёсткие смещения для строк.
Но моё мнение, что это как раз ошибка в библиотеке, так как она не учитывает то, что заложил производитель микросхемы.
Если у вас есть возможность переделать этот же проект, но без I2C, чтобы использовалась библиотека LiquidCrystal, то думаю всё будет как надо.
Впрочем, мне кажется, что вы уже сами увидели отличие этих библиотек.
Я хоть и не очень заинтересован (на данный момент) в этих дисплеях, но пожалуй отвечу на вопросы:
ecoins писал(а): 06 сен 2021, 18:44
Вопросы к заинтересованным лицам:
1.описанное ошибка производителя или так дисплеи 16х4 задуманы?
2.стоит ли в библиотеку RT_HW_BASE.h добавлять соответствующую "заплатку"?
1. Это не ошибка производителя. Это именно так устроен контроллер HD44780. И тут не важно, какой дисплей применяется 16х4 или 20х4.
2. Если вы хотите создать по настоящему рабочую библиотеку для любого существующего дисплея на контроллере HD44780, то надо делать не заплатку, а искать рабочее решение.
ecoins писал(а): 07 сен 2021, 21:27
И даже попробовал. И что-то получилось.
Удачи в реализации.
Разработки ecoins
Добавлено: 08 сен 2021, 06:29
ecoins
edyapd писал(а): 08 сен 2021, 05:17
1. Это не ошибка производителя. Это именно так устроен контроллер HD44780. И тут не важно, какой дисплей применяется 16х4 или 20х4.
2. Если вы хотите создать по настоящему рабочую библиотеку для любого существующего дисплея на контроллере HD44780, то надо делать не заплатку, а искать рабочее решение.
С Вашими подсказками решение наметилось - действительно нужно рассматривать дисплеи как 2-х строчные и соответственно надо позиционировать курсор в памяти контроллера.
При ревизии библиотеки возможно попробую.
--------
LCD HD44780 превратилось для нас неким преследующим "наваждением" - все время что-то новое сплывает - недавно дисплей 40x4, теперь 16х4, ну и другое разное.
Но дисплей удобный, мы его используем активно при тестировании разных библиотек.
Разработки ecoins
Добавлено: 08 сен 2021, 09:39
o615ye161
Здравствуйте ecoins, подскажите пожалуйста почему датчик DHT22 на вашем блоке категорически не работает, на стандартном блоке FLP работает
Разработки ecoins
Добавлено: 10 сен 2021, 13:08
ecoins
o615ye161 писал(а): 08 сен 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
------
Библиотеки лучше использовать из приложенных - в них есть небольшие полезные улушения.
В первый пост пока выкладывать не будем.
Разработки ecoins
Добавлено: 10 сен 2021, 23:15
o615ye161
ecoins писал(а): 10 сен 2021, 13:08
Ваш тест работает, если поменять пин с 6 на 4 - что-то у Вас конфликтует.
Спасибо, буду пробовать
Разработки ecoins
Добавлено: 11 сен 2021, 12:41
o615ye161
ecoins писал(а): 10 сен 2021, 13:08
Библиотеки лучше использовать из приложенных - в них есть небольшие полезные улушения.
В первый пост пока выкладывать не будем.
Это конечно хорошо, но приходится каждый раз проект переделывать, менять все блоки во избежание конфликтов при компиляции
Разработки ecoins
Добавлено: 11 сен 2021, 15:30
ecoins
o615ye161 писал(а): 11 сен 2021, 12:41
Это конечно хорошо, но приходится каждый раз проект переделывать, менять все блоки во избежание конфликтов при компиляции
В Вашем случае не совсем так - работать будет и на старых блоках и библиотеках.
------
В целом Вы правы - было бы удобно, когда продукт будет сразу готов. Но редко когда так получается с учетом требований, которые мы ставим перед разработками (мультиплатформенность, многозадачность, быстродействие, компактность, "горячее" переподключение периферийных модулей и сенсоров, защита от единичных сбоев(1-7) [например из-за плохого контакта, прерывания от WiFi
и пр.], использование не только i2c, но и SPI, прочие "фишки".
Вы можете использовать библиотеки как есть, но можете и преодолевая неудобства, "волнами" переходить на новые версии.
Тем самым Вы будете активно способствовать развитию наших библиотек.
С такими предложениями по сотрудничеству мы не раз обращались к участниками форума, кто-то откликается положительно.
--------
И ещё - значительное время и усилий уходит на поиск на наиболее удобного интерфейса пользовательских блоков. Порой для этого дорабатываются и библиотечные функции.
------
Заработал ли у Вас DHT22?
------
Успехов.
Разработки ecoins
Добавлено: 11 сен 2021, 20:39
o615ye161
ecoins писал(а): 11 сен 2021, 15:30
Тем самым Вы будете активно способствовать развитию наших библиотек.
Рад в этом поучаствовать
Отправлено спустя 9 минут 50 секунд:
ecoins писал(а): 11 сен 2021, 15:30
Заработал ли у Вас DHT22?
На днях буду тестировать, но контроллер уже будет Mega2560, с помощью этого датчика и вашего блока хочу уйти от I2C и HTU21 так как мега при этой комбинации периодически виснет, да и еще есть одна проблема датчик HTU21 почему то не хочет работать хотя сам датчик исправен, пробовал несколько, изменений нет, сама шина работает проверял совместно с LCD, пока не разобрался в чем причина
Разработки ecoins
Добавлено: 11 сен 2021, 22:25
ecoins
o615ye161 писал(а): 11 сен 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
Добавлено: 13 сен 2021, 19:37
ecoins
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()....
-----
При подключении монитора порта работа скетча прекращается.
После выхода из монитора работа возобновляется со сбросом.
Возможно в схемотехнике модуля есть ошибки?
Может кто-нибудь разберется, а то работа встала...
Разработки ecoins
Добавлено: 13 сен 2021, 21:21
Rovki
[ref]ecoins[/ref],
Попробуйте другой тест , типа вывода константы в порт .Может дело в таймерах или еще в чем ,но не самом порте, у меня вроде генератор не работал штатный.

Я выводил значения с датчика СО2 на монитор , нормально

Разработки ecoins
Добавлено: 13 сен 2021, 21:24
starshoy81
[ref]ecoins[/ref], я встречал в коде скорость 500000.
baudRate = 500000; // USER PARAMETER - USB Serial Baud Rate (bps)
Serial.begin(baudRate);
а дальше просто вывод с периодом
Код: Выделить всё
void Onboard_Telemetry(){
/////////////////////// USB SERIAL DATA TELEMETRY ////////////////////////
// 0 - Disable Serial
// 1 - Display All
// 2 - Display Essential Data
// 3 - Display Numbers Only
currentSerialMillis = millis();
if(currentSerialMillis-prevSerialMillis>=millisSerialInterval){ //Run routine every millisRoutineInterval (ms)
prevSerialMillis = currentSerialMillis; //Store previous time
if(serialTelemMode==0){}
// else if(chargingPause==1){Serial.println("CHARGING PAUSED");} // Charging paused message
else if(serialTelemMode==1){ // 1 - Display All
Serial.print(" ERR:"); Serial.print(ERR);
Serial.print(" FLV:"); Serial.print(FLV);
Кстати на фото приведённой платы отсутствуют два транзистора управляющие сбросом и работой есп как на этой схеме.
che32.PNG
Разработки ecoins
Добавлено: 13 сен 2021, 22:09
ecoins
starshoy81 писал(а): 13 сен 2021, 21:24
ecoins, я встречал в коде скорость 500000.
baudRate = 500000; // USER PARAMETER - USB Serial Baud Rate (bps)
Serial.begin(baudRate);
а дальше просто вывод с периодом
Спасибо за быстрый ответ.
Вопрос о каком коде идет речь? В каком-то то скетче или в ядре?
И те же вопросы по коду ниже...
starshoy81 писал(а): 13 сен 2021, 21:24
Кстати на фото приведённой платы отсутствуют два транзистора управляющие сбросом и работой есп как на этой схеме.
Схему смотрел поверхностно и подобное подозрение у меня возникло.
Хотелось бы понять:
1.Это ошибка производителя?
2.Это возможно решить программно (драйвер или т.п.)?
3. Можно ли доработать плату простыми средствами?
4.Наверное можно попробовать через внешний адаптер и RX,TX? (позже попробую).
------
В продаже есть более "правильная плата"
https://aliexpress.ru/item/100500222609 ... 41b7uz7Xyh
но стоит существенно дороже.
Отправлено спустя 12 минут 36 секунд:
Rovki писал(а): 13 сен 2021, 21:21
Пробовал... Не получается...
Rovki, а у тебя такая плата?
ESP32C3_kit.jpg
Справа внизу два места под транзисторы пустые.
У тебя они распаяны?
Разработки ecoins
Добавлено: 13 сен 2021, 22:35
starshoy81
ecoins писал(а): 13 сен 2021, 22:09
Вопрос о каком коде идет речь? В каком-то то скетче или в ядре?
В скетче, оба куска из одной программы.
ecoins писал(а): 13 сен 2021, 22:09
Это ошибка производителя?
Тут не знаю, схема, которую я привёл, взята от рабочего самодельного устройства.
Разработки ecoins
Добавлено: 14 сен 2021, 23:19
tolochko
Добрый вечер
Пробовал сегодня подключить ваши блоки к плате MCU mini
Не заработали Пишет ошибка компиляции
Да блоки дисплея и счетчика
Подключал по очереди не тот не тот не работают в смысле не прошиваются
Разработки ecoins
Добавлено: 14 сен 2021, 23:38
Dryundel
ecoins писал(а): 13 сен 2021, 19:37
При подключении монитора порта работа скетча прекращается.
После выхода из монитора работа возобновляется со сбросом.
Возможно в схемотехнике модуля есть ошибки?
Может кто-нибудь разберется, а то работа встала...
Энвер, попробуй снизить тактовую частоту в IDE до 40МГц.
У меня одна плата вроде загружалась нормально, но не работала, уходила в бесконечный ребут.
Бился пару дней не понимая что не так, пока частоту не снизил.
Фиг знает, может выбраковка какая. Китайцы они такие....

Разработки ecoins
Добавлено: 15 сен 2021, 09:23
ecoins
Dryundel писал(а): 14 сен 2021, 23:38
Энвер, попробуй снизить тактовую частоту в IDE до 40МГц.
У меня одна плата вроде загружалась нормально, но не работала, уходила в бесконечный ребут.
Бился пару дней не понимая что не так, пока частоту не снизил.
Спасибо.
Попробовал - не помогло.
Видимо все-таки в аппаратной части модуля NodeMCU-Series-ESP-C3032S-Kit(так на обороте платы маскируется).
Но предложенный метод любопытен - возьму на заметку как один из инструментов при отладке.