สารบัญ:
- ขั้นตอนที่ 1: Pulse Flow ของ Rotary Encoder
- ขั้นตอนที่ 2: Pinout ของ Rotary Encoder
- ขั้นตอนที่ 3: แผนผัง
- ขั้นตอนที่ 4: รหัส
- ขั้นตอนที่ 5: คำอธิบาย
- ขั้นตอนที่ 6: เอาท์พุต
วีดีโอ: บทช่วยสอนของ Rotary Encoder ด้วย Arduino: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
เครื่องเข้ารหัสแบบหมุนเป็นส่วนประกอบอิเล็กทรอนิกส์ที่สามารถตรวจสอบการเคลื่อนไหวและตำแหน่งเมื่อหมุน ตัวเข้ารหัสแบบหมุนใช้เซ็นเซอร์แบบออปติคัลที่สามารถสร้างพัลส์เมื่อตัวเข้ารหัสแบบหมุนหมุน การประยุกต์ใช้เครื่องเข้ารหัสแบบโรตารี่โดยปกติเป็นเครื่องติดตามการเคลื่อนไหวแบบกลไกหรือแบบหุ่นยนต์ยังสามารถใช้สำหรับการเลือกเมนูบนจอแสดงผลได้อีกด้วย ตัวเข้ารหัสแบบหมุนมีเอาต์พุตสองแบบเพื่อให้สามารถแยกความแตกต่างระหว่างการหมุนเชิงลบ (CW) และค่าบวก (CCW) และยังมีปุ่มเดียว
ขั้นตอนที่ 1: Pulse Flow ของ Rotary Encoder
การไหลของพัลส์ที่เกิดจากตัวเข้ารหัสแบบหมุนต่อไปนี้จะเหมือนกับภาพด้านบน
ขั้นตอนที่ 2: Pinout ของ Rotary Encoder
คำอธิบาย:
- GND GND
- + +5V
- ปุ่ม SW ของตัวเข้ารหัสแบบหมุนเมื่อกด
- DT Data
- CLK Data 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#define encoder0PinB 3 #define encoder0Btn 4 int encoder0Pos = 0; การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); pinMode(ตัวเข้ารหัส0PinA, INPUT_PULLUP); pinMode(ตัวเข้ารหัส0PinB, INPUT_PULLUP); pinMode(ตัวเข้ารหัส0Btn, INPUT_PULLUP); แนบInterrupt(0, doEncoder, CHANGE); } int valRotary, LastValRotary; วงเป็นโมฆะ () { int btn = digitalRead (encoder0Btn); Serial.print(btn); Serial.print(" "); Serial.print(valRotary); ถ้า (valRotary>lastValRotary) { Serial.print (" CW"); } ถ้า (valRotary {
Serial.print("ทวนเข็มนาฬิกา");
} lastValRotary = valRotary; Serial.println(" "); ล่าช้า (250); } โมฆะ doEncoder () { if (digitalRead (encoder0PinA) == digitalRead (encoder0PinB)) { encoder0Pos ++; } อื่น ๆ { encoder0Pos--; } valRotary = encoder0Pos/2.5; }
ในบรรทัดที่ 10 ของภาพร่างด้านบนใช้เพื่อเปิดใช้งานการขัดจังหวะของพิน 2 Arduino Uno ในฟังก์ชัน "doEncoder" จะคำนวณจากเครื่องเข้ารหัสแบบหมุน หากค่า DT และ CLK (พินอินเทอร์รัปต์ของ Arduino Uno) เท่ากัน ตัวแปร "encoder0Pos" จะเพิ่มขึ้น/เพิ่ม นอกเหนือจากเงื่อนไขนั้น ตัวแปร "encoder0Pos" จะลดลง
ขั้นตอนที่ 5: คำอธิบาย
ค่า ValRotary คือค่าของจำนวนขั้นตอนที่รันอยู่ ค่า ValRotary ได้มาจากค่าการอ่านตัวเข้ารหัสเซ็นเซอร์แบบโรตารี่หารด้วย 2.5 ได้ค่า 2.5 จากการทดสอบ เนื่องจากขั้นตอนหนึ่งของตัวเข้ารหัสแบบโรตารี่อาจเกิน 1 ดังนั้นให้หารด้วย 2.5 สำหรับค่าตาม perstep และการเพิ่มความล่าช้าในการอ่านด้วย
ขณะที่อยู่ในบรรทัดที่ 19 - 25 เป็นโปรแกรมเพื่อตรวจสอบว่าเครื่องเข้ารหัสแบบโรตารี่แบบหมุน CW หรือ CCW คำอธิบายของบรรทัดที่ 19 - 25 คือเมื่อค่าที่อ่านได้ของตัวเข้ารหัสแบบหมุนในปัจจุบันมากกว่าข้อมูลแบบหมุนก่อนหน้าแล้วแสดงเป็น CW ในขณะที่ถ้าการอ่านปัจจุบันมีขนาดเล็กกว่าการอ่านก่อนหน้านี้ก็ระบุเป็น CCW
ขั้นตอนที่ 6: เอาท์พุต
1 = ค่าปุ่มสตาร์ทของโรตารีเมื่อไม่ได้กด
แนะนำ:
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
วิธีสร้างบัญชี Gmail (บทช่วยสอนของ Raigyn สำหรับตะวันออก): 8 ขั้นตอน
วิธีสร้างบัญชี Gmail (Raigyn's Tutorial for East): ในบทช่วยสอนนี้ ฉันจะแสดงวิธีสร้างบัญชี Gmail ให้คุณดู
บทช่วยสอนของ Nvidia Jetson Nano - ดูครั้งแรกด้วย AI & ML: 7 ขั้นตอน
บทช่วยสอนของ Nvidia Jetson Nano | ดูครั้งแรกด้วย AI & ML: ว่าไงพวก! Akarsh จาก CETech วันนี้เราจะมาดู SBC ใหม่จาก Nvidia ซึ่งเป็น Jetson Nano โดย Jetson Nano มุ่งเน้นไปที่เทคนิคปัญญาประดิษฐ์เช่นการจดจำภาพ ฯลฯ เราจะทำการบูทครั้งแรก t
วิธีสร้าง CubeSat ด้วย Arduino ด้วย Arducam: 9 ขั้นตอน
วิธีสร้าง CubeSat ด้วย Arduino ด้วย Arducam: ในรูปแรก เรามี Arduino และเรียกว่า "Arduino Uno"ในรูปที่สอง เรามี Arducam และเรียกว่า "Arducam OV2640 มินิ 2MP"พร้อมกับภาพที่สอง มีวัสดุที่คุณต้อง
วิธีใช้เซ็นเซอร์สั่นสะเทือน- บทช่วยสอนของ VISUINO กับ ARDUINO: 6 ขั้นตอน
วิธีใช้เซ็นเซอร์สั่นสะเทือน- บทแนะนำของ VISUINO กับ ARDUINO: ในบทช่วยสอนนี้ เราจะใช้เซ็นเซอร์การสั่นไหว, ไฟ LED, ออด, ตัวต้านทาน, Arduino Uno และ Visuino เพื่อสร้างเสียงบี๊บเมื่อตรวจพบการสั่น ดูวิดีโอสาธิต