สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ในหนึ่งในคำสั่งก่อนหน้าของฉัน ฉันแสดงวิธีเชื่อมต่อและเชื่อมต่อ LCD กับ Arduino Uno และแสดงค่าบนนั้น แต่อย่างที่สังเกต มีสายสัมพันธ์มากมาย และหากโครงการเริ่มยุ่งมากเนื่องจากมีสายไฟมากเกินไป
ในคำแนะนำนี้ ฉันจะแสดงวิธีเชื่อมต่อ LCD กับ I2C ซึ่งจะมีเพียง 4 พินสำหรับควบคุมและใช้ LCD มาเริ่มกันเลยดีกว่า
ขั้นตอนที่ 1: ส่วนประกอบที่จำเป็น
สำหรับโครงการนี้ คุณจะต้อง:
- Arduino Uno
- จอแอลซีดี 16x2
- I2C สำหรับ LCD 16x2
- สายเบ็ด
ทั้งหมดนี้ มาเข้าสู่ส่วนการเชื่อมต่อกัน
ขั้นตอนที่ 2: การเชื่อมต่อ
ดูภาพและทำการเชื่อมต่อ มันค่อนข้างง่าย คุณเพียงแค่เสียบ I2C เข้ากับพอร์ตของ LCD และบัดกรีให้เข้าที่ จากนั้นเชื่อมต่อพิน SCL กับพิน A4 บน Arduino และพิน SDA กับพิน A5 บน Arduino
ฉันไม่ได้บัดกรี I2C เนื่องจากฉันได้บัดกรีหมุดส่วนหัวบน LCD แล้ว แต่ฉันขอแนะนำให้บัดกรี I2C บน LCD
ขั้นตอนที่ 3: รหัส
มีไลบรารีต้นแบบ LCD I2C รวมอยู่ใน Arduino IDE แต่มีปัญหาเล็กน้อยกับรหัสในนั้น ตัวอย่างทั้งหมดในไลบรารีนี้จะถือว่าที่อยู่เริ่มต้นของ I2C เป็น 0x27 ก่อนอื่นเราต้องค้นหาว่าที่อยู่ของ I2C ของเราคืออะไร เราสามารถทำได้โดยใช้รหัสสแกนเนอร์ I2C เมื่อเรามีที่อยู่ I2C แล้ว เราสามารถแทนที่ค่านี้ในโค้ดตัวอย่างและเริ่มใช้งานได้
รหัสเครื่องสแกน I2C:
#รวม
การตั้งค่าเป็นโมฆะ () { Wire.begin (); Serial.begin(9600); ในขณะที่ (!ซีเรียล); // รอ Serial Monitor Serial.println("\nI2C Scanner"); } void loop() { ข้อผิดพลาดไบต์ ที่อยู่; int nDevices; Serial.println("กำลังสแกน…"); nอุปกรณ์ = 0; สำหรับ (ที่อยู่ = 1; ที่อยู่ <127; ที่อยู่ ++) { // i2c_scanner ใช้ค่าส่งคืนของ // Write.endTransmisstion เพื่อดูว่า // อุปกรณ์ยอมรับที่อยู่หรือไม่ Wire.beginการส่ง(ที่อยู่); ข้อผิดพลาด = Wire.endTransmission(); ถ้า (ข้อผิดพลาด == 0) { Serial.print ("อุปกรณ์ I2C พบที่ที่อยู่ 0x"); ถ้า (ที่อยู่<16) Serial.print("0"); Serial.print (ที่อยู่ HEX); Serial.println(" !"); nอุปกรณ์++; } else if (error==4) { Serial.print("ข้อผิดพลาดที่ไม่ทราบที่อยู่ 0x"); ถ้า (ที่อยู่<16) Serial.print("0"); Serial.println (ที่อยู่ HEX); } } if (nDevices == 0) Serial.println("ไม่พบอุปกรณ์ I2C\n"); Serial.println("เสร็จสิ้น\n"); ล่าช้า (5000); // รอ 5 วินาทีสำหรับการสแกนครั้งต่อไป }
ตัวอย่างโค้ด (เพื่อแสดงอักขระที่ป้อนใน Serial Monitor):
#รวม #รวม
LiquidCrystal_I2C จอแอลซีดี (0x3F, 20, 4); // ตั้งค่าที่อยู่ LCD เป็น 0x27 สำหรับอักขระ 16 ตัวและจอแสดงผล 2 บรรทัด
การตั้งค่าเป็นโมฆะ ()
{ lcd.init(); // เริ่มต้น LCD lcd.backlight(); Serial.begin(9600); }
วงเป็นโมฆะ ()
{ // เมื่ออักขระมาถึงพอร์ตอนุกรม… ถ้า (Serial.available ()) { // รอสักครู่เพื่อให้ข้อความทั้งหมดมาถึงล่าช้า (100); // ล้างหน้าจอ lcd.clear(); // อ่านอักขระที่มีอยู่ทั้งหมดในขณะที่ (Serial.available () > 0) { // แสดงอักขระแต่ละตัวไปที่ LCD lcd.write (Serial.read ()); } } }
ขั้นตอนที่ 4: ผลลัพธ์
เมื่อคุณอัปโหลดรหัสแล้ว คุณก็พร้อมที่จะไป สำหรับคำแนะนำนี้ ฉันได้ยกตัวอย่างของ Serial Print Code ดังนั้นหลังจากอัปโหลดโค้ดแล้ว ให้เปิด Serial Monitor แล้วพิมพ์คำแล้วคลิก "ส่ง" ตอนนี้คุณควรเห็นค่านี้แสดงบน LCD