Помощь новичку. Меню и энкодер.

Использование прочих датчиков и энкодеров и пользовательских блоков к ним
TipTopBY
Рядовой
Сообщения: 6
Зарегистрирован: 04 мар 2017, 14:30

Помощь новичку. Меню и энкодер.

Сообщение TipTopBY »

Добрый день!
Опишу что хочу получить:
Система контроля работы тэна и вентиляторов в зависимости от датчиков температуры.
Вывод данных на LCD 1602.

Преключение информации на экране с помощью вращения энкодера.
При выборе экрана с входом в настройки (Settings menu) и нажатии на кнопку эенкодера, активация меню.
В пунктах меню настройка параметров с помощью вращения эенодера, переключения по пунктам меню по нажатию на кнопку энкодера. При выборе пункта меню Exit и нажатии кнопку энкодера - выход из меню.

Сталкнулся со следующими проблемами:
1. После загрузки система сразу оказываеться в Меню,что не нормально , вращение энкодера работает коретно, переход по меню также. Но в пункте меню Exit при нажатии кнопки из меню выход не происходит.

2. Если отключить меню, что бы вход не происходил(заведомо внести ошибку в программу), то отображаеться 1 информационный экран, но переход на другие при вращении энкодера не происходит.
Заметил что на это как то влияет Блок энкодера который участвует в работе Меню. Сменив на нем пины подключения(по сути указав другой энкодер), переключение информации на экране стало коректным, но тем самым настйка параметров в меню стала не возможной.
Я попытался более четко определить работу того или иного блока энеодера, отредактировав блок - добавив вход En, высокий сигнал на котром включал бы данный блок энкодера, файл блока приложу к посту, но нужного эфекта это не дало.

Прошу взглянуть на мою программу, указать на ошибки или предложить варианты решения проблем.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось TipTopBY 04 мар 2017, 15:14, всего редактировалось 1 раз.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Помощь новичку. Меню и энкодер.

Сообщение Boroda »

TipTopBY, никогда так не делайте, будет микросекундный ногодрыг (вкл/выкл).



Лучше убрать из плат выход МК и в конце программы сделать так. Под конец цикла переменная вся обсчитается, а потом уже ее на выход пускаем.

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Boroda 04 мар 2017, 21:53, всего редактировалось 1 раз.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Помощь новичку. Меню и энкодер.

Сообщение Boroda »

А еще лучше так. Блоки сравнения могут быть раскиданы по всей программе, а вывод наружу на последней плате. Очень просто строится алгоритм, отслеживать надо только порядок блоков сравнения по приоритету срабатывания.

У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Boroda 04 мар 2017, 21:57, всего редактировалось 1 раз.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Помощь новичку. Меню и энкодер.

Сообщение Boroda »

У Вас получается, что вентилятор всегда будет работать только по последнему условию "включение вентилятора", а плата "отключение вентилятора" будет бесполезна.
Должно быть так.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Boroda 04 мар 2017, 22:23, всего редактировалось 1 раз.
TipTopBY
Рядовой
Сообщения: 6
Зарегистрирован: 04 мар 2017, 14:30

Помощь новичку. Меню и энкодер.

Сообщение TipTopBY »

Спс за совет, принял к сведению.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Помощь новичку. Меню и энкодер.

Сообщение Boroda »

У Вас все кнопки на землю замыкаются? Если да, то на всех входах от кнопок надо поставить инверсию. Если инверсии нет, то программа при запуске понимает, что нажаты все кнопки и перещелкивает меню.

У вас нет необходимых прав для просмотра вложений в этом сообщении.
TipTopBY
Рядовой
Сообщения: 6
Зарегистрирован: 04 мар 2017, 14:30

Помощь новичку. Меню и энкодер.

Сообщение TipTopBY »

Да Вы правы, я учел этот мемент в управлении подстветкой, а потом почему-то упустил, сейчас выставил инверсию на на всех блоках "Select". Но всеравно при загрузке система оказываеться в Меню. Так же выход из меню не отрабатывает.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Помощь новичку. Меню и энкодер.

Сообщение Boroda »

Немного причесал Вашу программу, проверьте.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Помощь новичку. Меню и энкодер.

Сообщение Boroda »

Маленько упростил энкодер. Ну и под него программу. И сделал сброс в первый пункт при входе в меню.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Boroda 04 мар 2017, 23:41, всего редактировалось 1 раз.
TipTopBY
Рядовой
Сообщения: 6
Зарегистрирован: 04 мар 2017, 14:30

Помощь новичку. Меню и энкодер.

Сообщение TipTopBY »

Проверил. При загручке показывает информационный экран, ка надо. Но вращение энкодера экраны не переключает. Если сместить пины энкодера Меню, то экраны начинают перключаться, в меню входит, но соответственно энкодер в меню не работает.
TipTopBY
Рядовой
Сообщения: 6
Зарегистрирован: 04 мар 2017, 14:30

Помощь новичку. Меню и энкодер.

Сообщение TipTopBY »

Как говорил выше, если сделать программно 2 энкодера, на разных пинах, то все работает. Я соединил на плате пины этих твух програмных энеодеров. Вся заработало, хотя я не уверен что это нормальный способ. Причина проблемы с одним блоком энкодера мне кажеться кроеться в прерывании на пинах МК.

Ещё один нюанс, при входе в Меню оказываешься сразу в пункте Exit, хотя по входу Reset должно происходить сброс меню в 1-й пункт. Я так же установил "Сбрасывать меню по переднему фронту входа En", эти настройки не привели к успеху. Проблема осталась.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Помощь новичку. Меню и энкодер.

Сообщение Boroda »

А давайте так попробуем! Оставил один энкодер, а дальше сигнал переменными передается. Сделал принудительный переход на 1й пункт.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Boroda 05 мар 2017, 12:30, всего редактировалось 1 раз.
TipTopBY
Рядовой
Сообщения: 6
Зарегистрирован: 04 мар 2017, 14:30

Помощь новичку. Меню и энкодер.

Сообщение TipTopBY »

Все нормально.
Пару моментов для информации. Перекинул с входа MU на MD, что бы меню листало в нужную сторону.
При компиляции не подставляются номера пинов в энкодере, отредактировал уже в скетче вручную.

Добавил условие выхода из меню, установкой Exit:True , что бы меню настроек крутилось по кругу.

Выкладываю последний вариант. Для меня, пока, все проблемы решены. Огромная благодарность Boroda, за помощь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось TipTopBY 05 мар 2017, 12:59, всего редактировалось 1 раз.
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Помощь новичку. Меню и энкодер.

Сообщение Boroda »

Вот отредактированный блок энкодера с нормальными ногами.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03 фев 2017, 12:23

Помощь новичку. Меню и энкодер.

Сообщение AVGN »

Boroda, для блока энкодера нужен дополнительный вывод Set -импульсов на щелчок.
Т. к. у некоторых энкодеров есть еще тактильные щелчки при вращении, и при одном щелчке бывает выдает не 1 импульс а 2 или 4 .
У мня два вида KY-40 от китайских товарищей и один выдает 2 ,а другой 4 импульса.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01 май 2016, 01:04
Откуда: Коломна
Имя: Станислав
Контактная информация:

Помощь новичку. Меню и энкодер.

Сообщение Boroda »

AVGN писал(а):для блока энкодера нужен дополнительный вывод Set
отстал я от жизни. Китайцы, для того, чтоб не использовать надежные оптические энкодеры, всякие "много импульсов" на щелчек придумывают для гнилых контактных, которые через пол-года начинают глючить.
Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03 фев 2017, 12:23

Помощь новичку. Меню и энкодер.

Сообщение AVGN »

Boroda писал(а):отстал я от жизни. Китайцы, для того, чтоб не использовать надежные оптические энкодеры, всякие "много импульсов" на щелчек придумывают для гнилых контактных, которые через пол-года начинают глючить.
Ну, это как повезет. Я как то в феврале к авиамоделистам заезжал. Так они уже три года очень даже механические KY-40 пользуют. Говорят, что нашли надежного производителя и закупаются.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
Аватара пользователя
brig62
Лейтенант
Сообщения: 469
Зарегистрирован: 13 май 2016, 16:37
Откуда: Казань
Имя: Игорь

Помощь новичку. Меню и энкодер.

Сообщение brig62 »

AVGN писал(а):ри одном щелчке бывает выдает не 1 импульс а 2 или 4 .
Вот и я с этим столкнулся. Пробовал разные блоки энкодера. Ровно 4 единицы прибавляет каждый щелчок. Как с этим бороться? Деление на 4 не помогает))
Аватара пользователя
Dev1
Майор
Сообщения: 1026
Зарегистрирован: 12 июл 2016, 18:04
Откуда: Гондурас

Помощь новичку. Меню и энкодер.

Сообщение Dev1 »

brig62 писал(а):Вот и я с этим столкнулся. Пробовал разные блоки энкодера. Ровно 4 единицы прибавляет каждый щелчок. Как с этим бороться? Деление на 4 не помогает))
Стоит обычный блок Encoder. Мой энкодер то же выдает по 4. Делю так:

Код: Выделить всё

newPosition = myEnc.read()/4;
Win10-64 FLProg v7.5.2 Portable :fie:
Аватара пользователя
AVGN
Капитан
Сообщения: 727
Зарегистрирован: 03 фев 2017, 12:23

Помощь новичку. Меню и энкодер.

Сообщение AVGN »

brig62 писал(а):Вот и я с этим столкнулся. Пробовал разные блоки энкодера. Ровно 4 единицы прибавляет каждый щелчок. Как с этим бороться? Деление на 4 не помогает))
Вот попробуйте блок.
От Автора:
Энкодер Детектор
Блок служит для детектирования переключения Энкодера.
Параметры
Set -Импульсов на щелчок
Так как у некоторых энкодеров есть еще тактильные щелчки при вращении, и при одном щелчке бывает выдает не 1 импульс а 2 или 4 ( может и больше)
Вел делитель для получения соответствия щелчок-изменение числа.
DT , CLK  - номера пинов подключенных одноименные выхода энкодера (можно использовать любые пины)
period - Период опроса состояния энкодера, в микросекундах, завесить от энкодора
На механических энкодерах достаточно 1000мкс

!!!!Возможны конфликты с блоками где используется Timer1 (из известных мне Rremote, Servo)
!!!!Нельзя использовать совместно с ШИМ на
Arduino Uno 9, 10
Arduino Leonardo 9, 10, 11
Arduino Mega 11, 12, 13


Добавлено (16.03.2017, 11:30)
---------------------------------------------
Dev1 писал(а):Стоит обычный блок Encoder. Мой энкодер то же выдает по 4. Делю так:Код
newPosition = myEnc.read()/4;
Что значит "Стоит обычный блок Encoder" ?
В встроенных есть блок Encoder?

И куда Вы приведенный Вами код вставляете?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
Ответить

Вернуться в «Прочие датчики и энкодеры»

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

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