Страница 1 из 1

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

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

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

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

Добавлено: 13 фев 2023, 14:14
vovka1973
МНЕ тоже понадобился блок для стм32, я делал на этой библиотеке
STM32_Encoder.zip
ну и сам блок
STM32ENCODER_(Code_-_Basic).ubi
работает отлично. единственно надо в блоке пины менять .
выложил сюда лишним не будет.

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

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

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

Добавлено: 13 фев 2023, 17:05
vovka1973
Ingwar писал(а): 13 фев 2023, 16:46 в ней не используются прерывания (а только блокируются другие на момент выполнения функции чтения).
да вроде программа для станка написана пропусков вроде нету и занимает 80% места в контроллере .ставить только буду не знаю когда я в отпуске первую версию делал на уно там пропуски если скорость больше делать .
а самое главное конденсаторы не нужны.завтра буду енкодер оптический подключать пока китайским кручу ручным.