ชื่อโปรเจกต์: ทำ Intro เปิดตัวเท่ๆ บนหน้าจอ LCD
สร้างแบรนด์ให้งานเราหน่อย: มาปั้น Intro เฟี้ยวๆ ลงจอ LCD กัน
การสร้างลำดับ "Intro" แบบมืออาชีพให้โปรเจกต์ Hardware ของเราเนี่ย เป็นวิธีที่เจ๋งมากในการอัปเกรดงานให้ดูเนี้ยบและมีสไตล์ งานนี้เราจะมาโฟกัสที่การใช้หน้าจอ 16x2 Hitachi HD44780-compatible LCD มาตรฐาน เพื่อโชว์ชื่อกลุ่มแบบ Dynamic โดยใช้ Library อย่าง LiquidCrystal มาช่วยจัดการเรื่องการแสดงผลข้อความบนบอร์ด Arduino Uno ของพวกเรา จัดไปวัยรุ่น!
การต่อแบบ Parallel: เสียบสายกันให้ตาแตกแบบ Pin-ต่อ-Pin
หน้าจอ LCD แบบ Parallel ตัวนี้ มันไม่ได้ใช้ง่ายเหมือนพวก I2C นะน้อง เราต้องเดินสาย Data Bus แบบ 4-bit กันให้เป๊ะถึงจะทำงานได้:
- Control Pins: ขา RS (Register Select) และ EN (Enable) จะเป็นตัวบอก LCD ว่าตอนนี้กำลังรับคำสั่ง (เช่น สั่งล้างหน้าจอ) หรือกำลังรับตัวอักษรไปพิมพ์
- Data Bus: เราจะใช้แค่ขา DB4 ถึง DB7 พอ เพื่อช่วยประหยัด Pins บน Arduino แต่ยังได้ Refresh Rate ที่เร็วพอจะทำตัวหนังสือวิ่งได้เนียนๆ
- สูตรโกง Contrast: ปกติใน Tutorial ทั่วไปเขาจะให้ใช้ Potentiometer 10k ใช่ปะ? แต่พี่มีสูตรประหยัดและจบงานไวมาฝาก คือใช้ Resistor 1k Ohm ต่อตายตัวระหว่างขา V0 (Contrast) ลง Ground (GND) ไปเลย แค่นี้ก็ได้ความสว่างที่อ่านง่ายชัดถ้อยชัดคำสำหรับงานในร่มแล้ว ไม่ต้องมานั่งหมุนให้เสียเวลา
ลอจิก LiquidCrystal กับจังหวะการแสดงผล
ส่วนของ Software เราจะเน้นสร้าง Visual Effect แบบ "คูลๆ" ผ่านการตั้ง Delay และการวางตำแหน่งตัวอักษร:
- จัดวาง Cursor: ใช้คำสั่ง
[lcd](https://s.shopee.co.th/6AfsSPcAnb).setCursor(col, row)เพื่อวางตำแหน่งชื่อเพื่อนในกลุ่มหรือชื่อทีมให้เป๊ะตามจุดที่ต้องการ - วงจรการ Clear/Refresh: การใช้
[lcd](https://s.shopee.co.th/6AfsSPcAnb).clear()ให้ถูกจังหวะจะช่วยไม่ให้เกิดอาการ "Ghosting" หรือตัวหนังสือซ้อนกันจนเละเทะ เพื่อให้มั่นใจว่าทุกชื่อที่แสดงออกมาจะดูสะอาดตาบนผืนผ้าใบดิจิทัลใบใหม่นี้ - ตกแต่งตามใจชอบ: โค้ดตัวนี้เป็นเหมือนแม่แบบนะน้อง ใครเก๋าจะไปลองทำ Custom Character (สร้างโลโก้หรือไอคอนเล็กๆ เอง) ที่เก็บไว้ใน CGRAM ของ LCD ก็จัดไปเลย หล่อเท่แน่นอน
การเอาไปใช้จริงและสายสัมพันธ์ในกลุ่ม
โปรเจกต์นี้ตั้งใจออกแบบมาเพื่อใช้ในกลุ่ม Discord หรือโปรเจกต์ศิลปะที่ทำร่วมกัน เหมือนเป็นการลงลายเซ็นดิจิทัล "Signing-in" ของเหล่านักพัฒนานั่นแหละ จำไว้นะน้อง แม้จะเป็นหน้าจอแสดงผลข้อความธรรมดาๆ แต่มันช่วยสร้างความประทับใจแรกพบ (First Impression) ให้กับ Prototype ของเราได้มหาศาลเลยล่ะ
โปรเจกต์นี้เหมาะสำหรับคนพอมีพื้นฐานมาบ้าง (Level Intermediates) ที่พี่ตัดสินใจทำขึ้นมาก็เพราะกลุ่มพี่อยากได้ Intro เท่ๆ เวลาเปิดเครื่องโชว์หน้าจอ [LCD](https://s.shopee.co.th/6AfsSPcAnb) ให้มันดูเฟี้ยวๆ หน่อย ของที่ต้องเตรียมก็มี:
สายไฟ (Wires) ประมาณ 12 เส้น, Resistor 1k Ohm 1 ตัว (น้ำตาล[1], ดำ[0], แดง[ศูนย์ 2 ตัว]), จอ LCD สีฟ้าแบบ Parallel และบอร์ด [Arduino](https://s.shopee.co.th/7fUgFAWSki) UNO
ต่อขา LCD เรียงตามนี้เลยนะ: RS, Enable, DB4, DB5, DB6, DB7 เข้ากับ Digital Ports ของ Arduino จากนั้นต่อไฟ 5V เข้าช่อง VCC และ GND เข้า Vss แต่ช้าก่อน! ให้ต่อ GND อีกเส้นผ่าน Resistor 1k เข้าขา V0 ด้วยนะน้อง (จำไว้ ห้ามช็อตนะตัวนี้!) ส่วนไฟส่องหลังจอ (Backlight) ก็ต่อ LCD+ เข้า 5V และ LCD- เข้า GND ซะ พอต่อครบแล้วก็จัดการลงโปรแกรมที่พี่เตรียมไว้ให้ได้เลย ทุกอย่างต้องผ่านฉลุย สู้งานนะน้อง!