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

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

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

#1

Сообщение ingener » 26.11.2018{, 11:50}

Есть простая задачка, при появлении на входе постянного напряжения, превышающего заданное значение, подается сигнал на таймер, который после также задаваемого значения задержки запускает ШИМ, который также регулируется задаваемым значением.
Вот вопрос, можно ли эти все три значения задавать с помощью LCD Keypad?
Подозреваю, что теоретически да, но все попытки понять, как это сделать, пока не удались((
Находятся или простые скетчи с названиями кнопок или сложные меню в коде, в которых не разобраться, да и не хочетстя после знакомтва с FLprog :)
Просьба подсказать, с чего и куда начинать двигаться в построении подобного меню в LCD Keypad.
Вложения
test1.JPG
test1.flp
(36.72 КБ) 35 скачиваний
Последний раз редактировалось ingener 02.09.2019{, 14:06}, всего редактировалось 3 раза.

av
Лейтенант
Сообщения: 663
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 33
Имя: Алексей

LCD Keypad для задания аналоговых параметров

#2

Сообщение av » 26.11.2018{, 12:32}

ingener, вам явно сюда

Отправлено спустя 5 минут 7 секунд:
ingener писал(а):
26.11.2018{, 11:50}
запускает ШИМ, который также регулируется задаваемым значением.
На вашей схема не вижу блока ШИМ. На схеме просто генератор который не сможет менять скважность импульсов.

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

LCD Keypad для задания аналоговых параметров

#3

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

av, генератор же в режиме регулировки длительности импульса, а пауза константа.
за ссылку спасибо, почитаем

av
Лейтенант
Сообщения: 663
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 33
Имя: Алексей

LCD Keypad для задания аналоговых параметров

#4

Сообщение av » 26.11.2018{, 13:40}

ingener, Чем хотите управлять ? Может использовать штатный ШИМ ?

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

LCD Keypad для задания аналоговых параметров

#5

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

av, управлять планируется внешним генератором, который управляется напряжением (среднее значение от ШИМ). А что значит "встроенный ШИМ"? В меню FLprog в разделе "таймеры" только генератор и таймер.
Внешний генератор приходится использовать потому, что так и не получилось сделать генератор из блока программы с предсказуемыми и необходимыми параметрами. Если нарисовать только один генератор, то он работает четко вплоть до десятков кГц, но если схема содержит еще блоки, то частота резко меняется в сторону снижения и управлять ею адекватно уже как-то не получается. Видимо влияет цикличность Ардуино.
Необходимые пределы изменения 250...3000Гц.

av
Лейтенант
Сообщения: 663
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 33
Имя: Алексей

LCD Keypad для задания аналоговых параметров

#6

Сообщение av » 26.11.2018{, 14:10}

ingener, При создании выхода нужно выбрать "ШИМ". Упралять шимом просто подачей значения на созданный выход с типом (integer).Но максимальная частота в пределах 490Гц, на выводах 5 и 6 до 1кГц.

Отправлено спустя 13 минут 27 секунд:
Если нужен скоростной ШИМ попробуйте блоки от уважаемого Слимпера.
ШИМ 10 БИТ.ubl
Блоки Слимпера
(208.42 КБ) 49 скачиваний

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

LCD Keypad для задания аналоговых параметров

#7

Сообщение ingener » 27.11.2018{, 16:07}

av, ОК, по ШИМ ясно. Но вот с меню что-то совсем плохо(( по ссылке все слишком сложно, многоступенчатые массивы... В данном случае достаточно было бы всего одного экрана
примерно так "U=12, V=10, t=3"
т.е задействовано как раз 15 символов одной строки (если считать и пробелы)
на второй строке можно просто вставить пстоянный текст типа названия проекта.
нужно просто иметь возможность менять значения на одном экране (курсор?)
каждая цифра меняет значение постоянной, которая может быть использована для аналогового управления блоками. Т.е. у дисплея 3 выхода (с точки зрения FLprog).
такая конфигурация в принципе возможна? :smile37:

av
Лейтенант
Сообщения: 663
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 33
Имя: Алексей

LCD Keypad для задания аналоговых параметров

#8

Сообщение av » 27.11.2018{, 16:48}

ingener, без меню для настройки 3-х значений нужно как минимум 3 счетчика с обвязкой управления, так же для сохранения значений в ППЗУ нужно использовать блоки сохранения и чтения из памяти. Что в конечном счете приведет к громоздкости схемы и как следствие ошибки. Обрисуйте что вы хотите подробней какие значения начальные, минимальные максимальные. Какие нужно сохранять.
Помогу разобраться с меню.

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

LCD Keypad для задания аналоговых параметров

#9

Сообщение ingener » 27.11.2018{, 17:21}

av, в итоге нужно задавать три параметра
- частоту генератора в пределах примерно 250...1000Гц ( можно и даже удобнее цифрой от 1 до 10 ступенчато, если так проще). Если будет проще вместо генератора управлять ШИМ, то пусть будет ШИМ (в этом случае ген будет внешний, управляться этим самым ШИМом)
- напряжение в вольтах, 7....20 (конечно, значения эти не фактические, а индицируемые)
- время задержки, 0...10 сек

все эти значения желательно сохранять.
начальные можно взять примерно средние из указанных диапазонов ( соотв. 5, 14, 5)

PS - как для хорошо знакомого с дискретной электроникой, не будет проблемой, если каждый из упомянутых параметров будет выводиться просто в виде ШИМ сигнала на 3 выходах Ардуино. Доработать дальше до требуемого функционала уже совсем не вопрос.

av
Лейтенант
Сообщения: 663
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 33
Имя: Алексей

LCD Keypad для задания аналоговых параметров

#10

Сообщение av » 27.11.2018{, 17:28}

ingener, не совсем понял что вы хотите. Но управление с помощью меню для трех значений нарисую. Управлять чем будете ?
Энкодер или кнопки ?

Отправлено спустя 7 минут 37 секунд:
Упс... сори ! Забыл про первый пост :D . Вопрос снимается

Отправлено спустя 1 минуту 20 секунд:
Какой контроллер ?

Отправлено спустя 2 часа 57 минут 22 секунды:
Пробуйте.
Тест меню.flp
(678.31 КБ) 47 скачиваний

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

LCD Keypad для задания аналоговых параметров

#11

Сообщение ingener » 28.11.2018{, 08:59}

av, спаcибо! Но что-то подсветка дисплея не работает, можно ее сделать постоянно горящей?
а то лишь при входе в меню загорается, если менять параметр "Р"
контроллер UNO
при компиляции FLprog и потом IDE ругались на отсутствие библиотек Timer Three-master и TimerOne.h
по инструкции с просторов интернета -
"...Библиотеку для таймера Timer3 можно скачать здесь (TimerThree.zip)
Для установки просто распакуйте и поместите файлы в каталог Arduino/hardware/libraries/Timer3/.
...Скачать можно здесь (TimerOne-r11.zip).
Для установки просто распакуйте и поместите файлы в каталог Arduino/hardware/libraries/Timer1/.

после этого FLprog все равно ругался, но IDE переварил нормально.

av
Лейтенант
Сообщения: 663
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 33
Имя: Алексей

LCD Keypad для задания аналоговых параметров

#12

Сообщение av » 28.11.2018{, 09:32}

ingener, странно должна гореть постоянно. Проверяйте у себя на LCD Keypad Shieldе где там собака зарыта. Покрутите регулятор яркости подсветки. В библиотеке на дисплей не нашел команды регулирующую яркость. У меня нет LCD Keypad Shieldа по этому не могу сказать в чем проблема.Смотрите даташит на LCD Keypad Shield.

Отправлено спустя 7 минут 54 секунды:
LCD Keypad Shield пиныПоказать
Keypad.jpg

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

LCD Keypad для задания аналоговых параметров

#13

Сообщение ingener » 28.11.2018{, 09:53}

av, а параметр "Р" в Вашем меню за что отвечает?
И, кстати, в отличие от трех остальных параметров, он не запоминается (после перезагрузки он всегда ноль)
Именно если его изменить, то загорается подсветка и потом горит все время, пока находишься в меню. Но стоит перезагрузить, дисплей снова темный.
У шилда вроде бы по 10 входу регулируется подсветка ШИМ
А резистор не влияет, он меняет просто контраст, а тут выключается она полностью

av
Лейтенант
Сообщения: 663
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 33
Имя: Алексей

LCD Keypad для задания аналоговых параметров

#14

Сообщение av » 28.11.2018{, 09:56}

ingener, похоже конфликт с блоком ШИМ сейчас проверю.

Отправлено спустя 9 минут 28 секунд:
Так и есть конфликт по пинам. Девятый пин который используется для ШИМ так же используется и для дисплея. Так что выходов Шим возможно использовать только два. В следствии чего третье значение вывести не получится в режиме аналоговый. Знать бы что вы мутите, может третье значение как то выводить в цифровом виде ( на пример выход вкл/выкл по таймеру или нагрузку).

Отправлено спустя 2 минуты 52 секунды:
ingener писал(а):
28.11.2018{, 09:53}
а параметр "Р" в Вашем меню за что отвечает?
этот параметр отвечает за период ШИМ т.е. за частоту.

av
Лейтенант
Сообщения: 663
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 33
Имя: Алексей

LCD Keypad для задания аналоговых параметров

#15

Сообщение av » 28.11.2018{, 10:13}

ingener, не делайте так !!! Не редактируйте свои сообщения с дополнением сообщения. Так как я его уже прочитал и к нему обычно не возвращаюсь. Что то хотите добавить пишите новое. Редактируйте только ошибки.

Отправлено спустя 11 минут 1 секунду:
ingener, просмотрел еще раз проект, похоже из за LCD keypad shieldа придется отказаться от ШИМа и вовсе. Так как все пины с ШИМ заняты шилдом.

Отправлено спустя 10 минут 21 секунду:
Вообщем из за шилда остается только один выход пин 11 который может работать в режиме ШИМ и то с низкой скоростью примерно на 490 Гц.

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

LCD Keypad для задания аналоговых параметров

#16

Сообщение ingener » 28.11.2018{, 10:52}

av, Сорри, видимо, я не совсем четко обозначил задачу, не имея пока достаточно опыта в программировании. Попробую с более привычной точки зрения дискретной электроники. Действительно, не нужно три выхода, ведь два из них (U и t) используются только внутри схемы. Нужен только выход ШИМ или генератора, скважность или частота которого (V) задается в меню.
Вот структурная схема, на которой задаваемые программно параметры обозначены в виде сигналов с потенциометров.
Частота ШИМ, видимо, не принципиальна, т.к. сигнал все равно будет интерполироваться в постоянное напряжение для управления внешним генератором.
Вложения
av4.JPG

av
Лейтенант
Сообщения: 663
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 33
Имя: Алексей

LCD Keypad для задания аналоговых параметров

#17

Сообщение av » 28.11.2018{, 11:04}

ingener, все равно не въезжаю. Чем вы хотите управлять ?

av
Лейтенант
Сообщения: 663
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 33
Имя: Алексей

LCD Keypad для задания аналоговых параметров

#18

Сообщение av » 28.11.2018{, 11:11}

ingener писал(а):
28.11.2018{, 10:52}
т.к. сигнал все равно будет интерполироваться в постоянное напряжение для управления внешним генератором.
Сколько входов управления на внешнем генераторе ?

av
Лейтенант
Сообщения: 663
Зарегистрирован: 25.09.2017{, 13:25}
Репутация: 33
Имя: Алексей

LCD Keypad для задания аналоговых параметров

#19

Сообщение av » 28.11.2018{, 11:12}

И как будете интерполировать ЦАП ?

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

LCD Keypad для задания аналоговых параметров

#20

Сообщение ingener » 28.11.2018{, 11:28}

av,
попробую все по полочкам на уровне своих познаний FLprog
1) блок компаратора. На один вход подается внешнее напряжение 1...5В
На второй вход подается напряжение из меню LCD Keypad, в качестве параметра "U", с которым будет сравниваться входное внешнее напряжение.
2) блок таймера. Обеспечивает зхадержку включения. Время задержки задается параметром "t" из меню LCD Keypad.
3) ШИМ. включается по сигналу от таймера. Скважность задается из меню LCD Keypad параметром "V"

ЦАП - просто RC цепочка, которая из ШИМ будет создавать постоянное напряжение, пропорциональное скважности ШИМ. Далее будет схемка на отдельной микросхеме, ГУН (генератор, управляемый напряжением).
Последний раз редактировалось ingener 28.11.2018{, 12:07}, всего редактировалось 1 раз.

Ответить

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

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

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