สารบัญ:
วีดีโอ: Rotary Encoder - ทำความเข้าใจและใช้งาน (Arduino/other ΜController): 3 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
เครื่องเข้ารหัสแบบโรตารี่เป็นอุปกรณ์เครื่องกลไฟฟ้าที่แปลงการเคลื่อนที่แบบหมุนเป็นข้อมูลดิจิทัลหรืออนาล็อก สามารถหมุนตามเข็มนาฬิกาหรือทวนเข็มนาฬิกาได้ ตัวเข้ารหัสแบบโรตารี่มีสองประเภท: ตัวเข้ารหัสแบบสัมบูรณ์และแบบสัมพัทธ์ (ส่วนเพิ่ม)
ในขณะที่ตัวเข้ารหัสแบบสัมบูรณ์จะให้ค่าตามสัดส่วนกับมุมของเพลาปัจจุบัน ตัวเข้ารหัสแบบเพิ่มส่วนเพิ่มจะส่งออกขั้นตอนของเพลาและทิศทางของมัน (ในกรณีนี้ เรามีตัวเข้ารหัสแบบเพิ่มหน่วย)
เครื่องเข้ารหัสแบบโรตารี่กำลังเป็นที่นิยมมากขึ้น เนื่องจากคุณสามารถใช้สองฟังก์ชันในโมดูลไฟฟ้าเดียว: สวิตช์แบบง่ายสำหรับยืนยันการทำงาน และตัวเข้ารหัสแบบหมุนเพื่อนำทาง เช่น ผ่านเมนู
ตัวเข้ารหัสแบบหมุนที่เพิ่มขึ้นจะสร้างสัญญาณเอาท์พุตสองสัญญาณในขณะที่เพลากำลังหมุน สัญญาณหนึ่งนำไปสู่อีกสัญญาณหนึ่งขึ้นอยู่กับทิศทาง (ดูด้านล่าง)
ขั้นตอนที่ 1: ทำความเข้าใจกับข้อมูลผลลัพธ์
ดังที่คุณเห็นเมื่อเพลาตัวเข้ารหัสเริ่มหมุนตามเข็มนาฬิกา เอาต์พุต A จะตกไปที่ LOW ก่อน และเอาต์พุต B จะตามมา ในทิศทางทวนเข็มนาฬิกาการทำงานจะหันไปทางตรงข้าม
ตอนนี้เราแค่ต้องใช้สิ่งนี้กับ µController ของเรา (ฉันใช้ Arduino Nano)
ขั้นตอนที่ 2: สร้างวงจร
ดังที่ฉันอธิบายไว้ก่อนหน้าผลลัพธ์จะสร้างปีกสูงและต่ำ เพื่อให้ได้ค่า HIGH ที่ data pin A และ B ของ µController เราต้องเพิ่มตัวต้านทานแบบดึงขึ้น พิน C ทั่วไปตรงไปที่พื้นสำหรับปีก LOW
ในการรับข้อมูลเกี่ยวกับสวิตช์ภายใน (ปุ่มกด) เราจะใช้อีกสองพินที่เหลือ หนึ่งในนั้นไปที่ VCC และอีกอันหนึ่งไปที่ data Pin ของ µController นอกจากนี้เรายังต้องเพิ่ม Pull-Down Resistor ให้กับดาต้าพินเพื่อให้ได้ค่า LOW ที่สะอาด
คุณยังสามารถใช้ตัวต้านทานแบบดึงขึ้นและแบบดึงลงภายในของ µController ของคุณได้!
ในกรณีของฉัน pinout ดูเหมือนว่า:
- +3, 3V => +3, 3V (Arduino)(+5V เป็นไปได้ด้วย)
- GND => GND (อาร์ดูอิโน)
- A => Pin10
-
บ =>
เข็มหมุด
11
- C => GND
-
SW =>
เข็มหมุด
12
ขั้นตอนที่ 3: การเขียนโค้ด
int pinA = 10; // สวิตช์ภายใน A int pinB = 11; // สวิตช์ภายใน B int pinSW = 12; //switch (กด Encoder) int encoderPosCount = 0; // เริ่มต้นที่ศูนย์ เปลี่ยนถ้าคุณต้องการ
ตำแหน่ง int;
สวิตช์บูล; int mrotateLast; int mrotate;
การตั้งค่าเป็นโมฆะ () {
int mrotateLast = digitalRead (pinA); Serial.begin (9600); ล่าช้า (50); }
วงเป็นโมฆะ () { readencoder (); if(readswitch() == 1){ Serial.println("สวิตช์ = 1"); } }
ตัวอ่านโค้ด int (){
mrotate = digitalRead (pinA); if (mrotate != mrotateLast){ //ลูกบิดกำลังหมุน ถ้า (digitalRead(pinB) != mrotate) { //เปลี่ยน A ก่อน -> หมุนตามเข็มนาฬิกา encoderPosCount ++; Serial.println ("หมุนตามเข็มนาฬิกา"); } อื่น {// สวิตช์ B เปลี่ยนก่อน -> หมุนทวนเข็มนาฬิกา encoderPosCount--; Serial.println ("หมุนทวนเข็มนาฬิกา"); }
Serial.print("ตำแหน่งตัวเข้ารหัส: "); Serial.println (ตัวเข้ารหัสPosCount); Serial.println(""); } mrotateLast = mrotate; ส่งคืน encoderPosCount; } บูล readswitch(){
if(digitalRead(pinSW)!=0){ // สวิตช์ถูกกด
while(digitalRead(pinSW)!=0){} //switch ถูกกด switchval = 1; } else{switchval = 0;} //switch ไม่ได้กด return switchval; }
ตอนนี้คุณสามารถหมุนตัวเข้ารหัสและตัวแปร encoderPosCount จะนับขึ้นหากคุณหมุนตามเข็มนาฬิกาและนับถอยหลังหากคุณหมุนทวนเข็มนาฬิกา
แค่นั้นแหละ! เรียบง่ายและมีประโยชน์
อย่าลังเลที่จะเปลี่ยนและดำเนินการรหัส คุณสามารถนำไปใช้ในโครงการของคุณ
ฉันจะอัปโหลดโปรเจ็กต์ LED ที่ฉันใช้ตัวเข้ารหัสเพื่อตั้งค่าความสว่างของไฟ LED ของฉันด้วย
แนะนำ:
Power Timer ด้วย Arduino และ Rotary Encoder: 7 ขั้นตอน (พร้อมรูปภาพ)
Power Timer ด้วย Arduino และ Rotary Encoder: Power Timer นี้อิงตามตัวจับเวลาที่แสดงที่:https://www.instructables.com/id/Timer-With-Arduin…A โมดูลจ่ายไฟและ SSR (โซลิดสเตตรีเลย์ ) ติดอยู่กับมัน สามารถสั่งงานกำลังไฟฟ้าได้ถึง 1KW และด้วยการเปลี่ยนแปลงเพียงเล็กน้อย l
DC Motor และ Encoder สำหรับตำแหน่งและการควบคุมความเร็ว: 6 ขั้นตอน
DC Motor and Encoder สำหรับตำแหน่งและการควบคุมความเร็ว: IntroductionWe are a group of UQD10801(Robocon I) student from Universiti Tun Hussei Onn Malaysia(UTHM) เรามี 9 กลุ่มในหลักสูตรนี้. กลุ่มของฉันคือกลุ่ม 2.กิจกรรมของกลุ่มของเราคือ DC. มอเตอร์และเอ็นโค้ดเดอร์สำหรับควบคุมตำแหน่งและความเร็ว วัตถุกลุ่มของเรา
โซลูชั่น Arduino Rotary ที่สมบูรณ์: 5 ขั้นตอน
โซลูชันโรตารี Arduino ที่สมบูรณ์: เครื่องเข้ารหัสแบบโรตารี่เป็นปุ่มควบคุมแบบหมุนได้สำหรับโครงการอิเล็กทรอนิกส์ ซึ่งมักใช้กับไมโครคอนโทรลเลอร์ตระกูล Arduino สามารถใช้เพื่อปรับแต่งพารามิเตอร์ นำทางเมนู ย้ายวัตถุบนหน้าจอ ตั้งค่าชนิดใดก็ได้ พวกเขาคือตัวแทนทั่วไป
DIY Rotary Encoder: 4 ขั้นตอน
DIY Rotary Encoder: ขออภัยที่ไม่มีรูปภาพ ฉันไม่ได้ตัดสินใจที่จะทำบทช่วยสอนเกี่ยวกับเรื่องนี้จนกว่าฉันจะทำเกือบเสร็จแล้ว ภาพรวม: ตัวเข้ารหัสแบบโรตารี่ใช้เซ็นเซอร์สองตัวหรือมากกว่าเพื่อตรวจจับตำแหน่ง ทิศทางของการหมุน ความเร็ว , และจำนวนรอบที่
บทช่วยสอนของ Rotary Encoder ด้วย Arduino: 6 ขั้นตอน
บทช่วยสอนของ Rotary Encoder ด้วย Arduino: Rotary encoder เป็นส่วนประกอบอิเล็กทรอนิกส์ที่สามารถตรวจสอบการเคลื่อนไหวและตำแหน่งเมื่อหมุน ตัวเข้ารหัสแบบหมุนใช้เซ็นเซอร์แบบออปติคัลที่สามารถสร้างพัลส์เมื่อตัวเข้ารหัสแบบหมุนหมุน การประยุกต์ใช้เครื่องเข้ารหัสแบบโรตารี่มักจะเป็นเครื่องเ