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

Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

[ref]av[/ref], вроде удалось дострадать до требуемого алгоритма работы. :yes:
Jсталось понастраивать отмеченные константы (диапазон, порог срабатывания, величину "мертвой зоны").
Тут приходится методом научного тыка, т.к. как ассоциировать и спроецировать, к примеру, константу Float на требуемое напряжение в Вольтах, пока неясно.
Ну вот, к примеру, порог включения в данной конфигурации составляет 0,67 В при значении Float = 4
Спасибо за поддержку!
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

av писал(а): 09 дек 2018, 12:02Как вы не поймете резисторный делитель и блок вольтметра уже подогнаны и расчитаны на совместную работу
Так делитель меняется соответственно, он уже не на 10 делит, а на 5.
Касательно нелинейности преобразования оптопары - постараюсь подробно описать с графиками нелинейности. Что-то с блоком нелинейного масштабирования не могу разобраться.
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

[ref]av[/ref],
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

av писал(а): 09 дек 2018, 12:02Нарисуйте схему развязки на оптопаре как вы это реализуете.
схема и результаты замеров по нелинейности передачи оптопары.
точнее, это даже не нелинейность (линия графика-то прямая), а что-то типа смещения нулевой точки.
для сравнения красным идеальная линия при использовании обычного делителя.
для облегчения сравнения подбираем при 24В входа = 4В выхода - это общая точка для двух графиков.
В итоге на реальном проекте это выглядит так -
вход 24В = на дисплее 24В
вход 8В = на дисплее 6,6 В
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

[ref]av[/ref], походу разобрался.
если характеристика передачи оптопары - прямая, то для корректировки достаточно задать всего две крайние точки диапазона.
Реально теперь линейно работает :smile9:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

[ref]av[/ref], просто предполагалось питать UNO от 9В
если нужно получить с оптопары выход сигнала до 5В, ее никак не запитаешь от 5В
Нужно минимум на пару вольт выше питание
НУ просто под рукой был КРЕН на 9В.
Можно стабилитрон 6,8В применить. Не принципиально.
Но можно ограничится выходом не более 4В, тогда да, можно и от 5 питать.
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

Наконец пришел дисплей с 12С, подключил его но.....горит только верхний ряд кубиков, и все....
В проекте поменял в свойствах дисплея подключение на 12С, пины 4 и 5 подключены как надо.... :smile37:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24 ноя 2017, 16:25
Откуда: Червоноград
Имя: Марьян

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

Сообщение dizzyy »

ingener писал(а): 29 янв 2019, 20:34 пины 4 и 5 подключены как надо....
только нада А4 и А5 это аналоговые а не цифровые
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

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

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

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

Отправлено спустя 7 минут 55 секунд:
Все, заработало. Нужно было, окааца, спец методикой узнать адрес. Оказался 27.
всем спасибо.
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

Кстати, после смены подключения дисплея на 12С стал хуже работать энкодер. На одну позицию может переключить после 1 щелчка или двух. Также при быстром вращении может скакнуть назад. Раньше такого не было, работал очень четко.
Выросла нагрузка на ардуино от 12С? Не успевает?
Настройки энкодера не менялись, 4 импульса на щелчок.
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

[ref]av[/ref], понятно. Жаль, конечно. Придется возвращаться к пучку проводов...и зачем накупил этих 12С :smile171:
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

Данный проект у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 Мб)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

Проблема решилась, но немного странным путем....
при компиляции из FLprog (версия 4.2.4) почему-то открывается IDE версии 1.8.1 (хотя сама IDE обновлена до 1.8.9). При этом возникает ошибка загрузки в Nano.
Если же вручную скопировать код, открыть IDE отдельно (1.8.9) и вставить код, то загружается нормально.
Вот странно. откуда берется 1.8.1 ? :smile37:
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

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

Сообщение Sancho »

Настройки программы -> Папки -> Найти-> Ваш путь к папке с нужной ардуино IDE, применить.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

Просьба знающим проконсультировать по блоку нелинейного масштабирования.
Имеется входной сигнал типа integer в виде реального напряжения в диапазоне примерно 0,25....3В.
Для создания нелинейной характеристики нужно задать несколько контрольных точек, но какие значения присваивать конкретным значениям входного напряжения?
К примеру,
вход 1В = выход должен быть эквивалентен 1,2В.
вход 2В = выход должен быть эквивалентен 4,4В.
какие цифры указывать на диаграмме? :smile37:
У вас нет необходимых прав для просмотра вложений в этом сообщении.
dsfbuy
Сержант
Сообщения: 172
Зарегистрирован: 03 ноя 2018, 12:40
Откуда: Братск
Имя: Виктор

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

Сообщение dsfbuy »

integer - это целые числа (0-1-2-3 и тд)
float - дробные (0,25...3,00)
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

dsfbuy писал(а): 06 июн 2019, 15:24 integer - это целые числа (0-1-2-3 и тд)
float - дробные (0,25...3,00)
Это понятно, но вопрос в другом - какое значение integer соответствует реальному напряжению сигнала, к примеру, 1В или 2В....
dsfbuy
Сержант
Сообщения: 172
Зарегистрирован: 03 ноя 2018, 12:40
Откуда: Братск
Имя: Виктор

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

Сообщение dsfbuy »

U=входное_значение*Uопорное/1024
Аватара пользователя
ingener
Лейтенант
Сообщения: 580
Зарегистрирован: 14 окт 2018, 00:26
Имя: Андрей
Благодарил (а): 2 раза
Поблагодарили: 3 раза

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

Сообщение ingener »

Образовался проект с заданием и отображением на 1602 семи пунктов меню.
Краткий смысл - в управлении задержками различных сигналов по получении от триггерной кнопки команд Старт и Стоп.
Предполагалось, что в составе будет блок генератора, но он уже "не лезет" (цифры в меню начинают мигать, энкодер работает некорректно - или вообще не переключает, или в непредсказуемую сторону).
Как только убираешь блок генератора - все работает четко.
Вопрос - данный блок работает вроде бы аж до 80кГц, нельзя ли как-то его "облегчить", пусть работает всего до 1-2кГц, к примеру, но потребляет меньше ресурсов контроллера?
На схеме генератор внизу слева.
PS - возможно, помог бы отказ от I2C, но уж больно не хочется этого...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
ecoins
Полковник
Сообщения: 4013
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 159 раз

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

Сообщение ecoins »

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

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость