Страница 3 из 7
Проект с меню на 1602 и энкодере
Добавлено: 08 дек 2018, 21:53
ingener
[ref]av[/ref], вроде удалось дострадать до требуемого алгоритма работы.
Jсталось понастраивать отмеченные константы (диапазон, порог срабатывания, величину "мертвой зоны").
Тут приходится методом научного тыка, т.к. как ассоциировать и спроецировать, к примеру, константу Float на требуемое напряжение в Вольтах, пока неясно.
Ну вот, к примеру, порог включения в данной конфигурации составляет 0,67 В при значении Float = 4
Спасибо за поддержку!
Проект с меню на 1602 и энкодере
Добавлено: 09 дек 2018, 13:06
ingener
av писал(а): 09 дек 2018, 12:02Как вы не поймете резисторный делитель и блок вольтметра уже подогнаны и расчитаны на совместную работу
Так делитель меняется соответственно, он уже не на 10 делит, а на 5.
Касательно нелинейности преобразования оптопары - постараюсь подробно описать с графиками нелинейности. Что-то с блоком нелинейного масштабирования не могу разобраться.
Проект с меню на 1602 и энкодере
Добавлено: 09 дек 2018, 15:10
ingener
[ref]av[/ref],
Проект с меню на 1602 и энкодере
Добавлено: 09 дек 2018, 18:19
ingener
av писал(а): 09 дек 2018, 12:02Нарисуйте схему развязки на оптопаре как вы это реализуете.
схема и результаты замеров по нелинейности передачи оптопары.
точнее, это даже не нелинейность (линия графика-то прямая), а что-то типа смещения нулевой точки.
для сравнения красным идеальная линия при использовании обычного делителя.
для облегчения сравнения подбираем при 24В входа = 4В выхода - это общая точка для двух графиков.
В итоге на реальном проекте это выглядит так -
вход 24В = на дисплее 24В
вход 8В = на дисплее 6,6 В
Проект с меню на 1602 и энкодере
Добавлено: 09 дек 2018, 21:33
ingener
[ref]av[/ref], походу разобрался.
если характеристика передачи оптопары - прямая, то для корректировки достаточно задать всего две крайние точки диапазона.
Реально теперь линейно работает

Проект с меню на 1602 и энкодере
Добавлено: 10 дек 2018, 08:48
ingener
[ref]av[/ref], просто предполагалось питать UNO от 9В
если нужно получить с оптопары выход сигнала до 5В, ее никак не запитаешь от 5В
Нужно минимум на пару вольт выше питание
НУ просто под рукой был КРЕН на 9В.
Можно стабилитрон 6,8В применить. Не принципиально.
Но можно ограничится выходом не более 4В, тогда да, можно и от 5 питать.
Проект с меню на 1602 и энкодере
Добавлено: 29 янв 2019, 20:34
ingener
Наконец пришел дисплей с 12С, подключил его но.....горит только верхний ряд кубиков, и все....
В проекте поменял в свойствах дисплея подключение на 12С, пины 4 и 5 подключены как надо....

Проект с меню на 1602 и энкодере
Добавлено: 29 янв 2019, 20:54
dizzyy
ingener писал(а): 29 янв 2019, 20:34 пины 4 и 5 подключены как надо....
только нада А4 и А5 это аналоговые а не цифровые
Проект с меню на 1602 и энкодере
Добавлено: 29 янв 2019, 21:38
ingener
dizzyy писал(а): 29 янв 2019, 20:54только нада А4 и А5 это аналоговые а не цифровые
О, точно
подключил на аналоговые, разницы нет.....
Верхняя строчка кубиков так и горит. И вообще, она горит даже если сигнальные пины дисплея никуда не подключены...
Не мог спалить цифровыми выходами?
Отправлено спустя 9 минут 38 секунд:
подключил второй, та же история...
может библиотеки какой не хватает??
Отправлено спустя 13 минут 18 секунд:
В настройках дисплея "адрес - 3F" - это правильно?
Отправлено спустя 7 минут 55 секунд:
Все, заработало. Нужно было, окааца, спец методикой узнать адрес. Оказался 27.
всем спасибо.
Проект с меню на 1602 и энкодере
Добавлено: 29 янв 2019, 21:54
ingener
Кстати, после смены подключения дисплея на 12С стал хуже работать энкодер. На одну позицию может переключить после 1 щелчка или двух. Также при быстром вращении может скакнуть назад. Раньше такого не было, работал очень четко.
Выросла нагрузка на ардуино от 12С? Не успевает?
Настройки энкодера не менялись, 4 импульса на щелчок.
Проект с меню на 1602 и энкодере
Добавлено: 29 янв 2019, 22:24
ingener
[ref]av[/ref], понятно. Жаль, конечно. Придется возвращаться к пучку проводов...и зачем накупил этих 12С

Проект с меню на 1602 и энкодере
Добавлено: 25 апр 2019, 10:31
ingener
Данный проект уcпешно загружается и работает на UNO, но не хочет загружаться на Nano...
В проекте просто поменял контроллер и все. Далее в IDE тоже выбрал Nano и old bootloader.
Может, этого недостаточно? Не так просто поменять контроллер для сложного проекта?
компиляция в 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 Мб)
Проект с меню на 1602 и энкодере
Добавлено: 25 апр 2019, 13:13
ingener
Проблема решилась, но немного странным путем....
при компиляции из FLprog (версия 4.2.4) почему-то открывается IDE версии 1.8.1 (хотя сама IDE обновлена до 1.8.9). При этом возникает ошибка загрузки в Nano.
Если же вручную скопировать код, открыть IDE отдельно (1.8.9) и вставить код, то загружается нормально.
Вот странно. откуда берется 1.8.1 ?

Проект с меню на 1602 и энкодере
Добавлено: 25 апр 2019, 13:46
Sancho
Настройки программы -> Папки -> Найти-> Ваш путь к папке с нужной ардуино IDE, применить.
Проект с меню на 1602 и энкодере
Добавлено: 06 июн 2019, 14:38
ingener
Просьба знающим проконсультировать по блоку нелинейного масштабирования.
Имеется входной сигнал типа
integer в виде реального напряжения в диапазоне примерно 0,25....3В.
Для создания нелинейной характеристики нужно задать несколько контрольных точек, но какие значения присваивать конкретным значениям входного напряжения?
К примеру,
вход 1В = выход должен быть эквивалентен 1,2В.
вход 2В = выход должен быть эквивалентен 4,4В.
какие цифры указывать на диаграмме?

Проект с меню на 1602 и энкодере
Добавлено: 06 июн 2019, 15:24
dsfbuy
integer - это целые числа (0-1-2-3 и тд)
float - дробные (0,25...3,00)
Проект с меню на 1602 и энкодере
Добавлено: 06 июн 2019, 15:47
ingener
dsfbuy писал(а): 06 июн 2019, 15:24
integer - это целые числа (0-1-2-3 и тд)
float - дробные (0,25...3,00)
Это понятно, но вопрос в другом - какое значение integer соответствует реальному напряжению сигнала, к примеру, 1В или 2В....
Проект с меню на 1602 и энкодере
Добавлено: 06 июн 2019, 19:31
dsfbuy
U=входное_значение*Uопорное/1024
Проект с меню на 1602 и энкодере
Добавлено: 02 авг 2019, 12:48
ingener
Образовался проект с заданием и отображением на 1602 семи пунктов меню.
Краткий смысл - в управлении задержками различных сигналов по получении от триггерной кнопки команд Старт и Стоп.
Предполагалось, что в составе будет блок генератора, но он уже "не лезет" (цифры в меню начинают мигать, энкодер работает некорректно - или вообще не переключает, или в непредсказуемую сторону).
Как только убираешь блок генератора - все работает четко.
Вопрос - данный блок работает вроде бы аж до 80кГц, нельзя ли как-то его "облегчить", пусть работает всего до 1-2кГц, к примеру, но потребляет меньше ресурсов контроллера?
На схеме генератор внизу слева.
PS - возможно, помог бы отказ от I2C, но уж больно не хочется этого...
Проект с меню на 1602 и энкодере
Добавлено: 02 авг 2019, 13:18
ecoins
Посмотрел проект. Грузить не стал - у меня не установлена библиотека CyberLlib.h - она у Вас в генераторе задействована (пользовательский блок). Мы перестали её использовать - она не подходит для ESP8266, ESP32 и т.д. Генератор 50 мс с высокой точностью периода можно получить блоками ecoins - если проект написан аккуратно.
В вашем проекте много: строковых переменных, стандартных (FLProg) дисплеев - все они отнимают время у процессора.
Еще блок защиты от дребезга - там используется задержка delay(1).
Всё это в совокупности приводит к тому, что даже небольшой проект - тормозит.
Возможные решения:
1) использовать блоки Lcd ecoins - уже получите значительный прогресс, возможно для Вашего проекта достаточный;
2) дополнительно использовать диспетчер задач ecoins.