Мазмуну:
- 1 -кадам: Ротари коддогучтун импульс агымы
- 2 -кадам: Ротари Encoder'дин Pinout
- 3 -кадам: схемалык
- 4 -кадам: Код
- 5 -кадам: түшүндүрмө
- 6 -кадам: Чыгуу
Video: Rotary Encoder Arduino менен үйрөткүч: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Ротари коддоочу - айлануу учурунда кыймылды жана абалды көзөмөлдөөгө жөндөмдүү электрондук компонент. Ротари коддоочу айлануучу кодер айланып турганда импульстарды пайда кыла турган оптикалык сенсорлорду колдонот. Айлануучу кодерди адатта механикалык же роботтук кыймыл монитору катары колдонуу дисплейдеги менюну тандоо үчүн да колдонулушу мүмкүн. Ротари кодердин терс (CW) жана оң (CCW) айланууну айырмалай алышы үчүн эки жолу бар, ошондой эле бир баскычы бар.
1 -кадам: Ротари коддогучтун импульс агымы
Төмөнкү айлануучу коддогучтун импульс агымы жогорудагы сүрөттө окшош.
2 -кадам: Ротари Encoder'дин 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 -кадам: Код
Кийинки окуу куралында, үзгүлтүк катары колдонула турган PIN 2 Arduino Uno, ал эми PIN 3 кадимки киргизүү катары гана колдонулат.
#define encoder0PinA 2 #encoder0PinB аныктоо 3 #decine 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, CHANGE); } int valRotary, lastValRotary; void loop () {int btn = digitalRead (encoder0Btn); Serial.print (btn); Serial.print (""); Serial.print (valRotary); if (valRotary> lastValRotary) {Serial.print ("CW"); } if (valRotary {
Serial.print ("CCW");
} lastValRotary = valRotary; Serial.println (""); кечигүү (250); } жараксыз doEncoder () {if (digitalRead (encoder0PinA) == digitalRead (encoder0PinB)) {encoder0Pos ++; } else {encoder0Pos--; } valRotary = encoder0Pos/2.5; }
Жогорудагы эскиздин 10 -сабында 2 pin 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 жана Rotary Encoder менен: 5 кадам
Таймер Arduino жана Rotary Encoder менен: Таймер көбүнчө өндүрүштө жана үй чарбасында колдонулуучу инструмент. Бул жыйын арзан жана оңой жасалат. Мен жазган бир нече программалар бар, Ardui үчүн
Interface HMC5883L Compass Sensor Arduino менен үйрөткүч: 10 кадам (сүрөттөр менен)
HMC5883L Compass Sensor Arduino менен интерфейске үйрөткүч: DescriptionHMC5883L-бул эки жалпы максатта колдонулган 3 огтуу санариптик компас: ферромагнет сыяктуу магниттик материалдын магниттелишин өлчөө, же күчүн жана кээ бир учурларда багытын өлчөө. бир чекиттеги магнит талаасы
Rotary Encoder: Бул кантип иштейт жана Arduino менен кантип колдонуу керек: 7 кадам
Rotary Encoder: Бул кантип иштейт жана Arduino менен кантип колдонсо болот: Сиз бул жана башка укмуштуудай сабактарды ElectroPeakтин расмий веб -сайтынан окуй аласызБул карооБул окуу куралында сиз ротациялык коддогучту кантип колдонууну билесиз. Биринчиден, сиз ротациялоочу кодер жөнүндө кээ бир маалыматты көрөсүз, анан кантип
Интерфейске үйрөткүч RGB Led WS2812B менен Arduino UNO: 7 кадам (сүрөттөр менен)
Интерфейске үйрөткүч RGB Led WS2812B менен Arduino UNO: Бул окуу куралы сизге Arduino UNO менен Sparkfun RGB Led WS2812B колдонуу боюнча кээ бир негиздерди үйрөтөт
Үйрөткүч Arduino UNO менен 4-Сандык Дисплей Интерфейси: 6 кадам (Сүрөттөр менен)
Үйрөткүч Arduino UNO менен 4-Цифралуу Дисплей Интерфейси: Бул окуу куралы сизге 4-Сандык Дисплейди Arduino UNO менен колдонуу боюнча кээ бир негиздерди үйрөтөт