Съдържание:
- Стъпка 1: Импулсен поток на въртящ се енкодер
- Стъпка 2: Pinout на ротационен енкодер
- Стъпка 3: Схеми
- Стъпка 4: Код
- Стъпка 5: Обяснение
- Стъпка 6: Изход
Видео: Урок за ротационен енкодер с Arduino: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
Ротационният енкодер е електронен компонент, способен да следи движението и позицията при въртене. Ротационният енкодер използва оптични сензори, които могат да генерират импулси, когато ротационният енкодер се върти. Приложението на въртящия се енкодер обикновено като механичен или роботизиран монитор на движение може също да се използва за избор на меню на дисплея. Ротационният енкодер има два изхода, така че да може да прави разлика между отрицателно (CW) и положително (CCW) завъртане и също така има един бутон.
Стъпка 1: Импулсен поток на въртящ се енкодер
Импулсният поток, генериран от следния въртящ се енкодер, е като на снимката по -горе.
Стъпка 2: Pinout на ротационен енкодер
Обяснение:
- GND GND
- + + 5V
- Бутон 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: Код
В следния урок, който ще се използва като прекъсване, е ПИН 2 на Arduino Uno, докато ПИН 3 се използва само като обикновен вход.
#define encoder0PinA 2 #define encoder0PinB 3 #define encoder0Btn 4 int encoder0Pos = 0; void setup () {Serial.begin (9600); pinMode (енкодер0PinA, INPUT_PULLUP); pinMode (encoder0PinB, INPUT_PULLUP); pinMode (енкодер0Btn, INPUT_PULLUP); attachInterrupt (0, doEncoder, CHANGE); } int valRotary, lastValRotary; void loop () {int btn = digitalRead (encoder0Btn); Serial.print (btn); Serial.print (""); Serial.print (valRotary); if (valRotary> lastValRotary) {Serial.print ("CW"); } ако (valRotary {
Serial.print ("CCW");
} lastValRotary = valRotary; Serial.println (""); забавяне (250); } void doEncoder () {if (digitalRead (encoder0PinA) == digitalRead (encoder0PinB)) {encoder0Pos ++; } else {encoder0Pos--; } valRotary = енкодер0Pos/2.5; }
В ред 10 на скицата по -горе се използва за разрешаване на прекъсването на пин 2 Arduino Uno. В "doEncoder" функцията се изчислява от въртящия се енкодер. Ако стойността на DT и CLK (прекъсване на щифта на Arduino Uno) е една и съща, тогава променливата "encoder0Pos" ще бъде увеличена / добавена, в допълнение към това условие променливата "encoder0Pos" се намалява.
Стъпка 5: Обяснение
ValRotary стойност е стойността на броя на изпълнените стъпки. ValRotary стойността се получава от стойността на отчитане на датчика на въртящия се сензор, разделена на 2,5. От теста се получава стойност 2.5, тъй като една стъпка на въртящия се енкодер може да надвишава 1, така че разделете на 2.5 за нейната стойност според стъпката, както и добавянето на закъснението за четене.
Докато на ред 19 - 25 е програма за определяне дали въртящ се въртящ се енкодер CW или CCW. Обяснението на редове 19 - 25 е, когато текущото отчитане на въртящия се енкодер е по -голямо от предишните ротационни данни, изразени тогава като CW. Докато ако текущото отчитане е по -малко от предишното отчитане, то се посочва като CCW.
Стъпка 6: Изход
1 = стойността на бутона за стартиране на въртящото се устройство, когато не е натиснато
Препоръчано:
Ротационен енкодер - Разберете и го използвайте (Arduino/друг ΜКонтролер): 3 стъпки
Ротационен енкодер - Разберете и го използвайте (Arduino/друг Μконтролер): Ротационният енкодер е електромеханично устройство, което преобразува въртеливото движение в цифрова или аналогова информация. Може да се върти по часовниковата стрелка или обратно. Има два вида въртящи се енкодери: абсолютни и относителни (инкрементални) енкодери
Ротационен енкодер, използващ Arduino Nano: 4 стъпки
Ротационен енкодер, използващ Arduino Nano: Здравейте на всички, В тази статия ще направя урок за това как да използвате въртящ се енкодер с помощта на Arduino Nano. За да използвате този ротационен енкодер, не се нуждаете от външна библиотека. Така че можем директно да създаваме програми, без първо да добавяме библиотеки. добре, нека започнем
Ротационен енкодер: Как работи и как да се използва с Arduino: 7 стъпки
Ротационен енкодер: Как работи и как да се използва с Arduino: Можете да прочетете този и други невероятни уроци на официалния уебсайт на ElectroPeak Обзор В този урок ще научите как да използвате въртящия се енкодер. Първо ще видите информация за ротационния енкодер, а след това ще научите как да
Ротационен енкодер със STM32 Nucleo Board: 12 стъпки
Ротационен енкодер със STM32 Nucleo Board: Това е Урок за получаване на позиция на Ротационен енкодер, който е инкрементен тип енкодер. Енкодерите са два вида като цяло:- единият е инкрементален, друг е абсолютен. Този код може да се използва за микроконтролери STM32L476 и STM32L0 .Но ако
По -добър ротационен енкодер: 4 стъпки
По -добър ротационен енкодер: Ако някога сте се опитвали да използвате въртящ се енкодер от вашия рафт за вашия проект, най -вероятно сте разочаровали. Дали това се дължи на трудността при настройката или на неточните контроли. Имах същия проблем и реших да го поправя. Проектирах 3D pr