абсолютный оптический енкодер
- Войдите на сайт для отправки комментариев
Чт, 26/05/2016 - 11:56
Здраствуйте участники форума! недавно столкнулся с вот такой штукой
http://www.autonics-ru.com/userdata/files/EP50S8.pdf (EP50S8-360-2)
использую 3 первих бита (2.0 , 2.1, 2.2)
int bits[]={0,0,0}; int pin[]={13,12,11}; void setup() { Serial.begin(9600); pinMode(11, INPUT); pinMode(12, INPUT); pinMode(13, INPUT); } void loop() { for(int i=0; i<=3; i++) { bits[i]=digitalRead(pin[i]); } Serial.print(bits[0]); Serial.print(bits[1]); Serial.print(bits[2]); Serial.println(" "); delay(100); }
получаю при вращении :
вправо влево
000 111
001 110
010 101
011 100
100 011
101 010
110 001
111 000
теперь, не могу составить правильно програму которая оприделяла текущее положение.
Може кто поможет ?)) буду очень благодарен!
А приведеные значения не оно? Или это не на полный оборот?
при каждом шагу значение меняеться в ту или другую сторону , нужно подщитивать сколько шагов зделал туда и назад.
Еще раз, приведенные последовательности состояний - это один шаг или один оборот?
И всеже что надо "не могу составить правильно програму которая оприделяла текущее положение." или "нужно подщитивать сколько шагов зделал туда и назад."?
Невозможно чего конкретно советовать по задаче с неясным условием и неопределенным вопросом.
1 шаг
нужно опредилить точное положение енкодера по 3м битам(тоесть по 3м ключам )
градацию я зделаю сам, как описать функцию которая показивает в какю сторону он крутит и последствии ++ или --
Сохраняете прошлое состояние и текущее. Если вычесть из текущего прошлое то есть 3 варианта: получили 1, значить крутим вправо, получили -1 то крутим влево а если 0 то крутим куда крутили ранше или вообще перестали крутить. Учитывать перенос т.е. должно быть 000-111=1. Так направление определяем и запоминаем.
спасибо! буду пробовать
Можливо комусь пригодиться
ve3yn4ik, зачем подключать 3 провода, если используете только 2 ? :)
в начале думал понадобиться 3, потом вияснилось что хватит 2 .
А скока их всего? Только постиг смысл "использую 3 первих бита (2.0 , 2.1, 2.2)"
Похоже он куда интересней чем просто...
Почитал пдф. их 10 штук прикольный девайс. еще и IP67. Но 32мА. Скока стоит и где брали? И помоему он не для счета шагов вобще нужен.
там 9 битна ситема, да интересна тем что очень точная при исползивании всех.
мне попался Белоруский 5д кинотеатр с дохлой електроникой,востанавливать не брался так как сгорел мк (ADUC7024 BSTZ62). Исползуеться для оприделения положения вала редуктора, которий поднимает платформу. Редуктор крутит 3х фазний двигатель под управлением фазопреобразователя. Оригинальной прошивки нету, вот переделал под атмегу , сейчас витравливаю плату для установки. Смотрел на офф. сайте такой енкодер стоит 300 уе. В Украине он почемуто стоит 2400 грн.
В последствии управления фазопреобразователем возникла проблема , скорость вращения двигателя зависит от установлених параметров : повишением напряжения от 0 до 5В , или изменением сили тока от 0 до 20 мА.
сейчас сижу и ломаю голову как ето реализовать.