Простое меню на энкодере, дисплей 2004 по I2C с русификацией

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#41

Сообщение ingener » 08.12.2018{, 21:53}

av, вроде удалось дострадать до требуемого алгоритма работы. :yes:
Jсталось понастраивать отмеченные константы (диапазон, порог срабатывания, величину "мертвой зоны").
Тут приходится методом научного тыка, т.к. как ассоциировать и спроецировать, к примеру, константу Float на требуемое напряжение в Вольтах, пока неясно.
Ну вот, к примеру, порог включения в данной конфигурации составляет 0,67 В при значении Float = 4
Спасибо за поддержку!
Вложения
67.JPG

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#42

Сообщение ingener » 09.12.2018{, 13:06}

av писал(а):
09.12.2018{, 12:02}
Как вы не поймете резисторный делитель и блок вольтметра уже подогнаны и расчитаны на совместную работу
Так делитель меняется соответственно, он уже не на 10 делит, а на 5.
Касательно нелинейности преобразования оптопары - постараюсь подробно описать с графиками нелинейности. Что-то с блоком нелинейного масштабирования не могу разобраться.

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#43

Сообщение ingener » 09.12.2018{, 15:10}

av,
Вложения
del.png

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#44

Сообщение ingener » 09.12.2018{, 18:19}

av писал(а):
09.12.2018{, 12:02}
Нарисуйте схему развязки на оптопаре как вы это реализуете.
схема и результаты замеров по нелинейности передачи оптопары.
точнее, это даже не нелинейность (линия графика-то прямая), а что-то типа смещения нулевой точки.
для сравнения красным идеальная линия при использовании обычного делителя.
для облегчения сравнения подбираем при 24В входа = 4В выхода - это общая точка для двух графиков.
В итоге на реальном проекте это выглядит так -
вход 24В = на дисплее 24В
вход 8В = на дисплее 6,6 В
Вложения
opto2.JPG
opto1.JPG

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#45

Сообщение ingener » 09.12.2018{, 21:33}

av, походу разобрался.
если характеристика передачи оптопары - прямая, то для корректировки достаточно задать всего две крайние точки диапазона.
Реально теперь линейно работает :smile9:
Вложения
nel4.JPG

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#46

Сообщение ingener » 10.12.2018{, 08:48}

av, просто предполагалось питать UNO от 9В
если нужно получить с оптопары выход сигнала до 5В, ее никак не запитаешь от 5В
Нужно минимум на пару вольт выше питание
НУ просто под рукой был КРЕН на 9В.
Можно стабилитрон 6,8В применить. Не принципиально.
Но можно ограничится выходом не более 4В, тогда да, можно и от 5 питать.

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#47

Сообщение ingener » 29.01.2019{, 20:34}

Наконец пришел дисплей с 12С, подключил его но.....горит только верхний ряд кубиков, и все....
В проекте поменял в свойствах дисплея подключение на 12С, пины 4 и 5 подключены как надо.... :smile37:
Вложения
Снимок9.JPG
Снимок9.JPG (12.62 КБ) 921 просмотр
030119for55512С.flp
(5.19 МБ) 53 скачивания

Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24.11.2017{, 16:25}
Репутация: 37
Откуда: Червоноград
Имя: Марьян

Проект с меню на 1602 и энкодере

#48

Сообщение dizzyy » 29.01.2019{, 20:54}

ingener писал(а):
29.01.2019{, 20:34}
пины 4 и 5 подключены как надо....
только нада А4 и А5 это аналоговые а не цифровые

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#49

Сообщение ingener » 29.01.2019{, 21:08}

dizzyy писал(а):
29.01.2019{, 20:54}
только нада А4 и А5 это аналоговые а не цифровые
О, точно :shok:
подключил на аналоговые, разницы нет.....
Верхняя строчка кубиков так и горит. И вообще, она горит даже если сигнальные пины дисплея никуда не подключены...
Не мог спалить цифровыми выходами?

Отправлено спустя 9 минут 38 секунд:
подключил второй, та же история...
может библиотеки какой не хватает??

Отправлено спустя 13 минут 18 секунд:
В настройках дисплея "адрес - 3F" - это правильно?

Отправлено спустя 7 минут 55 секунд:
Все, заработало. Нужно было, окааца, спец методикой узнать адрес. Оказался 27.
всем спасибо.

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#50

Сообщение ingener » 29.01.2019{, 21:54}

Кстати, после смены подключения дисплея на 12С стал хуже работать энкодер. На одну позицию может переключить после 1 щелчка или двух. Также при быстром вращении может скакнуть назад. Раньше такого не было, работал очень четко.
Выросла нагрузка на ардуино от 12С? Не успевает?
Настройки энкодера не менялись, 4 импульса на щелчок.

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#51

Сообщение ingener » 29.01.2019{, 22:24}

av, понятно. Жаль, конечно. Придется возвращаться к пучку проводов...и зачем накупил этих 12С :smile171:

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#52

Сообщение ingener » 25.04.2019{, 10:31}

Данный проект уcпешно загружается и работает на UNO, но не хочет загружаться на Nano...
В проекте просто поменял контроллер и все. Далее в IDE тоже выбрал Nano и old bootloader.
Может, этого недостаточно? Не так просто поменять контроллер для сложного проекта? :smile37:
компиляция в IDE проходит, но далее загрузка - нет.

сообщение об ошибке:

Arduino: 1.8.1 (Windows 7), Плата:"Arduino Nano, ATmega328P (Old Bootloader)"
avr-g++: error: missing device or architecture after '-mmcu='
exit status 1
Ошибка компиляции для платы Arduino Nano.

PS - проект в архиве, т.к. напрямую не дает загрузить, ругается, что файл большой (5 Мб)
Вложения
AVC_18_04_19_complete.rar
(225.66 КБ) 54 скачивания

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#53

Сообщение ingener » 25.04.2019{, 13:13}

Проблема решилась, но немного странным путем....
при компиляции из FLprog (версия 4.2.4) почему-то открывается IDE версии 1.8.1 (хотя сама IDE обновлена до 1.8.9). При этом возникает ошибка загрузки в Nano.
Если же вручную скопировать код, открыть IDE отдельно (1.8.9) и вставить код, то загружается нормально.
Вот странно. откуда берется 1.8.1 ? :smile37:

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

Проект с меню на 1602 и энкодере

#54

Сообщение Sancho » 25.04.2019{, 13:46}

Настройки программы -> Папки -> Найти-> Ваш путь к папке с нужной ардуино IDE, применить.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#55

Сообщение ingener » 06.06.2019{, 14:38}

Просьба знающим проконсультировать по блоку нелинейного масштабирования.
Имеется входной сигнал типа integer в виде реального напряжения в диапазоне примерно 0,25....3В.
Для создания нелинейной характеристики нужно задать несколько контрольных точек, но какие значения присваивать конкретным значениям входного напряжения?
К примеру,
вход 1В = выход должен быть эквивалентен 1,2В.
вход 2В = выход должен быть эквивалентен 4,4В.
какие цифры указывать на диаграмме? :smile37:
Вложения
nl.JPG
nl.JPG (18.35 КБ) 595 просмотров

dsfbuy
Сержант
Сообщения: 171
Зарегистрирован: 03.11.2018{, 12:40}
Репутация: 21
Откуда: Братск
Имя: Виктор

Проект с меню на 1602 и энкодере

#56

Сообщение dsfbuy » 06.06.2019{, 15:24}

integer - это целые числа (0-1-2-3 и тд)
float - дробные (0,25...3,00)

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#57

Сообщение ingener » 06.06.2019{, 15:47}

dsfbuy писал(а):
06.06.2019{, 15:24}
integer - это целые числа (0-1-2-3 и тд)
float - дробные (0,25...3,00)
Это понятно, но вопрос в другом - какое значение integer соответствует реальному напряжению сигнала, к примеру, 1В или 2В....

dsfbuy
Сержант
Сообщения: 171
Зарегистрирован: 03.11.2018{, 12:40}
Репутация: 21
Откуда: Братск
Имя: Виктор

Проект с меню на 1602 и энкодере

#58

Сообщение dsfbuy » 06.06.2019{, 19:31}

U=входное_значение*Uопорное/1024

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

Проект с меню на 1602 и энкодере

#59

Сообщение ingener » 02.08.2019{, 12:48}

Образовался проект с заданием и отображением на 1602 семи пунктов меню.
Краткий смысл - в управлении задержками различных сигналов по получении от триггерной кнопки команд Старт и Стоп.
Предполагалось, что в составе будет блок генератора, но он уже "не лезет" (цифры в меню начинают мигать, энкодер работает некорректно - или вообще не переключает, или в непредсказуемую сторону).
Как только убираешь блок генератора - все работает четко.
Вопрос - данный блок работает вроде бы аж до 80кГц, нельзя ли как-то его "облегчить", пусть работает всего до 1-2кГц, к примеру, но потребляет меньше ресурсов контроллера?
На схеме генератор внизу слева.
PS - возможно, помог бы отказ от I2C, но уж больно не хочется этого...
Вложения
FLW_02_08_gen_bug.flp
(625.1 КБ) 65 скачиваний

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

Проект с меню на 1602 и энкодере

#60

Сообщение ecoins » 02.08.2019{, 13:18}

Посмотрел проект. Грузить не стал - у меня не установлена библиотека CyberLlib.h - она у Вас в генераторе задействована (пользовательский блок). Мы перестали её использовать - она не подходит для ESP8266, ESP32 и т.д. Генератор 50 мс с высокой точностью периода можно получить блоками ecoins - если проект написан аккуратно.
В вашем проекте много: строковых переменных, стандартных (FLProg) дисплеев - все они отнимают время у процессора.
Еще блок защиты от дребезга - там используется задержка delay(1).
Всё это в совокупности приводит к тому, что даже небольшой проект - тормозит.
Возможные решения:
1) использовать блоки Lcd ecoins - уже получите значительный прогресс, возможно для Вашего проекта достаточный;
2) дополнительно использовать диспетчер задач ecoins.

Ответить

Вернуться в «Помогите, а то я "нимагу"»