Замена энкодера ползунковым потенциометром

Niksov
Offline
Зарегистрирован: 06.09.2019

Добрый день. Обыскал весь интернет, не могу найти ответ на такой вопрос. 

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

Какой скетч нужен для ползункового потенциометра, чтобы он мог выполнять функции  - движение в одну сторону : нажатие клавиши Keyboard.press(KEY_LEFT_ARROW); вправо: Keyboard.press(KEY_RIGHT_ARROW);

Благодарю за ответы.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

analogRead()

b707
Offline
Зарегистрирован: 26.05.2017

Niksov пишет:

Было бы удобно регулировать параметры не вращением, а перемещением ползунка вверх-вниз (влево-вправо). Т.е. заменить энкодер ползунковым потенциометром (фейдером).

очень сильно сомневаюсь, что это "было бы удобно".

Работа с меню перемещением вверх-вниз вправ-влево давным давно реализована и делается это джойстиком, а вовсе не потенциометром.

Niksov
Offline
Зарегистрирован: 06.09.2019

DetSimen пишет:

analogRead()

DetSimen, покажите, пожалуйста, на примере.

Niksov
Offline
Зарегистрирован: 06.09.2019

b707 пишет:

Niksov пишет:

Было бы удобно регулировать параметры не вращением, а перемещением ползунка вверх-вниз (влево-вправо). Т.е. заменить энкодер ползунковым потенциометром (фейдером).

очень сильно сомневаюсь, что это "было бы удобно".

Работа с меню перемещением вверх-вниз вправ-влево давным давно реализована и делается это джойстиком, а вовсе не потенциометром.

Изменение параметров (не перемещение по меню) быстрее энкодером, чем джойстиком. Фейдером должно быть быстрее, чем энкодером.

b707
Offline
Зарегистрирован: 26.05.2017

Niksov пишет:

Изменение параметров (не перемещение по меню) быстрее энкодером, чем джойстиком. Фейдером должно быть быстрее, чем энкодером.

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

b707
Offline
Зарегистрирован: 26.05.2017

Niksov пишет:

DetSimen, покажите, пожалуйста, на примере.

какой пример вам нужен? чтения потенциометра через analogRead ? :) - это второй или третий урок в любой книжке по ардуино.

Niksov
Offline
Зарегистрирован: 06.09.2019

b707 пишет:

Niksov пишет:

DetSimen, покажите, пожалуйста, на примере.

какой пример вам нужен? чтения потенциометра через analogRead ? :) - это второй или третий урок в любой книжке по ардуино.

Премещение в одну сторону вызывало команду клавиатуры, например, KEY_LEFT_ARROW

b707
Offline
Зарегистрирован: 26.05.2017

Niksov пишет:

Премещение в одну сторону вызывало команду клавиатуры, например, KEY_LEFT_ARROW

повторяю, когда перемещение в одну сторону вызывает команду KEY_LEFT_ARROW, а в другую KEY_RIGHT_ARROW - это называется джойстик.

Ишите код для джойстика+ ардуино - таких примеров полно.

А про фейдер вы явно не догоняете. Подумайте о том, что произойдет, когда вы подвинетесь в какую-либо сторону до края ползунка

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Niksov пишет:

DetSimen, покажите, пожалуйста, на примере.

Ви хочете примеров?  Их есть у меня.  От 200 до 500р за штуку. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Niksov пишет:

Какой скетч нужен для ползункового потенциометра

Точно такой же, как для неползункового (вращающегося).

Niksov
Offline
Зарегистрирован: 06.09.2019

 

b707 пишет:

Niksov пишет:

Премещение в одну сторону вызывало команду клавиатуры, например, KEY_LEFT_ARROW

повторяю, когда перемещение в одну сторону вызывает команду KEY_LEFT_ARROW, а в другую KEY_RIGHT_ARROW - это называется джойстик.

Ишите код для джойстика+ ардуино - таких примеров полно.

А про фейдер вы явно не догоняете. Подумайте о том, что произойдет, когда вы подвинетесь в какую-либо сторону до края ползунка

Я имею ввиду механику перемещения: энкодер нужно крутить запястьем, фейдер сдвигать, на джойстик давить-нажимать.

Есть шкала от «-50 до 0 до +50» Ползунок фейдера находится по середине на «0» Сдвиг фейдера влево до -50 это инициация 50 нажатий кнопки key_left_arrow. Если фейдер находится на -50 его можно одним движением подвинуть на +50. Если я правильно понимаю, джойстиком для того чтобы изменить значение от -50 до +50, нужно давить на кнопку джойстика «вправо» до тех пор, пока не будет +50.

b707
Offline
Зарегистрирован: 26.05.2017

Niksov пишет:

 

Если фейдер находится на -50 его можно одним движением подвинуть на +50.

Ага,и программа с радостью отрабатоет это "одно движение" как 50 нажатий KEY_RIGHT_ARROW :)

Поймите, главное отличие энкодера от потенциометра, что энкодер можно вращать в любу. сторону бесконечно, а потенциометр имеет пределы. К фейдеру это также относится.

Niksov
Offline
Зарегистрирован: 06.09.2019

b707 пишет:

Niksov пишет:

 

Если фейдер находится на -50 его можно одним движением подвинуть на +50.

Ага,и программа с радостью отрабатоет это "одно движение" как 50 нажатий KEY_RIGHT_ARROW :)

Поймите, главное отличие энкодера от потенциометра, что энкодер можно вращать в любу. сторону бесконечно, а потенциометр имеет пределы. К фейдеру это также относится.

От -50 до +50 не 50 нажатий, а 100 ;)

Я понимаю, что у фейдера есть пределы. Но нужна именно такая механика сдвига ползунка.

b707
Offline
Зарегистрирован: 26.05.2017

Niksov пишет:

Я понимаю, что у фейдера есть пределы. Но нужна именно такая механика сдвига ползунка.

ну так делайте. Потом расскажите.

Когда сделаете - тогда и поймете, почему никто до вас этого не делал.

 

kalapanga
Offline
Зарегистрирован: 23.10.2016

Niksov пишет:

Но нужна именно такая механика сдвига ползунка.

Пример AnalogInput из стандартной поставки ардуино Вам в руки! То, что ползунковый и вращающийся потенциометр для ардуино ничем не отличаются, уже писали. Считываете значание, далее делаете с ним что хотите.

Измеряете сопротивление, сравниваете с предыдущим значением, увеличилось - делаем одно, уменьшилось - делаем другое, запоминаем измеренное значение. Добавить масштабирование по вкусу.

andriano
andriano аватар
Онлайн
Зарегистрирован: 20.06.2015

Niksov пишет:

Добрый день. Обыскал весь интернет, не могу найти ответ на такой вопрос. 

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

Какой скетч нужен для ползункового потенциометра, чтобы он мог выполнять функции  - движение в одну сторону : нажатие клавиши Keyboard.press(KEY_LEFT_ARROW); вправо: Keyboard.press(KEY_RIGHT_ARROW);

Благодарю за ответы.

Каким тонером нужно заправить принтер, чтобы на нем можно было доехать из Саратова до Тамбова?

Какой бензин нужно залить в автомобиль, чтобы он начал печатать цветом?

 

Аналогия понятна?

Потенциометр и энкодер - разные устройства, реализующие различные принципы управления, которые нельзя свести один к другому.

Другими словами, в общем случае сделать это невозможно.

andriano
andriano аватар
Онлайн
Зарегистрирован: 20.06.2015

Niksov пишет:

Есть шкала от «-50 до 0 до +50» Ползунок фейдера находится по середине на «0» Сдвиг фейдера влево до -50 это инициация 50 нажатий кнопки key_left_arrow. Если фейдер находится на -50 его можно одним движением подвинуть на +50. Если я правильно понимаю, джойстиком для того чтобы изменить значение от -50 до +50, нужно давить на кнопку джойстика «вправо» до тех пор, пока не будет +50.

Ладно, из невозможности решения в общем случае еще не следует невозможность в частном.

Уточните, как должно вести себя устройство, если в момент включения питания фейдер уже находится в положении "+50"?

Niksov
Offline
Зарегистрирован: 06.09.2019

andriano пишет:

Niksov пишет:

Есть шкала от «-50 до 0 до +50» Ползунок фейдера находится по середине на «0» Сдвиг фейдера влево до -50 это инициация 50 нажатий кнопки key_left_arrow. Если фейдер находится на -50 его можно одним движением подвинуть на +50. Если я правильно понимаю, джойстиком для того чтобы изменить значение от -50 до +50, нужно давить на кнопку джойстика «вправо» до тех пор, пока не будет +50.

Ладно, из невозможности решения в общем случае еще не следует невозможность в частном.

Уточните, как должно вести себя устройство, если в момент включения питания фейдер уже находится в положении "+50"?

Не спрашивайте, каким образом (это уже реализовано) фейдер через небольшой промежуток времени возвращается в средее нулевое положение. В момент включения питания он будет в положении «0».

andriano
andriano аватар
Онлайн
Зарегистрирован: 20.06.2015

Niksov, я задаю наводящие вопросы исключительно потому, что при отсутствии общего решения для заданного Вами вопроса пытаюсь понять, может быть для Вас подойдет частное.

Но раз на мой вопрос отвечать Вы не хотите, сразу предложу вариант, который может Вам подойти, а может - и нет:

1. Воспользуйтесь советом из ответа №1. В результате Вы получите число из диапазона [0, 1023].

2. Отмасштабируйте этот результат из диапазона [0, 1023] в диапазон [-50, 50]. Получите число N.

3. Если N>0, эмулируйте N нажатий на клавишу "+", если N<0, эмулируйте -N нажатий на клавишу "-".

b707
Offline
Зарегистрирован: 26.05.2017

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

Niksov
Offline
Зарегистрирован: 06.09.2019

andriano пишет:

Niksov, я задаю наводящие вопросы исключительно потому, что при отсутствии общего решения для заданного Вами вопроса пытаюсь понять, может быть для Вас подойдет частное.

Но раз на мой вопрос отвечать Вы не хотите, сразу предложу вариант, который может Вам подойти, а может - и нет:

1. Воспользуйтесь советом из ответа №1. В результате Вы получите число из диапазона [0, 1023].

2. Отмасштабируйте этот результат из диапазона [0, 1023] в диапазон [-50, 50]. Получите число N.

3. Если N>0, эмулируйте N нажатий на клавишу "+", если N<0, эмулируйте -N нажатий на клавишу "-".

kalapanga, andriano, спасибо за советы. 

andriano
andriano аватар
Онлайн
Зарегистрирован: 20.06.2015

b707 пишет:
Смешно. Возврат к нулю "уже реализован", а как считать аналогреад - спрашиваем в форуме. Сдается мне что тут перед нами случай так называемого вранья

Очевидно, решение аппаратное. Что-то типа пружины.

b707
Offline
Зарегистрирован: 26.05.2017

andriano пишет:

b707 пишет:
Смешно. Возврат к нулю "уже реализован", а как считать аналогреад - спрашиваем в форуме. Сдается мне что тут перед нами случай так называемого вранья

Очевидно, решение аппаратное. Что-то типа пружины.

аналоговый фейдер с пружинным возвратом к нулю называется джойстик

andriano
andriano аватар
Онлайн
Зарегистрирован: 20.06.2015

И что удивительного в том, что ТС изобрел для себя велоси... т.е., простите, - джойстик.

b707
Offline
Зарегистрирован: 26.05.2017

andriano пишет:

И что удивительного в том, что ТС изобрел для себя велоси... т.е., простите, - джойстик.


ничего, кроме того, что ТС убежден, что изобрел нечто небывалое

andriano
andriano аватар
Онлайн
Зарегистрирован: 20.06.2015

Тут каждый второй такой. (например, я - это точно!)))))))))))