วิธีเชื่อมต่อจอยสติ๊กกับ Arduino

สารบัญ:

วิธีเชื่อมต่อจอยสติ๊กกับ Arduino
วิธีเชื่อมต่อจอยสติ๊กกับ Arduino

วีดีโอ: วิธีเชื่อมต่อจอยสติ๊กกับ Arduino

วีดีโอ: วิธีเชื่อมต่อจอยสติ๊กกับ Arduino
วีดีโอ: การใช้งาน JoyStick กับ Arduino 2024, พฤศจิกายน
Anonim

มีหลายวิธีในการถ่ายโอนข้อมูลจากบุคคลไปยังไมโครคอนโทรลเลอร์หรือคอมพิวเตอร์ และหนึ่งในนั้นคือการใช้จอยสติ๊ก เรามาดูวิธีเชื่อมต่อจอยสติ๊กแบบอะนาล็อกกับสองแกนและปุ่มเข้ากับ Arduino กัน

จอยสติ๊กสองแกนและปุ่มเดียว
จอยสติ๊กสองแกนและปุ่มเดียว

มันจำเป็น

  • - Arduino;
  • - จอยสติ๊กสองแกน
  • - ตัวต้านทาน 3 ตัวที่มีค่าเล็กน้อย 220 โอห์ม
  • - ไฟ LED RGB 1 ดวงหรือไฟ LED ธรรมดา 3 ดวง

คำแนะนำ

ขั้นตอนที่ 1

จอยสติ๊กเป็นอุปกรณ์ที่สะดวกและใช้งานง่ายสำหรับการส่งข้อมูล จอยสติ๊กมีหลายประเภทในแง่ของจำนวนองศาอิสระ หลักการอ่านข้อบ่งชี้ และเทคโนโลยีที่ใช้ จอยสติ๊กมักใช้เพื่อควบคุมการเคลื่อนไหวของกลไกใด ๆ รุ่นควบคุมหุ่นยนต์ จอยสติ๊กแบบแอนะล็อกที่เราจะดูกันในวันนี้คือด้ามจับที่ติดกับลูกหมากที่มีแกนตั้งฉากร่วมกัน เมื่อเอียงปุ่ม แกนจะหมุนหน้าสัมผัสที่เคลื่อนย้ายได้ของโพเทนชิออมิเตอร์ เนื่องจากแรงดันไฟฟ้าที่เอาท์พุตเปลี่ยนไป นอกจากนี้ จอยสติ๊กแบบอะนาล็อกยังมีปุ่มชั้นเชิง ซึ่งจะทริกเกอร์เมื่อคุณกดที่จับในแนวตั้ง

แผนผังจอยสติ๊ก
แผนผังจอยสติ๊ก

ขั้นตอนที่ 2

เชื่อมต่อจอยสติ๊กตามแผนภาพด้านล่าง เชื่อมต่อเอาต์พุตอะนาล็อก X และ Y ของจอยสติ๊กกับอินพุตอะนาล็อก A1 และ A2 ของ Arduino เอาต์พุตของปุ่ม SW กับอินพุตดิจิตอล 8 จอยสติ๊กใช้พลังงานจากแรงดันไฟฟ้า +5 V

แผนภาพการเดินสายจอยสติ๊กสำหรับ Arduino
แผนภาพการเดินสายจอยสติ๊กสำหรับ Arduino

ขั้นตอนที่ 3

เพื่อให้เห็นชัดเจนว่าจอยสติ๊กทำงานอย่างไร มาเขียนแบบร่างกัน มาประกาศพินกัน ตั้งค่าโหมดการทำงานสำหรับพวกมัน สังเกตว่าในขั้นตอนการตั้งค่า () เราตั้งค่าอินพุต switchPin เป็นระดับสูง สิ่งนี้ทำให้ตัวต้านทานแบบดึงขึ้นในตัวบนพอร์ตนี้ หากคุณไม่เปิดเครื่อง เมื่อไม่ได้กดปุ่มจอยสติ๊ก พอร์ต Arduino ตัวที่ 8 จะห้อยอยู่ในอากาศและจับปิ๊กอัพได้ สิ่งนี้จะนำไปสู่ผลบวกเท็จที่ไม่พึงประสงค์และวุ่นวาย

ในขั้นตอนลูป () เราสำรวจสถานะของปุ่มอย่างต่อเนื่องและแสดงโดยใช้ LED ที่เอาต์พุต 13 เนื่องจากมีการดึงอินพุต switchPin ขึ้น ไฟ LED จะติดอยู่ตลอดเวลา และเมื่อกดปุ่ม ไฟจะดับ และไม่ใช่ในทางกลับกัน

ต่อไป เราอ่านค่าที่อ่านได้จากโพเทนชิโอมิเตอร์สองตัวของจอยสติ๊ก - เอาต์พุตของแกน X และ Y Arduino มี ADC 10 บิต ดังนั้นค่าที่อ่านจากจอยสติ๊กจึงอยู่ในช่วงตั้งแต่ 0 ถึง 1023 ในตำแหน่งตรงกลางของจอยสติ๊ก ดังที่คุณเห็นในภาพประกอบ ค่าในพื้นที่ 500 นั้นประมาณกึ่งกลางของช่วง

ภาพร่างเพื่อแสดงการทำงานของจอยสติ๊ก
ภาพร่างเพื่อแสดงการทำงานของจอยสติ๊ก

ขั้นตอนที่ 4

โดยปกติแล้วจะใช้จอยสติ๊กเพื่อควบคุมมอเตอร์ไฟฟ้า แต่ทำไมไม่ใช้มันเพื่อควบคุมความสว่างของ LED เช่น? มาเชื่อมต่อ RGB LED (หรือไฟ LED ธรรมดาสามดวง) กับพอร์ตดิจิทัล 9, 10 และ 11 ของ Arduino ตามแผนภาพด้านบน แน่นอนว่าอย่าลืมเกี่ยวกับตัวต้านทาน

แผนภาพการเดินสายจอยสติ๊กและ RGB LED ไปยัง Arduino
แผนภาพการเดินสายจอยสติ๊กและ RGB LED ไปยัง Arduino

ขั้นตอนที่ 5

เราจะเปลี่ยนความสว่างของสีที่สอดคล้องกันเมื่อเปลี่ยนตำแหน่งของจอยสติ๊กตามแกนดังแสดงในรูป เนื่องจากจอยสติ๊กอาจไม่ได้ตั้งศูนย์กลางไว้อย่างแม่นยำโดยผู้ผลิตและมีสเกลตรงกลางไม่อยู่ที่ประมาณ 512 แต่จาก 490 ถึง 525 ไฟ LED อาจสว่างเล็กน้อยแม้ในขณะที่จอยสติ๊กอยู่ในตำแหน่งที่เป็นกลาง หากคุณต้องการให้ปิดโดยสมบูรณ์ ให้ทำการแก้ไขโปรแกรมอย่างเหมาะสม

แผนภาพการกระจายความสว่างของช่อง R, G, B ตามแกน X และ Y
แผนภาพการกระจายความสว่างของช่อง R, G, B ตามแกน X และ Y

ขั้นตอนที่ 6

จากแผนภาพด้านบน เราจะเขียนภาพร่างของ Arduino ควบคุมความสว่างของ LED RGB โดยใช้จอยสติ๊ก

ขั้นแรก เราจะประกาศความสอดคล้องของพินและตัวแปรสองตัว - ledOn และ prevSw - สำหรับการทำงานกับปุ่ม ในขั้นตอนการตั้งค่า () กำหนดฟังก์ชันให้กับพินและเชื่อมต่อตัวต้านทานแบบดึงขึ้นกับพินของปุ่มด้วยคำสั่ง digitalWrite (swPin, HIGH)

ในลูป () เรากำหนดการกดปุ่มจอยสติ๊ก เมื่อคุณกดปุ่ม เราจะสลับโหมดการทำงานระหว่างโหมด "ไฟฉาย" และโหมด "เพลงสี"

ในโหมด freeMode () ความสว่างของ LED จะถูกควบคุมโดยการเอียงจอยสติ๊กไปในทิศทางที่ต่างกัน: ยิ่งเอียงไปตามแกนมากเท่าไหร่ สีที่สอดคล้องก็จะยิ่งสว่างขึ้นเท่านั้น นอกจากนี้ การแปลงค่ายังถูกแทนที่โดยฟังก์ชันแผนที่ (ค่า จากล่าง จากบน ลงล่าง ถึงบน) ฟังก์ชั่นแผนที่ () โอนค่าที่วัดได้ (จากต่ำไปสูง) ตามแกนจอยสติ๊กไปยังช่วงความสว่างที่ต้องการ (ถึงต่ำถึงสูง)คุณสามารถทำเช่นเดียวกันกับการดำเนินการเลขคณิตธรรมดา แต่สัญกรณ์นี้สั้นกว่ามาก

ในโหมด discoMode () สามสีจะสลับกันเพิ่มความสว่างและดับลง เพื่อให้สามารถออกจากลูปได้เมื่อกดปุ่ม เราจะตรวจสอบการวนซ้ำแต่ละครั้งเพื่อดูว่ามีการกดปุ่มหรือไม่

ร่างสำหรับควบคุมความสว่างของ LED โดยใช้จอยสติ๊กแบบอะนาล็อก
ร่างสำหรับควบคุมความสว่างของ LED โดยใช้จอยสติ๊กแบบอะนาล็อก

ขั้นตอนที่ 7

ผลที่ได้คือไฟฉายที่ทำจากไฟ LED RGB สามสี ซึ่งตั้งค่าความสว่างของแต่ละสีโดยใช้จอยสติ๊ก และเมื่อคุณกดปุ่ม โหมด "เพลงสี" จะเปิดใช้งาน แม้ว่าฉันจะใช้มันเป็นไฟกลางคืน

ดังนั้นเราจึงได้เรียนรู้วิธีเชื่อมต่อจอยสติ๊กสองแกนแบบอะนาล็อกกับปุ่มเข้ากับ Arduino และอ่านค่าที่อ่านได้จากมัน คุณสามารถคิดและใช้จอยสติ๊กที่น่าสนใจกว่าตัวอย่างของเรา

แนะนำ: