บทเรียน 20/31: การแสดงระยะทางอัลตราโซนิกบน LCD1602
โปรเจกต์นี้สาธิตวิธีการรวมเซนเซอร์วัดระยะอัลตราโซนิก HC-SR04 เข้ากับจอแสดงผล LCD1602 ที่รองรับ I2C เพื่อสร้างระบบวัดระยะแบบเรียลไทม์ เมื่อทำตามคำแนะนำนี้จบ คุณจะได้อุปกรณ์ที่ทำงานได้จริงซึ่งวัดและแสดงระยะห่างจากวัตถุเป็นเซนติเมตรอย่างต่อเนื่อง นี่คือทักษะพื้นฐานในงานอิเล็กทรอนิกส์กับ Arduino เนื่องจากเป็นการรวมการรับข้อมูลจากเซนเซอร์เข้ากับการแสดงผลทางภาพ
การตั้งค่านี้สามารถนำไปใช้ในงานจริงได้หลากหลายประเภท เช่น:
- สร้างผู้ช่วยจอดรถอัจฉริยะที่ช่วยคุณประเมินระยะห่างจากกำแพงหรือรถคันอื่น
- สร้างเครื่องวัดระดับของเหลวอย่างง่ายสำหรับถัง โดยวัดระยะจากด้านบนถึงพื้นผิว
- พัฒนาเครื่องจ่ายเจลล้างมืออัตโนมัติหรือถังขยะแบบไม่ต้องสัมผัสที่เปิดเมื่อมีวัตถุอยู่ใกล้
- สร้างสัญญาณเตือนความปลอดภัยพื้นฐานที่ทำงานเมื่อมีคนเข้ามาในพื้นที่เฉพาะ
ฮาร์ดแวร์และอุปกรณ์
ในการสร้างโปรเจกต์นี้ คุณจะต้องมีอุปกรณ์ดังต่อไปนี้:
- บอร์ด Arduino (เช่น Uno)
- จอแสดงผล LCD1602 พร้อมโมดูลอินเทอร์เฟซ I2C
- เซนเซอร์วัดระยะอัลตราโซนิก HC-SR04
- สายจัมเปอร์
- เบรดบอร์ด (ไม่บังคับ เพื่อความสะดวกในการเชื่อมต่อ)
ทำความเข้าใจ LCD1602 และ I2C
LCD1602 เป็นจอแสดงผลยอดนิยมที่สามารถแสดงตัวอักษรได้ 16 ตัวต่อบรรทัดบนสองบรรทัด โมดูล "I2C" ที่อยู่ด้านหลังเป็นข้อได้เปรียบที่สำคัญเพราะช่วยลดจำนวนพินที่ต้องใช้ในการควบคุมจอแสดงผลจาก 6 พินหรือมากกว่านั้นเหลือเพียง 2 พินสำหรับการสื่อสาร (SDA และ SCL) และ 2 พินสำหรับไฟเลี้ยง (VCC และ GND) การลดความซับซ้อนนี้ทำให้การเดินสายสะอาดขึ้นมากและเพิ่มพินดิจิทัลที่มีค่าของ Arduino ของคุณสำหรับเซนเซอร์อื่น ๆ เช่นเซนเซอร์อัลตราโซนิกที่ใช้ในโปรเจกต์นี้ (ในวิดีโอที่ 01:30)
โมดูล I2C ยังมีโพเทนชิโอมิเตอร์ขนาดเล็กสำหรับปรับความคมชัดของจอแสดงผล หากคุณจ่ายไฟให้จอแล้วไม่เห็นอะไร ให้ลองหมุนสกรูนี้จนกว่าข้อความจะมองเห็นได้ (ในวิดีโอที่ 02:47)
คู่มือการเดินสาย
การเชื่อมต่ออุปกรณ์เป็นเรื่องง่าย โมดูล I2C ของ LCD มีสี่พินที่ต้องเชื่อมต่อกับ Arduino สำหรับเซนเซอร์อัลตราโซนิกก็มีสี่พินเช่นกัน
นี่คือรายละเอียดของการเชื่อมต่อ:
โมดูล I2C ของ LCD1602 ไปยัง Arduino:
- GND ไปยัง GND ของ Arduino
- VCC ไปยัง 5V ของ Arduino
- SDA ไปยัง A4 ของ Arduino
- SCL ไปยัง A5 ของ Arduino
เซนเซอร์อัลตราโซนิก HC-SR04 ไปยัง Arduino:
- VCC ไปยัง 5V ของ Arduino
- Trig ไปยังพินดิจิทัล 12 ของ Arduino
- Echo ไปยังพินดิจิทัล 11 ของ Arduino
- GND ไปยัง GND ของ Arduino
แผนภาพการเดินสายสำหรับโปรเจกต์นี้อ้างอิงในวิดีโอ
การติดตั้งไลบรารีที่จำเป็น
โปรเจกต์นี้ต้องพึ่งพาไลบรารีสำคัญสองตัว ไลบรารีแรก LiquidCrystal_I2C จำเป็นสำหรับการควบคุม LCD และไม่ได้มาพร้อมกับ Arduino IDE โดยค่าเริ่มต้น คุณสามารถดาวน์โหลดได้จากลิงก์ที่ให้ไว้ในคำอธิบายวิดีโอหรือจากเว็บไซต์ Robojax (ในวิดีโอที่ 06:16)
ไลบรารีที่สอง NewPing ใช้สำหรับเชื่อมต่อกับเซนเซอร์อัลตราโซนิก ไลบรารีนี้ช่วยลดความซับซ้อนของกระบวนการส่งสัญญาณ ping และอ่านเวลา echo ไลบรารีทั้งสองสามารถติดตั้งได้ผ่านตัวจัดการไลบรารีของ Arduino IDE โดยไปที่ Sketch -> Include Library -> Manage Libraries และค้นหาชื่อของไลบรารี
คำอธิบายโค้ด
สเก็ตช์นี้รวมฟังก์ชันการทำงานของ LCD และเซนเซอร์อัลตราโซนิกเข้าด้วยกัน โค้ดถูกจัดโครงสร้างให้ง่ายต่อการกำหนดค่าสำหรับการตั้งค่าเฉพาะของคุณ
ที่ด้านบนของโค้ด คุณจะพบตัวแปรสำคัญที่คุณอาจต้องปรับ:
// ตั้งค่าที่อยู่ LCD เป็น 0x27 สำหรับจอแสดงผล 16 ตัวอักษรและ 2 บรรทัด
LiquidCrystal_I2C lcd(0x27, displayChars, displayRows);
#define TRIGGER_PIN 12 // พิน Arduino ที่เชื่อมกับพิน trigger บนเซนเซอร์อัลตราโซนิก
#define ECHO_PIN 11 // พิน Arduino ที่เชื่อมกับพิน echo บนเซนเซอร์อัลตราโซนิก
#define MAX_DISTANCE 190 // ระยะทางสูงสุดที่เราต้องการ ping (เป็นเซนติเมตร)
- ที่อยู่ LCD (0x27): นี่คือที่อยู่ I2C ของโมดูล LCD ของคุณ โมดูลส่วนใหญ่ใช้
0x27แต่บางโมดูลอาจใช้0x3Fหากจอแสดงผลของคุณไม่แสดงอะไรเลย คุณอาจต้องรันสเก็ตช์สแกน I2C เพื่อหาที่อยู่ที่ถูกต้องและอัปเดตค่านี้ (ในวิดีโอที่ 08:11) - TRIGGER_PIN และ ECHO_PIN: ค่าเหล่านี้กำหนดพินดิจิทัลของ Arduino ที่เชื่อมต่อกับพิน Trig และ Echo ของเซนเซอร์อัลตราโซนิก หากคุณใช้พินอื่น ให้เปลี่ยนคำนิยามเหล่านี้
- MAX_DISTANCE: ค่านี้กำหนดระยะทางสูงสุดเป็นเซนติเมตรที่เซนเซอร์จะวัด HC-SR04 สามารถวัดได้สูงสุดถึง 400-500 ซม. แต่การตั้งค่าที่ต่ำกว่าสามารถปรับปรุงความแม่นยำและความน่าเชื่อถือของการอ่านค่าได้ โดยเฉพาะสำหรับระยะทางที่สั้นกว่า
ในฟังก์ชัน loop() โค้ดจะดำเนินการตามขั้นตอนต่อไปนี้:
- ใช้ฟังก์ชัน
sonar.ping_cm()เพื่อวัดระยะทางและเก็บค่าไว้ในตัวแปรdistance - ล้างหน้าจอ LCD และพิมพ์ข้อความ "Robojax.com" บนบรรทัดแรก
- จากนั้นเลื่อนเคอร์เซอร์ไปที่บรรทัดที่สองและพิมพ์ "Distance: "
- สุดท้าย เลื่อนเคอร์เซอร์ไปที่ตำแหน่งที่ 10 บนบรรทัดที่สองเพื่อพิมพ์ค่า
distanceที่วัดได้ตามด้วย "cm"
คำสั่ง delay(200) ที่ท้ายลูปควบคุมความถี่ที่เซนเซอร์จะอ่านค่าใหม่และอัปเดตหน้าจอ
การสาธิตโค้ด
เมื่ออัปโหลดโค้ดไปยัง Arduino ของคุณแล้ว หน้าจอ LCD จะสว่างขึ้นและเริ่มแสดงระยะทาง คุณสามารถทดสอบการตั้งค่าได้โดยการขยับมือหรือวัตถุให้เข้าใกล้และห่างจากเซนเซอร์อัลตราโซนิก ตัวเลขบนหน้าจอควรอัปเดตแบบเรียลไทม์ โดยแสดงระยะทางเป็นเซนติเมตร (ในวิดีโอที่เวลา 38:07)
โปรเจกต์ที่เกี่ยวข้องจากวิดีโอนี้
- บทเรียนที่ 20/31: การใช้ LCD1602 กับ Arduino แสดงข้อความ | Robojax
- บทเรียนที่ 20/31: การแสดงอุณหภูมิและความชื้นจาก DHT11 บนหน้าจอ LCD
- บทเรียนที่ 20/31: การแสดงแรงดันไฟฟ้าบน LCD1602
บทต่างๆ
- [00:00] แนะนำ LCD1602 และภาพรวมโปรเจกต์
- [01:30] อธิบายฮาร์ดแวร์ LCD1602 และโมดูล I2C
- [03:14] การกำหนดขา LCD และการตั้งค่าที่อยู่ I2C
- [05:28] แผนผังการเดินสายไฟสำหรับ LCD1602
- [06:16] การติดตั้งไลบรารี LCD ที่จำเป็น
- [07:24] โค้ดพื้นฐานสำหรับพิมพ์ข้อความบน LCD
- [08:11] การหาที่อยู่ I2C ของ LCD ของคุณ
- [11:10] ตัวอย่าง LCD: เคอร์เซอร์กระพริบและอักขระที่กำหนดเอง
- [18:51] ตัวอย่าง LCD: การแสดงผลแบบอนุกรมและข้อความเลื่อน
- [24:36] การแสดงอุณหภูมิและความชื้น DHT11 บน LCD
- [33:00] การแสดงแรงดันไฟฟ้าจากโพเทนชิโอมิเตอร์บน LCD
- [35:56] การรวมโค้ดเซนเซอร์อัลตราโซนิกเข้ากับ LCD
- [38:07] การสาธิตการแสดงระยะทางอัลตราโซนิก
This code has not been parsed yet. Please return to the admin panel to parse it.
สิ่งที่คุณอาจต้องการ
-
อเมซอนSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
อเมซอน
-
อเมซอน
-
อเมซอน
-
อเมซอน
แหล่งข้อมูลและเอกสารอ้างอิง
-
เอกสารDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
ภายนอกPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
ไฟล์📁
ไลบรารี Arduino (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB
คู่มือผู้ใช้
-
SunFounder 3-in-1 Arduino Smart Car assembly manualThis document shows step by step assembly of SunFounder 3-in-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB