Агуулгын хүснэгт:
- Алхам 1: Ротари кодлогчийн импульсийн урсгал
- Алхам 2: Ротари кодлогчын холболт
- Алхам 3: Схем
- Алхам 4: Код
- Алхам 5: Тайлбар
- Алхам 6: Гаралт
Видео: Arduino -тэй Ротари кодлогчын заавар: 6 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:05
Ротари кодлогч нь эргэх үед хөдөлгөөн, байрлалыг хянах чадвартай электрон бүрэлдэхүүн хэсэг юм. Ротари кодлогч нь эргэлддэг кодлогч эргэх үед импульс үүсгэж болох оптик мэдрэгчийг ашигладаг. Эргэдэг кодлогчийг ихэвчлэн механик эсвэл роботын хөдөлгөөний монитор болгон ашиглах нь дэлгэц дээрх цэсийг сонгоход хэрэглэгддэг. Ротари кодлогч нь хоёр гаралттай тул сөрөг (CW) ба эерэг (CCW) эргэлтийг ялгаж чаддаг бөгөөд ганц товчлууртай байдаг.
Алхам 1: Ротари кодлогчийн импульсийн урсгал
Дараах эргэлдэгч кодлогчын үүсгэсэн импульсийн урсгал нь дээрх зураг шиг байна.
Алхам 2: Ротари кодлогчын холболт
Тайлбар:
- 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: Код
Дараагийн гарын авлагад Arduino Uno -ийн ПИН 2 -ийг тасалдахад ашиглах бөгөөд PIN 3 -ийг зөвхөн ердийн оролт болгон ашигладаг.
#PodA encoder0PinA 2 #encoder0PinB тодорхойлох 3 #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); Цуваа.хэвлэх (btn); 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 ++; } өөр {encoder0Pos--; } valRotary = encoder0Pos/2.5; }
Дээрх ноорогны 10 -р мөрөнд Arduino Uno 2 -р зүүг таслахад ашигладаг. "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 = эргэлтэт дарагдаагүй байхад эхлэх товчлуурын утга
Зөвлөмж болгож буй:
Санамсаргүй DC мотор ХОУХ -ны туршилтууд + Кодлогчын алдааг олж засварлах: 4 алхам
Санамсаргүй тогтмол гүйдлийн хөдөлгүүрийн ХОУХ -ны туршилтууд + Кодлогчын алдааг олж засварлах нь: Хэн нэгний хог бол бусдын эрдэнэс байх үе байдаг, энэ бол миний хувьд тэр мөчүүдийн нэг байсан. Хэрэв та намайг дагаж байсан бол би хаягдал материалаар өөрийн 3D принтер CNC -ийг бүтээх асар том төсөл хэрэгжүүлсэн гэдгийг та мэдэх байх. Эдгээр хэсгүүд нь
Arduino ба Ротари кодлогчтой таймер: 5 алхам
Arduino ба Rotary Encoder бүхий таймер: Таймер нь үйлдвэрлэлийн болон гэр ахуйн үйл ажиллагаанд ихэвчлэн хэрэглэгддэг хэрэгсэл бөгөөд энэхүү угсралт нь хямд бөгөөд хийхэд хялбар бөгөөд хэрэгцээнд нийцүүлэн сонгосон програмыг ачаалах чадвартай байдаг. Миний бичсэн хэд хэдэн програмууд байдаг, Ardui -д зориулж
Ротари кодлогчын хяналттай робот гар: 6 алхам
Rotary Encoder Controlled Robot Arm: Би howtomechatronics.com сайтад зочилж, bluetooth хяналттай роботын гарыг харсан, би bluetooth ашиглах дургүй, дээрээс нь бид servo -ийг эргэдэг кодлогчоор удирдах боломжтойг харсан болохоор би роботыг удирдаж чадна гэж дахин зохион бүтээсэн. гар нь эргэлтэт кодлогч ашиглаж, үүнийг бичнэ үү
Arduino ба Ротари кодлогчтой цахилгаан таймер: 7 алхам (зурагтай)
Arduino ба Rotary Enkoder бүхий цахилгаан таймер: Энэхүү цахилгаан таймер нь https: //www.instructables.com/id/Timer-With-Arduin дээр байрлуулсан таймер дээр суурилдаг. Цахилгаан хангамжийн модуль ба SSR (хатуу төлөвт реле) 1 кВт хүртэлх хүчийг ажиллуулах боломжтой бөгөөд хамгийн бага өөрчлөлтөөр л
Ротари кодлогч - Үүнийг ойлгож, ашиглаарай (Arduino/other ΜController): 3 алхам
Ротари кодлогч - Үүнийг ойлгож, ашиглах (Arduino/other ΜController): Эргэдэг кодлогч бол эргэлтийн хөдөлгөөнийг тоон эсвэл аналог мэдээлэл болгон хувиргадаг цахилгаан механик төхөөрөмж юм. Энэ нь цагийн зүүний дагуу эсвэл цагийн зүүний эсрэг эргэх боломжтой. Эргэдэг хоёр төрлийн кодлогч байдаг: үнэмлэхүй ба харьцангуй (өсөн нэмэгдэж буй) кодлогч