Разработки ecoins

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

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

Разработки ecoins

#1221

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

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

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

Разработки ecoins

#1222

Сообщение 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
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1223

Сообщение 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
(39.56 КБ) 16 скачиваний
lcd16x4.png
Копия IMG_3106.jpg
---
Но идею, как решить не сложно проблему Вы мне подсказали.
И даже попробовал. И что-то получилось.
Спасибо.

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

Разработки ecoins

#1224

Сообщение 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
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1225

Сообщение 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
Сержант
Сообщения: 198
Зарегистрирован: 19.12.2019{, 14:47}
Репутация: 3
Имя: Сергей

Разработки ecoins

#1226

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

Здравствуйте ecoins, подскажите пожалуйста почему датчик DHT22 на вашем блоке категорически не работает, на стандартном блоке FLP работает
Вложения
test_shet.rar
(207.34 КБ) 21 скачивание
WhatsApp Image 2021-09-08 at 09.35.11.jpeg
10.png

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

Разработки ecoins

#1227

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

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

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

Разработки ecoins

#1228

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

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

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

Разработки ecoins

#1229

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

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

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

Разработки ecoins

#1230

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

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

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

Разработки ecoins

#1231

Сообщение 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
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1232

Сообщение 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
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1233

Сообщение 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
(964.33 КБ) 21 скачивание
Попробовал на простом тесте.
ESP32C3_Blink_RGB.ino
(923 байт) 15 скачиваний
Возникли трудности с функцией Serial.print()....
-----
При подключении монитора порта работа скетча прекращается.
После выхода из монитора работа возобновляется со сбросом.
Возможно в схемотехнике модуля есть ошибки?
Может кто-нибудь разберется, а то работа встала...

Аватара пользователя
Rovki
Полковник
Сообщения: 4873
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Разработки ecoins

#1234

Сообщение Rovki » 13.09.2021{, 21:21}

ecoins,
Попробуйте другой тест , типа вывода константы в порт .Может дело в таймерах или еще в чем ,но не самом порте, у меня вроде генератор не работал штатный. :smile37: Я выводил значения с датчика СО2 на монитор , нормально :smile427:
Электронщик до мозга костей и не только

starshoy81
Лейтенант
Сообщения: 530
Зарегистрирован: 05.04.2016{, 23:30}
Репутация: 29
Откуда: Санкт-Петербург
Имя: Илья

Разработки ecoins

#1235

Сообщение starshoy81 » 13.09.2021{, 21:24}

ecoins, я встречал в коде скорость 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
Полковник
Сообщения: 2930
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#1236

Сообщение ecoins » 13.09.2021{, 21:57}

starshoy81 писал(а):
13.09.2021{, 21:24}
ecoins, я встречал в коде скорость 500000.

baudRate = 500000; // USER PARAMETER - USB Serial Baud Rate (bps)
Serial.begin(baudRate);
а дальше просто вывод с периодом
Спасибо за быстрый ответ.
Вопрос о каком коде идет речь? В каком-то то скетче или в ядре?
И те же вопросы по коду ниже...
starshoy81 писал(а):
13.09.2021{, 21:24}
Кстати на фото приведённой платы отсутствуют два транзистора управляющие сбросом и работой есп как на этой схеме.

Схему смотрел поверхностно и подобное подозрение у меня возникло.
Хотелось бы понять:
1.Это ошибка производителя?
2.Это возможно решить программно (драйвер или т.п.)?
3. Можно ли доработать плату простыми средствами?
4.Наверное можно попробовать через внешний адаптер и RX,TX? (позже попробую).
------
В продаже есть более "правильная плата" https://aliexpress.ru/item/100500222609 ... 41b7uz7Xyh
но стоит существенно дороже.

Отправлено спустя 12 минут 36 секунд:
Rovki писал(а):
13.09.2021{, 21:21}
Пробовал... Не получается...
Rovki, а у тебя такая плата?
ESP32C3_kit.jpg
Справа внизу два места под транзисторы пустые.
У тебя они распаяны?

starshoy81
Лейтенант
Сообщения: 530
Зарегистрирован: 05.04.2016{, 23:30}
Репутация: 29
Откуда: Санкт-Петербург
Имя: Илья

Разработки ecoins

#1237

Сообщение starshoy81 » 13.09.2021{, 22:35}

ecoins писал(а):
13.09.2021{, 22:09}
Вопрос о каком коде идет речь? В каком-то то скетче или в ядре?
В скетче, оба куска из одной программы.
ecoins писал(а):
13.09.2021{, 22:09}
Это ошибка производителя?
Тут не знаю, схема, которую я привёл, взята от рабочего самодельного устройства.

tolochko
Сержант
Сообщения: 247
Зарегистрирован: 30.11.2016{, 16:58}
Репутация: 7
Откуда: Днепропетровск

Разработки ecoins

#1238

Сообщение tolochko » 14.09.2021{, 23:19}

Добрый вечер
Пробовал сегодня подключить ваши блоки к плате MCU mini
Не заработали Пишет ошибка компиляции
Да блоки дисплея и счетчика
Подключал по очереди не тот не тот не работают в смысле не прошиваются

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Разработки ecoins

#1239

Сообщение Dryundel » 14.09.2021{, 23:38}

ecoins писал(а):
13.09.2021{, 19:37}
При подключении монитора порта работа скетча прекращается.
После выхода из монитора работа возобновляется со сбросом.
Возможно в схемотехнике модуля есть ошибки?
Может кто-нибудь разберется, а то работа встала...
Энвер, попробуй снизить тактовую частоту в IDE до 40МГц.
У меня одна плата вроде загружалась нормально, но не работала, уходила в бесконечный ребут.
Бился пару дней не понимая что не так, пока частоту не снизил.
Фиг знает, может выбраковка какая. Китайцы они такие.... :)

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

Разработки ecoins

#1240

Сообщение ecoins » 15.09.2021{, 09:23}

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

Закрыто

Вернуться в «Команда ecoins»