Агуулгын хүснэгт:

Ротари кодлогч - Үүнийг ойлгож, ашиглаарай (Arduino/other ΜController): 3 алхам
Ротари кодлогч - Үүнийг ойлгож, ашиглаарай (Arduino/other ΜController): 3 алхам

Видео: Ротари кодлогч - Үүнийг ойлгож, ашиглаарай (Arduino/other ΜController): 3 алхам

Видео: Ротари кодлогч - Үүнийг ойлгож, ашиглаарай (Arduino/other ΜController): 3 алхам
Видео: Крутой выставочный фургон компании FESTO 2024, Арваннэгдүгээр
Anonim
Ротари кодлогч - Үүнийг ойлгож, ашиглах (Arduino/other ΜController)
Ротари кодлогч - Үүнийг ойлгож, ашиглах (Arduino/other ΜController)

Ротари кодлогч нь эргэлтийн хөдөлгөөнийг тоон эсвэл аналог мэдээлэл болгон хувиргадаг цахилгаан механик төхөөрөмж юм. Энэ нь цагийн зүүний дагуу эсвэл цагийн зүүний эсрэг эргэх боломжтой. Эргэдэг кодерын хоёр төрөл байдаг: үнэмлэхүй ба харьцангуй (өсөн нэмэгдэж буй) кодлогч.

Үнэмлэхүй кодлогч нь өнөөгийн босоо амны өнцөгт пропорциональ утгыг гаргадаг бол нэмэлт кодлогч нь босоо амны алхам ба түүний чиглэлийг гаргадаг. (Энэ тохиолдолд бид нэмэгдэл кодлогчтой болно)

Ротари кодлогч нь нэг цахилгаан модульд хоёр функцийг ашиглах боломжтой болсон тул улам бүр түгээмэл болж байна. цэсээр дамжуулан.

Өсөн нэмэгдэж буй эргэлтэт кодлогч нь босоо амаа эргүүлэх үед хоёр гаралтын дохио үүсгэдэг. Чиглэлээс хамааран дохионуудын нэг нь нөгөө рүү хөтөлдөг. (доороос үзнэ үү)

Алхам 1: Гаралтын өгөгдлийг ойлгох

Гаралтын өгөгдлийг ойлгох
Гаралтын өгөгдлийг ойлгох

Таны харж байгаагаар кодлогч босоо ам цагийн зүүний дагуу эргэж эхлэхэд А гаралт эхлээд LOW руу унаж, B гаралт үүнийг дагана. Цагийн зүүний эсрэг чиглэлд үйлдэл эсрэгээрээ эргэдэг.

Одоо бид үүнийг µController дээрээ ашиглах ёстой (би Arduino Nano ашигладаг байсан).

Алхам 2: Хэлхээг бий болгох

Цахилгаан хэлхээг бий болгох
Цахилгаан хэлхээг бий болгох
Цахилгаан хэлхээг бий болгох
Цахилгаан хэлхээг бий болгох

Өмнө нь миний хэлсэнчлэн гаралт нь ДЭЭД ба ДОТРОЙ хажуу талыг бий болгодог. ΜController-ийн A ба B өгөгдлийн зүү дээр цэвэр HIGH авахын тулд бид татах эсэргүүцэл нэмэх ёстой. Нийтлэг Pin C нь LOW хажуугийн хажуу тийш шууд чиглэнэ.

Дотоод шилжүүлэгчийн талаар мэдээлэл авахын тулд бид бусад хоёр тээглүүрийг ашиглах болно. Тэдний нэг нь VCC рүү, нөгөө нь µController -ийн өгөгдлийн зүү рүү ордог. Цэвэр LOW авахын тулд бид өгөгдлийн зүү дээр доош татах резистор нэмэх шаардлагатай болно.

Мөн µController-ийн дотоод Pull-Up ба Pull-Down резисторыг ашиглах боломжтой!

Миний хувьд холболт дараах байдлаар харагдаж байна.

  • +3, 3V => +3, 3V (Arduino) (мөн +5V боломжтой)
  • GND => GND (Arduino)
  • A => Pin10
  • B =>

    Пин

    11

  • C => GND
  • SW =>

    Пин

    12

Алхам 3: Код бичих

int pinA = 10; // дотоод шилжүүлэгч A int pinB = 11; // дотоод унтраалга B int pinSW = 12; // switch (Encoder дарагдсан) int encoderPosCount = 0; // тэгээс эхэлнэ, хүсвэл өөрчил

int positionval;

bool switchval; int mrotateСүүлд; int mrotate;

хүчингүй тохиргоо () {

int mrotateLast = digitalRead (pinA); Цуваа эхлэх (9600); саатал (50); }

void loop () {readencoder (); if (readwitch () == 1) {Serial.println ("Switch = 1"); }}

int readencoder () {

mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// товчлуур эргэлдэж байвал if (digitalRead (pinB)! = mrotate) {// шилжүүлэгч А эхлээд өөрчлөгдсөн -> цагийн зүүний дагуу эргэдэг encoserPosCount ++; Serial.println ("цагийн зүүний дагуу эргүүлэх"); } else {// шилжүүлэгч B эхлээд өөрчлөгдсөн-> цагийн зүүний эсрэг эргэдэг encoserPosCount--; Serial.println ("цагийн зүүний эсрэг эргүүлэх"); }

Serial.print ("Encoder Position:"); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; encoderPosCount -ийг буцаах; } bool readwitch () {

if (digitalRead (pinSW)! = 0) {// шилжүүлэгч дарагдсан байна

while (digitalRead (pinSW)! = 0) {} // switch одоогоор switchval = 1; } else {switchval = 0;} // switch бол дарагдсан буцах switchval; }

Одоо та кодлогчийг эргүүлж болно, хэрэв та цагийн зүүний дагуу эргэвэл encoderPosCount нь тоолох болно, хэрэв та цагийн зүүний эсрэг эргэвэл тоолох болно.

Тийм шүү! Энгийн бөгөөд ашигтай.

Кодыг өөрчилж, ажиллуулаарай. Та үүнийг төсөл дээрээ хэрэгжүүлэх боломжтой.

Мөн би LED төслөө байршуулж, кодлогч ашиглан LED -ийнхээ гэрэлтүүлгийг тохируулах болно.

Зөвлөмж болгож буй: