Оглавление:
- Шаг 1: Импульсный поток поворотного энкодера
- Шаг 2: Распиновка поворотного энкодера
- Шаг 3: Схема
- Шаг 4: Код
- Шаг 5: объяснение
- Шаг 6: Вывод
Видео: Учебное пособие по поворотному энкодеру с Arduino: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:54
Энкодер - это электронный компонент, способный отслеживать движение и положение при вращении. В угловом энкодере используются оптические датчики, которые могут генерировать импульсы при вращении углового энкодера. Применение поворотного энкодера обычно в качестве механического или роботизированного монитора движения также можно использовать для выбора меню на дисплее. Поворотный энкодер имеет два выхода, поэтому он может различать отрицательное (CW) и положительное (CCW) вращение, а также имеет одну кнопку.
Шаг 1: Импульсный поток поворотного энкодера
Импульсный поток, генерируемый следующим поворотным энкодером, подобен изображенному выше.
Шаг 2: Распиновка поворотного энкодера
Объяснение:
- GND GND
- + + 5В
- Кнопка SW поворотного энкодера при нажатии
- Данные DT
- Данные CLK 2
Один из выводов DT или CLK должен быть подключен к ножке прерывания Arduino Uno, или оба вывода DT и CLK должны быть подключены к выводу прерывания.
Шаг 3: Схема
- GND на GND Arduino Uno
- + à + 5V Arduino Uno
- SW à PIN 4 Arduino Uno
- DT à PIN 3 Arduino Uno
- CLK à PIN2 Arduino Uno
Шаг 4: Код
В следующем руководстве, которое будет использоваться в качестве прерывания, будет PIN 2 Arduino Uno, а PIN 3 используется только как обычный вход.
#define encoder0PinA 2 # define encoder0PinB 3 #define encoder0Btn 4 int encoder0Pos = 0; void setup () {Serial.begin (9600); pinMode (encoder0PinA, INPUT_PULLUP); pinMode (encoder0PinB, INPUT_PULLUP); pinMode (encoder0Btn, INPUT_PULLUP); attachInterrupt (0, doEncoder, ИЗМЕНИТЬ); } int valRotary, lastValRotary; void loop () {int btn = digitalRead (кодировщик0Btn); Serial.print (btn); Serial.print (""); Serial.print (valRotary); если (valRotary> lastValRotary) {Serial.print ("CW"); } if (valRotary {
Serial.print («CCW»);
} lastValRotary = valRotary; Serial.println (""); задержка (250); } void doEncoder () {если (digitalRead (encoder0PinA) == digitalRead (encoder0PinB)) {encoder0Pos ++; } else {encoder0Pos--; } valRotary = encoder0Pos / 2.5; }
В строке 10 скетча выше используется прерывание вывода 2 Arduino Uno. В "doEncoder" функция рассчитывается от углового энкодера. Если значение DT и CLK (прерывание вывода Arduino Uno) одинаково, тогда переменная "encoder0Pos" будет увеличиваться / добавляться, в дополнение к этому условию переменная "encoder0Pos" уменьшается.
Шаг 5: объяснение
Значение ValRotary - это количество выполненных шагов. Значение ValRotary получается делением значения считывания энкодера поворотного датчика на 2,5. В результате теста получено значение 2,5, поскольку один шаг поворотного энкодера может превышать 1, поэтому разделите его значение на 2,5 в соответствии с Perstep, а также добавлением задержки чтения.
В строке 19 - 25 находится программа, определяющая, какой поворотный энкодер - по часовой или против часовой стрелки. Строки 19-25 поясняются, когда текущие показания датчика углового положения больше, чем предыдущие данные вращения, выраженные как CW. Если текущее показание меньше предыдущего, то оно указывается как против часовой стрелки.
Шаг 6: Вывод
1 = значение кнопки пуска поворотного переключателя, когда он не был нажат
Рекомендуемые:
Учебное пособие Arduino RFID 'Smart Door': 7 шагов
Учебное пособие Arduino RFID «Умная дверь»: Питер Тран, 10ELT1 В этом руководстве вы будете работать с модулем считывателя RFID, чтобы разблокировать дверь с сервоприводом! Убедитесь, что у вас есть подходящая карта доступа, чтобы проникнуть внутрь и не подавать сигнал тревоги и не загораться сигнальные огни. Вас направят ул
Arduino Как подключить несколько серводвигателей - Учебное пособие по PCA9685: 6 шагов
Arduino Как подключить несколько сервомоторов - Учебное пособие по PCA9685: В этом руководстве мы узнаем, как подключить несколько сервомоторов с помощью модуля PCA9685 и arduino. Модуль PCA9685 очень хорош, когда вам нужно подключить несколько двигателей, вы можете узнать больше об этом здесь https : //www.adafruit.com/product/815Посмотрите Vi
The Arduino Hang Guardian - Учебное пособие по сторожевому таймеру Arduino: 6 шагов
Arduino Hang Guardian - Учебное пособие по сторожевому таймеру Arduino: Привет всем, это случается со всеми нами. Вы создаете проект, с энтузиазмом подключаете все датчики, и внезапно Arduino зависает и никакие входные данные не обрабатываются. «Что происходит?», - спросите вы и начнете копаться в коде, только чтобы повторно
Учебное пособие по Arduino LCD 16x2 - Подключение ЖК-дисплея 1602 к Arduino Uno: 5 шагов
Учебное пособие по Arduino LCD 16x2 | Взаимодействие ЖК-дисплея 1602 с Arduino Uno: Привет, ребята, так как многим проектам нужен экран для отображения данных, будь то индикатор самодельного счетчика или счетчик подписок на YouTube, калькулятор или блокировка клавиатуры с дисплеем, и если все эти виды проектов выполняются с arduino они определенно будут
Учебное пособие по Arduino - Управление серводвигателем с помощью Arduino: 5 шагов
Учебное пособие по Arduino - Управление серводвигателем с помощью Arduino: Это руководство представляет собой письменную версию моей статьи «Arduino: Как управлять серводвигателем с помощью Arduino»; Видео на YouTube, которое я недавно загрузил. Я настоятельно рекомендую вам это проверить. Посетите канал YouTube