สารบัญ:

ใช้ LCD 16x2 กับ I2C: 4 ขั้นตอน
ใช้ LCD 16x2 กับ I2C: 4 ขั้นตอน

วีดีโอ: ใช้ LCD 16x2 กับ I2C: 4 ขั้นตอน

วีดีโอ: ใช้ LCD 16x2 กับ I2C: 4 ขั้นตอน
วีดีโอ: #38 สอน Arduino Tutorial : Arduino แสดงข้อความออกจอ LCD แบบ I2C 2024, พฤศจิกายน
Anonim
ใช้ LCD ขนาด 16x2 กับ I2C
ใช้ LCD ขนาด 16x2 กับ I2C
ใช้ LCD ขนาด 16x2 กับ I2C
ใช้ LCD ขนาด 16x2 กับ I2C
ใช้ LCD 16x2 กับ I2C
ใช้ LCD 16x2 กับ I2C

ในหนึ่งในคำสั่งก่อนหน้าของฉัน ฉันแสดงวิธีเชื่อมต่อและเชื่อมต่อ 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

แนะนำ: