สารบัญ:
- ขั้นตอนที่ 1: ข้อมูลทั่วไปเกี่ยวกับโมดูลเข็มทิศ
- ขั้นตอนที่ 2: ส่วนประกอบที่จำเป็น
- ขั้นตอนที่ 3: เชื่อมต่อโมดูลเข็มทิศ GY-511 กับ Arduino
- ขั้นตอนที่ 4: การสอบเทียบโมดูลเข็มทิศ GY-511
- ขั้นตอนที่ 5: วงจร
- ขั้นตอนที่ 6: รหัส
- ขั้นตอนที่ 7: การสร้างเข็มทิศดิจิตอล
- ขั้นตอนที่ 8: วงจร
- ขั้นตอนที่ 9: รหัส
- ขั้นตอนที่ 10: อะไรต่อไป?
วีดีโอ: วิธีใช้โมดูล GY511 กับ Arduino [สร้างเข็มทิศดิจิตอล]: 11 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
ภาพรวม
ในโครงการอิเล็กทรอนิกส์บางโครงการ เราจำเป็นต้องทราบที่ตั้งทางภูมิศาสตร์ในช่วงเวลาใด ๆ และดำเนินการเฉพาะตามนั้น ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีใช้โมดูลเข็มทิศ LSM303DLHC GY-511 กับ Arduino เพื่อสร้างเข็มทิศดิจิทัล ขั้นแรก คุณจะได้เรียนรู้เกี่ยวกับโมดูลนี้และวิธีการทำงาน จากนั้นคุณจะเห็นวิธีเชื่อมต่อโมดูล LSM303DLHC GY-511 กับ Arduino
สิ่งที่คุณจะได้เรียนรู้
- โมดูลเข็มทิศคืออะไร?
- โมดูลเข็มทิศและอินเทอร์เฟซ Arduino
- สร้างเข็มทิศดิจิตอลด้วยโมดูล GY-511 และ Arduino
ขั้นตอนที่ 1: ข้อมูลทั่วไปเกี่ยวกับโมดูลเข็มทิศ
โมดูล GY-511 ประกอบด้วยมาตรความเร่งแบบ 3 แกนและเครื่องวัดค่าความเข้มข้นของสนามแม่เหล็กแบบ 3 แกน เซ็นเซอร์นี้สามารถวัดความเร่งเชิงเส้นได้ที่สเกลเต็ม ± 2 g / ± 4 g / ± 8 g / ± 16 g และสนามแม่เหล็กเต็มที่ ± 1.3 / ± 1.9 / ± 2.5 / ± 4.0 / ± 4.7 / ± 5.6 / ±8.1 เกาส์.
เมื่อโมดูลนี้ถูกวางในสนามแม่เหล็ก ตามกฎของลอเรนซ์ กระแสกระตุ้นจะเหนี่ยวนำในขดลวดขนาดเล็กมาก โมดูลเข็มทิศจะแปลงกระแสนี้เป็นแรงดันไฟฟ้ำสำหรับแต่ละทิศทางพิกัด เมื่อใช้แรงดันไฟฟ้าเหล่านี้ คุณสามารถคำนวณสนามแม่เหล็กในแต่ละทิศทางและรับตำแหน่งทางภูมิศาสตร์ได้
เคล็ดลับ
QMC5883L เป็นอีกหนึ่งโมดูลเข็มทิศที่ใช้กันทั่วไป โมดูลนี้ซึ่งมีโครงสร้างและการใช้งานคล้ายกับโมดูล LMS303 มีประสิทธิภาพแตกต่างกันเล็กน้อย ดังนั้น หากคุณกำลังทำโปรเจ็กต์ โปรดใช้ความระมัดระวังเกี่ยวกับประเภทโมดูลของคุณ หากโมดูลของคุณคือ QMC5882L ให้ใช้ไลบรารีและโค้ดที่เหมาะสมที่รวมอยู่ในบทช่วยสอนด้วย
ขั้นตอนที่ 2: ส่วนประกอบที่จำเป็น
ส่วนประกอบฮาร์ดแวร์
Arduino UNO R3 *1
GY-511 มาตรความเร่ง 3 แกน + มาตรแม่เหล็ก *1
TowerPro เซอร์โวมอเตอร์ SG-90 *1
โมดูล LCD 1602 *1
จัมเปอร์ *1
แอพซอฟต์แวร์
Arduino IDE
ขั้นตอนที่ 3: เชื่อมต่อโมดูลเข็มทิศ GY-511 กับ Arduino
โมดูลเข็มทิศ GY-511 มี 8 พิน แต่คุณต้องการเพียง 4 ขาเพื่อเชื่อมต่อกับ Arduino โมดูลนี้สื่อสารกับ Arduino โดยใช้โปรโตคอล I2C ดังนั้นให้เชื่อมต่อพิน SDA (เอาต์พุต I2C) และ SCK (อินพุตนาฬิกา I2C) ของโมดูลกับพิน I2C บนบอร์ด Arduino
หมายเหตุ อย่างที่คุณเห็น เราได้ใช้โมดูล GY-511 ในโครงการนี้ แต่คุณสามารถใช้คำแนะนำนี้ในการตั้งค่าโมดูลเข็มทิศ LMS303 อื่นๆ ได้
ขั้นตอนที่ 4: การสอบเทียบโมดูลเข็มทิศ GY-511
ในการนำทาง คุณต้องปรับเทียบโมดูลก่อน ซึ่งหมายถึงการตั้งค่าช่วงการวัดจาก 0 ถึง 360 องศา ในการดำเนินการนี้ ให้เชื่อมต่อโมดูลกับ Arduino ดังที่แสดงด้านล่างและอัปโหลดโค้ดต่อไปนี้บนบอร์ดของคุณ หลังจากรันโค้ด คุณสามารถดูค่าต่ำสุดและสูงสุดของช่วงการวัดสำหรับแกน X, Y และ Z ในหน้าต่างมอนิเตอร์แบบอนุกรม คุณจะต้องใช้ตัวเลขเหล่านี้ในตอนต่อไป ดังนั้นให้จดไว้
ขั้นตอนที่ 5: วงจร
ขั้นตอนที่ 6: รหัส
ในรหัสนี้ คุณต้องมีไลบรารี Wire.h สำหรับการสื่อสาร I2C และไลบรารี LMS303.h สำหรับโมดูลเข็มทิศ คุณสามารถดาวน์โหลดไลบรารีเหล่านี้ได้จากลิงก์ต่อไปนี้
ห้องสมุด LMS303.h
ห้องสมุด Wire.h
หมายเหตุหากคุณใช้ QMC5883 คุณจะต้องมีไลบรารีต่อไปนี้:
MechaQMC5883L.h
ในที่นี้ เราอธิบายโค้ดสำหรับ LMS303 แต่คุณสามารถดาวน์โหลดโค้ดสำหรับโมดูล QMC ได้เช่นกัน
มาดูฟังก์ชันใหม่กันบ้าง:
compass.enableDefault();
การเริ่มต้นโมดูล
เข็มทิศ.อ่าน();
การอ่านค่าเอาต์พุตของโมดูลเข็มทิศ
running_min.z = นาที (running_min.z, compass.m.z); running_max.x = สูงสุด (running_max.x, compass.m.x);
การหาค่าต่ำสุดและสูงสุดของช่วงการวัดโดยการเปรียบเทียบค่าที่วัดได้
ขั้นตอนที่ 7: การสร้างเข็มทิศดิจิตอล
หลังจากปรับเทียบโมดูลแล้ว เราจะสร้างเข็มทิศโดยเชื่อมต่อเซอร์โวมอเตอร์กับโมดูล เพื่อให้ตัวบ่งชี้เซอร์โวแสดงให้เราเห็นทิศเหนือเสมอ เช่น ลูกศรสีแดงบนเข็มทิศ ในการทำเช่นนี้ ก่อนอื่นโมดูลเข็มทิศจะคำนวณทิศทางทางภูมิศาสตร์ก่อนแล้วส่งไปที่ Arduino จากนั้นใช้ค่าสัมประสิทธิ์ที่เหมาะสม คุณจะคำนวณมุมที่เซอร์โวมอเตอร์ควรหมุนเพื่อให้ตัวบ่งชี้ชี้ไปที่ทิศเหนือแม่เหล็ก ในที่สุด เราก็นำมุมนั้นไปใช้กับเซอร์โวมอเตอร์
ขั้นตอนที่ 8: วงจร
ขั้นตอนที่ 9: รหัส
สำหรับส่วนนี้ คุณต้องมีไลบรารี Servo.h ที่ติดตั้งบนซอฟต์แวร์ Arduino ของคุณโดยค่าเริ่มต้น
มาดูฟังก์ชันใหม่กันบ้าง:
เซอร์โว เซอร์โว1;
การเริ่มต้นโมดูล
เข็มทิศ.อ่าน();
แนะนำวัตถุเซอร์โวมอเตอร์
Servo1.attach (เซอร์โวพิน); เข็มทิศ.init(); compass.enableDefault();
การเริ่มต้นโมดูลเข็มทิศและเซอร์โวมอเตอร์
อาร์กิวเมนต์ Servo1.attach() คือจำนวนพินที่เชื่อมต่อกับเซอร์โวมอเตอร์
compass.m_min = (LSM303::เวกเตอร์){-32767, -32767, -32767}; compass.m_max = (LSM303::เวกเตอร์){+32767, +32767, +32767};
คุณใช้เส้นเหล่านี้กำหนดค่าต่ำสุดและสูงสุดสำหรับการวัดช่วงที่ได้รับในส่วนก่อนหน้า
float heading =compass.heading((LSM303::vector){0, 0, 1});
ฟังก์ชัน heading() จะคืนค่ามุมระหว่างแกนพิกัดและแกนคงที่ คุณสามารถกำหนดแกนคงที่ด้วยเวกเตอร์ในอาร์กิวเมนต์ของฟังก์ชัน ตัวอย่างเช่น ในที่นี้ โดยการกำหนด (LSM303:: vector) {0, 0, 1} แกน Z จะถือเป็นแกนคงที่
Servo1.write(หัวเรื่อง);
ฟังก์ชัน Servo1.write() ใช้ค่าที่อ่านได้จากโมดูลเข็มทิศกับเซอร์โวมอเตอร์
หมายเหตุโปรดทราบว่าเซอร์โวมอเตอร์อาจมีสนามแม่เหล็ก ดังนั้นควรวางเซอร์โวมอเตอร์ไว้ในระยะที่เหมาะสมจากโมดูลเข็มทิศ เพื่อไม่ให้โมดูลเข็มทิศเบี่ยงเบน
แนะนำ:
วิธีใช้โมดูล RFID-RC522 กับ Arduino: 5 ขั้นตอน
วิธีใช้โมดูล RFID-RC522 กับ Arduino: ในคำแนะนำนี้ ฉันจะอธิบายหลักการทำงานพื้นฐานของโมดูล RFID ควบคู่ไปกับแท็กและชิป ฉันจะให้ตัวอย่างสั้นๆ ของโครงการที่ฉันสร้างโดยใช้โมดูล RFID ที่มีไฟ LED RGB ตามปกติกับ Ins ของฉัน
วิธีใช้โมดูล DFMini Player MP3 กับ Arduino: 4 ขั้นตอน
วิธีใช้โมดูล DFMini Player MP3 กับ Arduino: หลายโครงการต้องการการสร้างเสียงเพื่อเพิ่มฟังก์ชันการทำงานบางอย่าง ในโครงการเหล่านี้ เราเน้น: การเข้าถึงสำหรับผู้พิการทางสายตา เครื่องเล่นเพลง MP3 และการใช้เสียงโดยหุ่นยนต์ เป็นต้น ในระบบทั้งหมดนี้
Arduino Lux Meter - เชื่อมต่อ OPT3001 กับ Arduino: 4 ขั้นตอน
Arduino Lux Meter - เชื่อมต่อ OPT3001 กับ Arduino: โดยทั่วไปแล้วเราต้องเผชิญกับสถานการณ์ที่เราต้องวัดความเข้มของแสง ดังนั้นฉันจึงตัดสินใจทำโครงการเล็กๆ ที่จะช่วยเราแก้ปัญหานี้ โครงงานนี้แสดงให้เห็นว่าเราสามารถใช้ OPT3001 กับ Arduino เป็น Lux meter ได้อย่างไร ในโครงการนี้ ฉันมี
[Docker Pi Series] วิธีใช้โมดูล IoT Node (A) บน Raspberry Pi: 18 ขั้นตอน
[Docker Pi Series] วิธีใช้โมดูล IoT Node (A) บน Raspberry Pi: โมดูล IoT Node (A) คืออะไร IoT Node (A) เป็นหนึ่งในโมดูล Docker Pi series IOT Node(A) = GPS/BDS + GSM + Lora.I2C ควบคุม Lora ส่งและรับข้อมูลโดยตรง ควบคุมโมดูล GSM/GPS/BDS ผ่าน SC16IS752 เมนบอร์ดต้องการเพียง I2C suppo
วิธีใช้โมดูล RGB Led: 4 ขั้นตอน
วิธีการใช้โมดูลไฟ LED RGB: คำอธิบาย:มีตัวต้านทานในตัวเพื่อป้องกันไม่ให้ไฟ LED ไหม้ สามารถใช้กับไมโครคอนโทรลเลอร์ต่างๆ ใช้งานได้สูง แรงดันไฟฟ้าทำงาน: 3.3V / 5Vสามารถเชื่อมต่อกับ Arduino ได้โดยตรง โดยไม่ต้องใช้สายจัมเปอร์