Инкрементные (квадратурные) и абсолютные энкодеры. Код Грея.
Датчик угла поворота, также называемый энкодер, предназначен для преобразования угла поворота поворотного механизма (вала) в электрические сигналы. Энкодеры могут быть контактными магнитными, оптическими и др. Мы рассмотрим самые распространенные - оптические. Устройство оптического датчик угла поворота (оборотов) состоит из светоизлучателей (чаще применяются инфракрасные светодиоды), фотоприемников (фототранзисторов), и проходящего между светоизлучателем и светоприемником кодового диска, который имеет прозрачные участки. Рисунок на кодовом диске энкодера называют растр. По количеству тактов (или времени между двумя тактами) определяется положение (скорость вращения).
С помощью одного светодиода и одного фототранзистора можно измерять скорость вращения или перемещение без учета направления вращения. Такой датчик сложно назвать энкодером, так как, при реверсе нет возможности точно определить положение или направление вращения. Это просто датчик скорости вращения.
Конструктивное исполнение датчиков вращения:
Энкодеры подразделяются на инкрементальные энкодеры (квадратурные энкодеры) и абсолютные энкодеры. Инкрементальные энкодеры, формируют импульсы, по которым принимающее устройство определяет текущее координаты путем подсчета числа импульсов. Для привязки системы отсчета к началу координат инкрементальные датчики перед началом работы должны быть установлены в начальное положение.
Простой инкрементный энкодер позволяет определить направление вращения. Для изготовления модели инкрементного энкодера достаточно два фототранзистора, одного светодиода. Принцип работы следующий. Светодиод постоянно светит сквозь вращающийся диск с отверстиями на принимающие фототранзисторы. Отверстия в диске энкодера сделаны таким образом, чтобы были положения, при которых диск закрывает оба фототранзистора, и открывает оба. При вращении диска энкодера, фототранзисторы открываются и закрываются в определенной последовательности. Именно по последовательности переключений и можно определить направление вращения. Например, если были "засвечены" оба фототранзистора, то при вращении в одну сторону диск закроет сразу один фототранзистор, а при вращении в другую - другой. Зная, какой фототранзистор был закрыт после засветки обеих, определяем направление вращения.
В старых компьютерных мышках, в которых применялся шарик, присутствовали два аналогичных энкодера. В них использовались специальные фототранзисторы "2 в одном":
В нашей конструкции мы используем два отдельных фототранзистора:
Иногда требуется знать положение сразу после включения устройства. Т.е. нет технической возможности вывести устройство в исходное положение и затем по количеству "кликов" оценить положение.
Абсолютный энкодер показывает текущую координату сразу при включении, без необходимости предварительной установки в исходное положение. Простейший пример - датчик направления ветра для метеостанции. При включении станции надо сразу определить направление ветра, т.е. угол поворота. Энкодер имеет элементы излучения (светодиоды) и фотоприемники (фототранзисторы), между ними вращается диск энкодера. В определенном положении засвечиваются те или иные фототранзисторы. По комбинации включенных транзисторов определяем положение вала. Промышленные энкодеры имеют большоее количество разрядов, следовательно, имеют высокую точность. Зачастую имеют несколько дисков, связанных через шестерни. Некоторые энкодеры снабжаются последовательным интерфейсом. Но в основе их работы заложен тот же принцип.
Ниже приведена модель 4 разрядного абсолютного энкодера с кодом Грея. 4 разряда - это 16 секторов - 360/16 = 22,5 градуса приемлемая точность для измерения направления ветра. Если возникают проблемы с габаритами, конструктивно диск можно разделить на части. В приведенном примере так и сделано.
Исходный растр диска:
разбит на два диска:
Между дисками установлена двусторонняя плата со светодиодами, за дисками фототранзисторы. Таким образом были уменьшены габариты.
Внимательный читатель мог заметить, что растр кодового диска абсолютного энкодера не соответствует обычному двоичному коду. В энкодерах применяют специальный код Грея.
Что такое код Грея? Представьте себе некоторое устройство, скажем датчик положения, которое выдает положение в двоичном виде по трем проводам. На выходе могут быть следующие комбинации в двоичном коде:
000 001 010 011 100 101 110 111
Обратите внимание на момент перехода из состояния 001 в состояние 010. Переключаются одновременно два бита. Но, в реальности, одновременно переключение не происходит. В любом случае, один из разрядов переключится раньше в силу различных технических причин. При этом на выходе можем получить ошибочные значения 000 или 011. Френк Грей придумал код, похожий на двоичный (http://ru.wikipedia.org/wiki/Код_Грея), но при переходе к следующему числу изменяется только один бит см. таблицу. В этом случае, в момент переключения, состояние меняет только один вывод (разряд), что исключает появление ошибочных значений. Код Грея применяется во всех промышленных энкодерах.
№ | Двоичный код B(3) | Код Грея G(3) |
---|---|---|
1 | 000 | 000 |
2 | 001 | 001 |
3 | 010 | 011 |
4 | 011 | 010 |
5 | 100 | 110 |
6 | 101 | 111 |
7 | 110 | 101 |
8 | 111 | 100 |
Недавні записи
- LCD Display ST7567S (IIC)
- Розпізнавання мови (Speech recognition)
- Selenium
- Комп'ютерний зір (Computer Vision)
- Деякі думки про точність вимірювань в електроприводі
- Датчики Холла 120/60 градусів
- Модуль драйверів напівмосту IGBT транзисторів
- Драйвер IGBT транзисторів на A316J
- AS5600. Варіант встановлення на BLDC мотор
- DC-DC для IGBT драйверів ізольований 2 W +15 -8 вольт
Tags
battery soldering java-script ngnix adc rs-232 flask esp8266 watchdog web exti solar mongodb rtc sms pwm usart books ethernet smd git websocket meteo css python dc-dc displays led ssd1306 eeprom gpio barometer max1674 mpx4115a brushless motor mpu-6050 timer sensors remap servo bldc atmega pmsm 3d-printer flash encoder examples dma raspberry-pi tim ssd1331 piezo mpu-9250 rfid eb-500 foc bme280 gps nvic dht11 bluetooth hih-4000 stm32 st-link docker uart avr html wifi bmp280 bkp nodemcu options usb lcd programmator i2c capture
Архіви