- วัสดุที่ต้องการ:
- กะลงทะเบียน:
- อินเทอร์เฟซ LCD พร้อม ESP12 โดยไม่ต้องใช้ Shift Register:
- รหัส:
- อินเทอร์เฟซ LCD พร้อม ESP12 โดยใช้ Shift Register SN74HC595N:
- รหัส:
ในการกวดวิชานี้เราจะมาดูวิธีการติดต่อNodeMCU กับ 16x2 จอแอลซีดีโดยไม่ต้องใช้การสื่อสารแบบ ที่นี่เราจะเชื่อมต่อ LCD 16x2 โดยใช้ shift register SN74HC595 นอกจากนี้เรายังสามารถเชื่อมต่อได้โดยไม่ต้องใช้ shift register เราจะเห็นอินเทอร์เฟซทั้งสองประเภทในบทช่วยสอนนี้ ความแตกต่างหลักระหว่างอินเทอร์เฟซทั้งสองคือจำนวนพินที่ใช้ใน NodeMCU
วัสดุที่ต้องการ:
- NodeMCU ESP12E
- SN74HC595 Shift Register IC
- โมดูล LCD 16x2
- โพเทนชิโอมิเตอร์
- สายชาย - หญิง
- เขียงหั่นขนม
กะลงทะเบียน:
ในระบบดิจิทัล shift register คือการรวมกันของ flip-flop ซึ่งเรียงซ้อนกันเป็นชุดและใช้นาฬิกาเดียวกัน ในแพ็กเกจแบบเรียงซ้อนนี้ data-out ของฟลิปฟล็อปหนึ่งตัวจะทำหน้าที่เป็น data-in สำหรับฟลิปฟล็อปถัดไปซึ่งส่งผลให้วงจรเปลี่ยนไปทีละตำแหน่งที่บิตอาเรย์เก็บไว้
IC ที่เราจะใช้คือ SN74HC595N มันเป็นอนุกรม 8 บิตแบบขนานใน IC shift register แบบขนาน กล่าวง่ายๆคือ IC นี้อนุญาตให้เพิ่มอินพุตหรือเอาต์พุตเพิ่มเติมให้กับไมโครคอนโทรลเลอร์โดยการแปลงข้อมูลระหว่างรูปแบบขนานและอนุกรม ไมโครคอนโทรลเลอร์ของเราใช้ 3 พินของ IC นี้เพื่อส่งข้อมูลแบบอนุกรม จริงๆแล้วเอาต์พุต 8 บิตจะมาที่ 8 พินหลังจากได้รับข้อมูล 8 บิตจากพินอินพุต เรียนรู้เพิ่มเติมเกี่ยวกับการลงทะเบียนกะที่นี่
แผนภาพ PIN และฟังก์ชัน PIN ของ IC SN74HC595N มีดังต่อไปนี้:
คุณพบการเชื่อมต่อของ 74HC595N กับ Arduino และ Raspberry pi ที่นี่
อินเทอร์เฟซ LCD พร้อม ESP12 โดยไม่ต้องใช้ Shift Register:
หากคุณเคยใช้ LCD 16x2 กับบอร์ด Arduino มันจะง่ายมาก คุณต้องเชื่อมต่อพินใน NodeMCU เช่นเดียวกับที่คุณทำกับบอร์ด Arduino
มีหมุด GPIO 16 พินใน NodeMCU และเราต้องการ 6 พินและ gnd, vcc เชื่อมต่อพินตามแผนภาพวงจรที่ระบุด้านล่าง:
เราจะใช้พินข้อมูล 4 พินและ RS, EN ของ LCDซึ่งเชื่อมต่อเป็น:
d7 พินของ LCD == D8 พินของ NodeMCU
d6 พินของ LCD == D7 พินของ NodeMCU
d5 พินของ LCD == D6 พินของ NodeMCU
d4 พินของ LCD == ขา D5 ของ NodeMCU
ขา RS ของ LCD == ขา D2 ของ NodeMCU
En pin ของ LCD == D3 พินของ NodeMCU
คุณสามารถใช้ GPIO ใดก็ได้สำหรับการเชื่อมต่อเหล่านี้
ตอนนี้อัปโหลดรหัสโดยใช้ Arduino IDE ตามที่อธิบายไว้ก่อนหน้านี้ รหัสเหมือนกับบอร์ด Arduino ซึ่งสามารถพบได้ในตัวอย่าง Liquidcrystal โปรแกรมเป็นเรื่องง่ายและเข้าใจได้ง่ายหากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับโปรแกรมตรวจสอบการเชื่อมต่อ LCD ของเรากับโปรแกรม Arduino
รหัส:
# รวม
อย่างที่เราเห็นเราใช้ NodeMCU ไปแล้ว 6 พิน บอร์ดเล็ก ๆ นี้มีพินน้อยอยู่แล้วและเราเหลือเพียงไม่กี่พินสำหรับเชื่อมต่อกับเซ็นเซอร์อื่น ๆ
ดังนั้นเพื่อเอาชนะปัญหานี้เราจะใช้ shift register ICซึ่งจะลดจำนวนที่น้อยที่สุด ของพินที่ใช้กับ NodeMCU
อินเทอร์เฟซ LCD พร้อม ESP12 โดยใช้ Shift Register SN74HC595N:
มี 8 เอาท์พุทและ 3 ขาอินพุตที่มีอยู่ใน shift register IC เราจะใช้ขาเอาท์พุท 6 ขาเพื่อเชื่อมต่อกับ LCD และ 3 ขาอินพุตไปยัง NodeMCU
การเชื่อมต่อของ LCD กับ IC มีให้ดังนี้:
D7 พินของ LCD == พิน 1 ของ IC
ขา D6 ของ LCD == พิน 2 ของ IC
D5 พินของ LCD == พิน 3 ของ IC
ขา D4 ของ LCD == พิน 4 ของ IC
ขา RS ของ LCD == พิน 7 ของ IC
ขาเข้าของ LCD == ขา 15 ของ IC
การเชื่อมต่อ NodeMCU กับ IC:
D6 พินของ NodeMCU == พิน 14 ของ IC, DATA PIN ของ IC
D7 พินของ NodeMCU == พิน 12 ของ IC, LATCH PIN ของ IC
D8 พินของ NodeMCU == พิน 11 ของ IC, CLOCK PIN ของ IC
เชื่อมต่อ PIN 16 และ PIN 10 ของ IC กับ Vcc
เชื่อมต่อ PIN 8 และ PIN 13 ของ IC กับ GND
สร้างวงจรอย่างระมัดระวังตามแผนภาพด้านล่าง:
ตอนนี้ฮาร์ดแวร์ของเราพร้อมที่จะตั้งโปรแกรมแล้ว
ตอนนี้เราต้องการไลบรารี“ LiquidCrystal595 ” ซึ่งสามารถดาวน์โหลดได้จากลิงค์นี้ https://github.com/tehniq3/LiquidCrystal595 โดยทำตามขั้นตอนด้านล่าง:
1. ไปที่เมนู ร่าง ของ Arduino IDE
2. คลิกที่ห้องสมุด
3. ตอนนี้คลิกที่เพิ่ม. zip library เลือกไฟล์ zip ที่คุณดาวน์โหลดจากลิงค์ที่ระบุและเสร็จสิ้น
ตอนนี้อัปโหลดรหัสที่ระบุด้านล่างและคุณจะเห็นข้อความพิมพ์ LCD
รหัส:
# รวม
โค้ดนั้นง่ายมากเพราะเราต้องให้พินข้อมูลสลักพินและพินนาฬิกาเป็นอาร์กิวเมนต์ในLCD LiquidCrystal595 (); และโค้ดส่วนที่เหลือจะเหมือนกับที่เราทำไปก่อนหน้านี้
ด้วยวิธีนี้คุณได้บันทึก NodeMCU เพียง 3 พินโดยใช้ Shift Register
ตรวจสอบการเชื่อมต่อ LCD 16x2 กับไมโครคอนโทรลเลอร์อื่น ๆ:
- การเชื่อมต่อ LCD กับไมโครคอนโทรลเลอร์ PIC
- 16x2 LCD เชื่อมต่อกับ Raspberry Pi โดยใช้ Python
- การเชื่อมต่อ LCD กับไมโครคอนโทรลเลอร์ ATmega32
- การเชื่อมต่อ LCD กับไมโครคอนโทรลเลอร์ 8051