กระโดดไปยัง:
บทเรียน ESP32 1/55 - แนะนำชุดเรียนรู้ IoT ESP32 ของ SunFounder ซอฟต์แวร์และ Arduino IDE บทช่วยสอน ESP32 2/55 - ESP32 คืออะไร, บอร์ดขยายกล้อง, แกะกล่องชุด IoT ESP32 ของ SunFounder ESP32 บทเรียนที่ 3/55 - โครงการตัวต้านทาน, LED, Breadboard: สวัสดี LED - ชุดเรียนรู้ IoT ESP32 บทเรียน ESP32 4/55 - ชนิดข้อมูล การกำหนดตัวแปร Int, bool, char, Serial Monitor - ชุด IoT ESP32 บทเรียน ESP32 5/55 - การหรี่แสง LED, ควบคุมความสว่างของ LED - ชุดเรียนรู้ IoT ESP32 บทช่วยสอน ESP32 6/55 - การใช้โปรเจกต์ RGB LED 2.3 - ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 7/55 - การใช้ Array กับการเขียนโปรแกรม ESP32 Arduino - ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 Tutorial 8/55 -Walking Light 74HC595 Shift register -SunFounder's ESP32 IoT Learning kit บทเรียน ESP32 9/55 - การใช้ปุ่มกดเพื่อสลับเปิด-ปิด LED, กดเปิด, กดปิด - ชุด IoT ESP32 ของ SunFounder ESP32 บทเรียนที่ 10/55 - ตัวนับดิจิทัลโดยใช้จอแสดงผลเซเว่นเซกเมนต์ 74HC595 - ชุดเรียนรู้ IoT สำหรับ ESP32 บทเรียน ESP32 11/55 - การใช้ LCD1602 LCD2004 กับ ESP32 - ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 12/55 - โปรเจกต์แถบ RGB WS2812 4 ร่วมกับชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 13/55 - Arduino ส่งเสียงบี๊บด้วย Active Buzzer | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 14/55 - การเล่นโน้ตเพลงที่กำหนดเองโดยใช้ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 15/55 - การควบคุมความเร็วมอเตอร์ DC ด้วย ESP32 L293D | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 16/55 - ปั๊มน้ำขนาดเล็กโดยใช้ ESP32 และ L293D | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียนที่ 17/55 - การควบคุมเซอร์โวมอเตอร์โดยใช้ ESP32 และโพเทนชิโอมิเตอร์ - ชุดการเรียนรู้ IoT สำหรับ ESP32 บทเรียน ESP32 18/55 - การตรวจจับการเอียงโดยใช้ ESP32 | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 19/55 - การตรวจจับสิ่งกีดขวางโดยใช้เซนเซอร์อินฟราเรด | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 20/55 - โมดูลติดตามเส้น | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 21/55 - การตรวจจับมนุษย์ด้วยเซนเซอร์ตรวจจับการเคลื่อนไหว PIR | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 22/55 - รับรู้แสงโดยใช้ LED Arduino | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 23/55 - การอ่านแรงดันไฟฟ้าของโพเทนชิโอมิเตอร์โดยใช้ ESP32 | ชุด IoT ESP32 ของ SunFounder ESP32 บทเรียน 24/55 - การวัดความชื้นในดินเพื่อการชลประทาน | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 25/55 - การวัดอุณหภูมิโดยใช้ NTC และ LCD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 26/55 - การใช้จอยสติ๊กกับ Arduino ลงมือปฏิบัติ | ชุด IoT ESP32 ของ SunFounder บทเรียน ESP32 27/55 - การวัดระยะทางด้วยเซนเซอร์อัลตราโซนิก | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 28/55 - เซนเซอร์วัดอุณหภูมิ DHT11 พร้อมจอ LCD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทช่วยสอน 29/55 - การอ่านการกดปุ่มรีโมทอินฟราเรดด้วย ESP32| ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 30/55 - ควบคุมเซอร์โวผ่านเว็บโดยใช้ MQTT ผ่านบริการ Adafruit IO | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 31/55 - โปรเจกต์แถบ LED พร้อมการหลบหลีกสิ่งกีดขวาง | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 32/55 - คำเตือนระยะการถอยรถด้วย LCD และออด | ชุดเรียนรู้ IoT ของ SunFounder บทเรียน ESP32 33/55 - ลูกเต๋าดิจิทัลโดยใช้ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทช่วยสอน 34/55 - การไล่เฉดสีด้วย RGB LED และปุ่มหมุน | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 35/55 - เครื่องตรวจวัดพืช ดิน อุณหภูมิ และแสง | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 36/55 - เกมทายตัวเลข | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 37/55 - การใช้แอปบลูทูธกับ ESP32 BLE | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 38/55 - การควบคุม RGB LED จากโทรศัพท์มือถือของคุณ | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 39/55 - การใช้ ESP32 เป็นเครื่องเล่นเพลงบลูทูธ | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 40/55 - การอ่านและเขียนลงการ์ด Micro SD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 41/55 - เครื่องเล่น MP3 โดยใช้การ์ด Micro SD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทเรียน ESP32 42/55 - ถ่ายภาพด้วยกล้องแล้วบันทึกลง Micro SD CAM-1 | ชุด ESP32 ของ SunFounder ESP32 บทเรียน 43/55 - สถานีตรวจอากาศอินเทอร์เน็ต IoT | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทช่วยสอน 44/55 - ESP32 กล้องเว็บเซิร์ฟเวอร์สตรีมวิดีโอผ่าน Wifi CAM-2 | ชุด ESP32 ของ SunFounder บทช่วยสอน ESP32 45/55 - เซิร์ฟเวอร์สตรีมมิงแบบกำหนดเองพร้อมการควบคุม LED CAM-3 l ชุดเรียนรู้ ESP32 ของ SunFounder บทช่วยสอน ESP32 46/55 - การตรวจวัดอุณหภูมิระยะไกลโดยใช้ HiveMQ MQTT | ชุด ESP32 ของ SunFounder บทเรียน ESP32 47/55 - WS2812 CheerLights โดยใช้ MQTT ผ่านอินเทอร์เน็ต | ชุด IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 48/55 - การตรวจวัดอุณหภูมิระยะไกลและการควบคุม LED ด้วย MQTT | ชุด IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 49/55 - ควบคุมมอเตอร์ DC ผ่านอินเทอร์เน็ตโดยใช้ Adafruit IoT | ชุด ESP32 ของ SunFounder ESP32 บทเรียน 50/55 - ควบคุม RGB LED จากที่ใดก็ได้ในโลก | ชุด ESP32 ของ SunFounder ESP32 Tutorial 51/55 - Temperature and Humidity over WiFi with DHT | SunFounder's ESP32 IoT Learning Kit บทช่วยสอน ESP32 52/55 - การซิงค์ระดับโลกของ WS2812 CheerLights ผ่าน MQTT พร้อมจอ LCD | ชุด IoT ESP32 ของ SunFounder บทเรียน ESP32 53/55 - สร้างนาฬิกาอินเทอร์เน็ตบนจอ LCD | ชุดเรียนรู้ IoT ESP32 ของ SunFounder บทช่วยสอน ESP32 54/55 - ตั้งค่าสีแถบ LED WS2812 ผ่าน Wifi | ชุดเรียนรู้ IoT ESP32 ของ SunFounder ESP32 บทเรียน 55/55 - วิธีวัดแรงดันไฟฟ้ากระแสตรง 12V, 24V หรือ 100V | ชุดเรียนรู้ IoT ESP32 ของ SunFounder
บทช่วยสอน ESP32 26/55 - การใช้จอยสติ๊กกับ Arduino ลงมือปฏิบัติ | ชุด IoT ESP32 ของ SunFounder
ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีการเชื่อมต่อจอยสติ๊กแบบ XY เข้ากับไมโครคอนโทรลเลอร์ ESP32 จาก SunFounder เพื่อให้เราสามารถตรวจจับตำแหน่งของมันและดำเนินการตามอินพุตที่ได้รับ เราจะรวมออดที่ทำงานเมื่อจอยสติ๊กถูกเลื่อนไปยังตำแหน่งที่กำหนดด้วย การรวมกันนี้จะช่วยให้เราสร้างโปรเจกต์แบบโต้ตอบที่ตอบสนองต่ออินพุตของผู้ใช้แบบเรียลไทม์
ESP32-26-xy-joystick-main
จอยสติ๊กแบบ XY ให้เอาต์พุตแบบแอนะล็อกสองช่องที่สอดคล้องกับตำแหน่ง X และ Y และมีสวิตช์ที่สามารถกดเพื่อกระตุ้นการทำงานได้ โดยการอ่านค่าจากจอยสติ๊ก เราสามารถควบคุมองค์ประกอบต่างๆ ในโปรเจกต์ของเรา เช่น การเปิดใช้งานออดหรือแสดงค่าบนหน้าจอ เพื่อให้เข้าใจกระบวนการอย่างถ่องแท้ โปรดดูวิดีโอเพื่อข้อมูลเพิ่มเติม (ในวิดีโอที่ 00:00)
อธิบายฮาร์ดแวร์
ส่วนประกอบหลักสำหรับโปรเจกต์นี้ประกอบด้วยไมโครคอนโทรลเลอร์ ESP32 จอยสติ๊กแบบ XY และออด ESP32 เป็นบอร์ดอเนกประสงค์ที่รองรับ Wi-Fi และ Bluetooth ทำให้เหมาะสำหรับโปรเจกต์ IoT จอยสติ๊กแบบ XY ประกอบด้วยตัวต้านทานแบบปรับค่าได้สองตัวสำหรับแกน X และ Y และปุ่มกดสวิตช์สำหรับอินพุตเพิ่มเติม
joystick_schematic
ESP32-26-xy-joystick-schematic
จอยสติ๊กส่งสัญญาณแอนะล็อกที่สอดคล้องกับตำแหน่งของมัน ซึ่งจะถูกอ่านโดยพินแอนะล็อกของ ESP32 ปุ่มกดให้สัญญาณดิจิทัลเมื่อถูกกด ออดเชื่อมต่อกับพินเอาต์พุตดิจิทัลบน ESP32 ทำให้สามารถเปิดหรือปิดการทำงานได้ตามตำแหน่งของจอยสติ๊ก
รายละเอียดจาก Datasheet
ผู้ผลิต
SunFounder
หมายเลขชิ้นส่วน
โมดูลจอยสติ๊ก XY
แรงดันไฟฟ้าที่ใช้งาน
3.3 V – 5 V
ค่าตัวต้านทาน
10 kΩ (แต่ละแกน)
กระแสสูงสุด
20 mA
ประเภทสวิตช์
ปุ่มกดชั่วขณะ
ขนาด
ประมาณ 50 มม. x 50 มม.
ตรวจสอบให้แน่ใจว่าจอยสติ๊กได้รับไฟ 3.3 V เพื่อความเข้ากันได้กับ ESP32
ใช้ตัวต้านทานแบบดึงขึ้นสำหรับสวิตช์เพื่อหลีกเลี่ยงอินพุตลอย
เชื่อมต่อเอาต์พุตแอนะล็อกเข้ากับพิน ADC ของ ESP32 (34 สำหรับ X, 35 สำหรับ Y)
ใช้กลไกดีบาวซ์สำหรับสวิตช์เพื่อป้องกันการทำงานที่ผิดพลาด
ตรวจสอบระดับแรงดันไฟฟ้าเพื่อให้แน่ใจว่าอยู่ภายในขีดจำกัดการทำงานที่ปลอดภัย
คำแนะนำการเดินสายไฟ
ESP32-26-xy-joystick-wiring
ในการเดินสายไฟจอยสติ๊กเข้ากับ ESP32 ให้เริ่มต้นโดยเชื่อมต่อพินกราวด์จากจอยสติ๊กเข้ากับพินกราวด์บน ESP32 จากนั้นเชื่อมต่อพิน VCC ของจอยสติ๊กเข้ากับพิน 3.3 V บน ESP32 จอยสติ๊กมีพินเอาต์พุตแอนะล็อกสองพิน: เชื่อมต่อเอาต์พุตแกน X (ระบุเป็น VRX) เข้ากับพิน 34 บน ESP32 และเอาต์พุตแกน Y (ระบุเป็น VRY) เข้ากับพิน 35
สำหรับเอาต์พุตสวิตช์ ให้เชื่อมต่อพินสวิตช์เข้ากับพิน 33 บน ESP32 พินนี้จะอ่านการกดปุ่มเป็นอินพุตดิจิทัล ตรวจสอบให้แน่ใจว่าการเชื่อมต่อแน่นหนาเพื่อหลีกเลี่ยงปัญหาที่เกิดขึ้นเป็นระยะๆ หากการเดินสายไฟของคุณแตกต่างจากในวิดีโอ (ในวิดีโอที่ 02:30) ให้ปรับเปลี่ยนตามความเหมาะสมในขณะที่ปฏิบัติตามหลักการเดียวกันสำหรับการเชื่อมต่อแอนะล็อกและดิจิทัล
ตัวอย่างโค้ดและคำอธิบาย
ในโค้ด เราเริ่มต้นด้วยการกำหนดค่าคงที่สำหรับพินจอยสติ๊ก ตัวระบุ xAxis, yAxis และ btn ถูกตั้งค่าเป็น 34, 35 และ 33 ตามลำดับ ซึ่งทำให้ง่ายต่อการอ้างอิงพินเหล่านี้ตลอดทั้งโปรแกรม
#define xAxis 34
#define yAxis 35
#define btn 33
ในฟังก์ชัน setup() เราจะเริ่มต้นการสื่อสารแบบอนุกรมและตั้งค่าโหมดพินปุ่มเป็นอินพุต ซึ่งเป็นการเตรียม ESP32 ให้อ่านข้อมูลจากจอยสติ๊กและส่งไปยังซีเรียลมอนิเตอร์
void setup() {
Serial.begin(115200);
pinMode(btn, INPUT);
}
ภายใน loop() เราจะอ่านค่าแอนะล็อกสำหรับแกน X และ Y ของจอยสติ๊กโดยใช้ analogRead() และเก็บไว้ใน xValue และ yValue สถานะของปุ่มจะถูกอ่านโดยใช้ digitalRead() และเก็บไว้ใน btnValue สุดท้าย เราจะพิมพ์ค่าเหล่านี้ไปยังซีเรียลมอนิเตอร์
void loop() {
int xValue = analogRead(xAxis);
int yValue = analogRead(yAxis);
int btnValue = digitalRead(btn);
Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
delay(300); // หน่วงเวลาระหว่างการอ่าน
}
ลูปนี้จะอัปเดตค่าอย่างต่อเนื่อง ให้ข้อเสนอแนะแบบเรียลไทม์เกี่ยวกับการเคลื่อนไหวของจอยสติ๊กและการกดปุ่ม สำหรับโค้ดที่สมบูรณ์ โปรดดูโค้ดเต็มที่โหลดไว้ด้านล่างบทความ
การสาธิต / สิ่งที่คาดหวัง
เมื่อการตั้งค่าเสร็จสมบูรณ์และอัปโหลดโค้ดแล้ว ซีเรียลมอนิเตอร์ควรแสดงค่า X และ Y พร้อมกับสถานะของปุ่ม เมื่อคุณเลื่อนจอยสติ๊ก ค่าจะเปลี่ยนไปตามตำแหน่งของมัน การกดปุ่มจะสลับสถานะระหว่างสูงและต่ำ
ข้อผิดพลาดทั่วไปรวมถึงการเดินสายไฟที่ไม่ถูกต้อง ซึ่งอาจทำให้เกิดอินพุตลอยหรือจอยสติ๊กไม่ตอบสนอง ตรวจสอบให้แน่ใจว่าใช้พินที่ถูกต้องและมีการติดตั้งตัวต้านทานแบบดึงขึ้นสำหรับสวิตช์ ดูวิดีโอเพื่อการสาธิตเชิงปฏิบัติของพฤติกรรมเหล่านี้ (ในวิดีโอที่ 13:00)
ไทม์สแตมป์ของวิดีโอ
00:00 เริ่มต้น
1:47 แนะนำจอยสติ๊ก XY
7:32 การวัดค่าจอยสติ๊ก
8:40 อธิบายการเดินสายไฟ
11:06 อธิบายโค้ด Arduino สำหรับจอยสติ๊กกับ ESP32
14:43 การเลือกบอร์ด ESP32 และพอร์ต COM ใน Arduino IDE
16:24 การสาธิตการใช้งานจอยสติ๊กอย่างง่าย
19:20 การตรวจจับตำแหน่งของจอยสติ๊กด้วยโค้ดพร้อมบัซเซอร์
21:16 การสาธิตการตรวจจับตำแหน่ง
ภาพ
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
รหัส
826-ESP32 Tutorial 26/55- Arduino code for XY Joystick
ภาษา: C++
ดูโค้ด
// Define constants for the x and y axis and the button pins
#define xAxis 34
#define yAxis 35
#define btn 33
void setup() {
// Initialize serial communication at 115200 bits per second:
Serial.begin(115200);
// Set the mode of the button pin to input
pinMode(btn, INPUT);
}
void loop() {
// Read the analog value for x,y axis
int xValue = analogRead(xAxis);
int yValue = analogRead(yAxis);
// Read the digital value from the button pin
int btnValue = digitalRead(btn);
// print out the values
Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
delay(300); // Delay between reads
}
แหล่งข้อมูลและเอกสารอ้างอิง
ไฟล์📁
ไม่มีไฟล์ที่พร้อมใช้งาน