Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 09.12.2020
Сообщений: 5
1

Как в протеусе вывести на дисплей(16х2) количество оборотов с энкодера

09.12.2020, 17:31. Показов 1482. Ответов 15
Метки нет (Все метки)

Здравствуйте, форумчане, возник вопрос - я собрал схему с двигателем постоянного тока (MOTOR-ENCODER), драйвер позволяет менять полярность, ну и 4 кнопки - пуск, смена полярности, увеличение скорости, понижение скорости, мне необходимо добавить дисплей, на который будет выводиться количество оборотов двигателя, но как считать данные с энкодера, да и вообще это реализовать пока не имею понятия. Проблема в том что для такого элемента нет даташита, ну или я плохо искал)) Буду очень благодарен, если кто поможет хлебушку разобраться.
P.S. был удивлен, когда осознал что протеус не разрешает сделать скриншот
0
Миниатюры
Как в протеусе вывести на дисплей(16х2) количество оборотов с энкодера  
Вложения
Тип файла: zip AVRGCC1.zip (18.4 Кб, 5 просмотров)
Тип файла: zip протеус.zip (38.4 Кб, 5 просмотров)
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2020, 17:31
Ответы с готовыми решениями:

Подсчитать количество отрицательных элементов массива. Вывести на дисплей полученное значение
Подсчитать количество отрицательных элементов массива. Вывести на дисплей полученное значение....

Как программно контролировать количество оборотов вентилятора в ноутбуке Samsung?
Здравствуйте. Ноутбук Samsung NP305E5A-S01UA с установленной Windows 7 Professional x64. Необходимо...

как организовать передачу МК>МК>UART>МК>LCD 16х2
Заказал темброблок на МК с дисплеем, дисплей аналоговый. как сделать так чтобы дисплей находился на...

Заменил вентилятор, как понять оптимальное количество оборотов или температуру бп?
Стал шуметь БП, купил вертушку 140х140мм PWM (BeQuiet Pure Wings 2) и подключил его в мать, не...

15
954 / 583 / 97
Регистрация: 15.05.2012
Сообщений: 3,441
10.12.2020, 07:13 2
Цитата Сообщение от Ilya230 Посмотреть сообщение
протеус не разрешает
Разрешает-разрешает.
Цитата Сообщение от Ilya230 Посмотреть сообщение
разобраться
Если нужен именно энкодер, то суть затеи - частотомер.
Но можно пойти другим путем, не в дебри. Показывать то, что отдаем двигателю.
0
0 / 0 / 0
Регистрация: 09.12.2020
Сообщений: 5
10.12.2020, 12:28  [ТС] 3
Ну а каким способом вывести количество оборотов на дисплей с MOTOR-ENKODER?
Вот в этом не могу пока разобраться, АЦП ли применить, или там есть в чем-то хитрось?
0
954 / 583 / 97
Регистрация: 15.05.2012
Сообщений: 3,441
10.12.2020, 13:41 4
Лучший ответ Сообщение было отмечено Ilya230 как решение

Решение

Без хитростей. Преобразовать частоту, подаваемую на движок в обороты. Формула линейная.
1
0 / 0 / 0
Регистрация: 09.12.2020
Сообщений: 5
10.12.2020, 22:48  [ТС] 5
Я пока вобщем-то новичок в этом деле, вроде с частотой понятно, но как это реализуется так сказать наглядно?
0
954 / 583 / 97
Регистрация: 15.05.2012
Сообщений: 3,441
11.12.2020, 07:50 6
Подключить выхода энкодера к входам мк. Там разнофазный сигнал. Обработать его.
0
0 / 0 / 0
Регистрация: 09.12.2020
Сообщений: 5
11.12.2020, 11:20  [ТС] 7
Через ацп?
0
954 / 583 / 97
Регистрация: 15.05.2012
Сообщений: 3,441
11.12.2020, 14:36 8
Можно и через АЦП. Но поскольку с энкодера приходит цифра, то приятнее всё-таки работать с ней.
0
1867 / 1192 / 114
Регистрация: 04.01.2010
Сообщений: 4,285
12.12.2020, 12:08 9
Цитата Сообщение от Ilya230 Посмотреть сообщение
для такого элемента нет даташита, ну или я плохо искал))
Конечно плохо искал Вот ДШ
0
7 / 6 / 1
Регистрация: 12.12.2020
Сообщений: 91
12.12.2020, 19:34 10
Если энкодер, то, на пальцах, подключаешь два выход с энкодера к мк. Желательно хотя бы один к INT0/INT1. Настраиваешь прервание на переход INT0 с LO в HI. В прерывании проверяешь, второй выход в LO или в HI. Таким образом и определяешь крутится двигатель вперед или назад.
Можно и в цикле все это проверять но в прерывании как то проще и надежнее.
Прерывание именно на смену уровня, если только на уровень то будет срабатывать всегда когда будет этот уровень, а нужно одно прерывание на строб.
1
0 / 0 / 0
Регистрация: 09.12.2020
Сообщений: 5
12.12.2020, 20:42  [ТС] 11
Действительно, а я и не додумался о прерываниях) я сделал просто проверку через if на состояние порта, к которому подключил выход энкодера, и когда на порте есть сигнал, то инкрементирую переменную

Добавлено через 1 минуту
Это же даташит драйвера, его то читал, там как оказалось есть хелп в протеусе, в нем вполне исчерпывающая инфа
0
7 / 6 / 1
Регистрация: 12.12.2020
Сообщений: 91
12.12.2020, 20:55 12
проверяя просто состояние порта можно проморгать строб а можно один и тот же строб посчитать два раза
0
1867 / 1192 / 114
Регистрация: 04.01.2010
Сообщений: 4,285
13.12.2020, 16:01 14
Цитата Сообщение от Alex1126 Посмотреть сообщение
проверяя просто состояние порта можно проморгать строб а можно один и тот же строб посчитать два раза
какие ж у вас там обороты, чтобы можно было проморгать?

PS: я понял к чему вы. Делал подобный проектик на stm8s103 для подключения к драйверу двигателя постоянного тока (в РУ машинке) к драйверу по-мощнее, к BLDC. Они, кстати, оба управляются ШИМ, но в разном понимании ). В итоге все получилось. Интересен был код МК, потому что в итоге все подсчеты и управление раскинулось по таймерам - в главной задаче оставалось только брать из одного регистра, немного корректировать (линейность и отлавливание ошибок) и кидать в другой регистр драйвера ).
0
7 / 6 / 1
Регистрация: 12.12.2020
Сообщений: 91
13.12.2020, 16:11 15
Цитата Сообщение от Voland_ Посмотреть сообщение
какие ж у вас там обороты, чтобы можно было проморгать?
тут дело в том что этот метод проще и надежней. Так надо считать скорость, обороты, прикидывать успеем или нет. А потом будет другой проект где мы возьмем этот работающий код, забыв посчитать, успеваем или нет и потом долго не понимать ошибки. Причем иногда может быть что эта ошибка не сразу будет выскакивать а через какое то время и искать ее будем долго и упорно

ЗЫ у меня сейчас есть энкодер который считает 5 клоков на 0.9 градусов. Сколько по времени займет шаг шагового двигателя известно? Там же "рывком" он двигается. И это еще не предел, там есть модели с большим кол-вом шагов, но я брал именно для шаговика и что бы кратно было шаги и стробы.
1
1867 / 1192 / 114
Регистрация: 04.01.2010
Сообщений: 4,285
13.12.2020, 20:56 16
Цитата Сообщение от Alex1126 Посмотреть сообщение
считает 5 клоков на 0.9 градусов. Сколько по времени займет шаг шагового двигателя известно? Там же "рывком" он двигается.
надо знать угол поворота шага шаговика, в той же системе координат, что и энкодер. Мне так кажется, угол шаговик должен быть в 2-3 раза меньше чем угол импульса энкодера. Иначе вы не посчитаете. Придется либо использовать микрошаги что намного усложняет управление шаговиком, либо иметь инертный маховик на валу, чтобы убедиться что шаговик "дергает" достаточно медленно для энекодера. Пропуск шагов энкодера - распространенная проблема, и она не решается просто частотой опроса МК. Сама инертность энкодера имеет предел по частоте вращения.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2020, 20:56

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как вывести изображение с камеры на дисплей?
имеется камера с 3-мя выводами от неё. Имеется компьютерный манитор VGA порт. Как заставить...

Как вывести на дисплей всю очередь?
Здравствуйте, у меня есть вопрос, как вывести на дисплей всю очередь, а то у мене сейчас выводит...

Как вывести устройство из ждущего режима и включить дисплей?
Добрый день! Хочу написать некое подобие будильника. Подскажите пожалуйста, как вывести...

Как вывести данные на дисплей nokia 5110 на мк AVR?
Объясните пожалуйста общий принцип работы. Знаю что частота тактирования не более 4Мгц. Если...

Нормально ли для 2080ti от MSI скорость оборотов кулера 3400 оборотов в минуту при нагрузке в 90-95%?
1) Во время игры именно в требовательные проекты (Ведьмак 3, Kingdom Come: Deliverance и подобные)...

Как создать класс текста и вывести из него текст на дисплей?
С обычным выводом проблем нет. Реализовывал это по-разному, но ошибка всегда была одна : (см. на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.