Примитивный энкодер

Ответить
Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Примитивный энкодер

#1

Сообщение Ingwar » 13.02.2023{, 11:31}

В процессе изучения китайских реплик STM мне понадобилось подключить энкодер.
Предпочитаемый мной блок от Андрея (Dryundel) заругался на не поддерживаемый контроллер. Еще один вариант (сорян, не помню чей) тоже "не взлетел".
На github нашел несколько вариантов для stm, но тоже не сложилось. Или не четкая работа и/или нужны знания, которых у меня нет.
В результате набросал вариант без привязки к типу контроллера. Решение примитивное и прошу понимающих не кидаться какахами (...он играет как умеет).
Для нормальной работы необходимо соблюсти 2 условия:
1) пин, к которому будет подключен канал А должен поддерживать прерывание (и описание функции прерывания стандартны для ардуино)
2) желательно сделать физическую подтяжку входов к "+" и шунтировать их на "-" конденсорами малой емкости (т. е. исключить дребезг контактов)

Да, это колхоз и костыль. И такое решение нельзя считать нормальным и приведет к ускоренному износу энкодера.
Но мне "приспичило", а на безрыбье...) Инструкция в описании.
тест_энк_стм_(Code_-_Basic).ubi
(65.17 КБ) 24 скачивания
Отправлено спустя 2 часа 27 секунд:
Демка работы такого примера. В программе обновление экрана в каждом цикле (SPI).
Безымянный.png
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

vovka1973
Майор
Сообщения: 1060
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 42
Откуда: kazahstan

Примитивный энкодер

#2

Сообщение vovka1973 » 13.02.2023{, 14:14}

МНЕ тоже понадобился блок для стм32, я делал на этой библиотеке
STM32_Encoder.zip
(1.21 КБ) 26 скачиваний
ну и сам блок
STM32ENCODER_(Code_-_Basic).ubi
(62.6 КБ) 25 скачиваний
работает отлично. единственно надо в блоке пины менять .
выложил сюда лишним не будет.
Изображение

Ingwar
Полковник
Сообщения: 1929
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 223
Откуда: Ленобласть
Имя: Игорь

Примитивный энкодер

#3

Сообщение Ingwar » 13.02.2023{, 16:46}

vovka1973 писал(а):
13.02.2023{, 14:14}
работает отлично. единственно надо в блоке пины менять .
Посмотрел библиотеку.
Насколько мне хватает познаний, в ней не используются прерывания (а только блокируются другие на момент выполнения функции чтения).
Допускаю, что при больших значениях времени цикла программы, возможны пропуски считывания.
А по сути, мой блок работает по такому же принципу (самому примитивному), только с использованием прерывания и без отдельной бибки.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

vovka1973
Майор
Сообщения: 1060
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 42
Откуда: kazahstan

Примитивный энкодер

#4

Сообщение vovka1973 » 13.02.2023{, 17:05}

Ingwar писал(а):
13.02.2023{, 16:46}
в ней не используются прерывания (а только блокируются другие на момент выполнения функции чтения).
да вроде программа для станка написана пропусков вроде нету и занимает 80% места в контроллере .ставить только буду не знаю когда я в отпуске первую версию делал на уно там пропуски если скорость больше делать .
а самое главное конденсаторы не нужны.завтра буду енкодер оптический подключать пока китайским кручу ручным.
Изображение

Ответить

Вернуться в «А что так можно было, да?»