ปราบเซียน! วิธีใช้งานหน้าจอ LCD 7-Segment จิ๋ว ด้วยไมโครคอนโทรลเลอร์

Tiny LCD 7-Segment Display with ATtiny
หน้าจอ LCD แบบ 7-Segment 3 หลักสุดคิวต์ ที่เห็นตัวเล็กๆ แบบนี้ แต่สเปกการขับไฟปราบเซียนสุดๆ!

Wassup ชาว Maker และสายอิเล็กทรอนิกส์! 🔌 ถ้าพูดถึงหน้าจอตัวเลข (7-Segment) ที่เรามักจะเอามาใช้ในโปรเจกต์บ่อยๆ ทุกคนคงนึกถึงหน้าจอ LED สีแดงๆ ที่ใช้งานโคตรจะง่ายใช่ไหมครับ? แค่จ่ายไฟเข้า (Common Anode / Cathode) ตัวเลขก็ติดแล้ว!

แต่เดี๋ยวก่อน! ในตลาดมันมีไอเทมลับที่เรียกว่า หน้าจอ LCD 7-Segment (ตัวเลข 3 หลัก แพ็กเกจ DIP 10 ขา) หน้าตามันดูมินิมอลและประหยัดไฟสุดๆ แต่มันกลับไม่ค่อยฮิต เพราะอะไรน่ะหรอ? ก็เพราะมันใช้งานโคตรยากไงล่ะ! โชคดีที่แฮกเกอร์นามว่า [Nagy Krisztián] ได้ออกมาแฉทริคการขับหน้าจอนี้ให้พวกเราดูกันแบบหมดเปลือกครับ!

ความปั่นของจอ LCD จิ๋ว: ขั้วไฟสลับไปมา! 🤯

การจะทำให้จอ LCD แสดงตัวเลขได้ ไม่ใช่แค่การจ่ายไฟ 3V หรือ 5V ค้างไว้เหมือนไฟ LED นะครับ! ลองมาดูความปั่นของมันกัน:

  • Matrix Mapping ชวนงง: ขาไฟแต่ละเส้นจะควบคุมหลายส่วน (Segments) ผสมกัน เช่น จะให้ไฟตำแหน่ง "2A" ติด ต้องจ่ายไฟให้ขาพิน 3 และขา COM4 พร้อมกัน
  • ต้องสลับขั้วไฟตลอดเวลา (Alternating Polarity): อันนี้คือจุดพีค! หน้าจอ LCD แบบนี้คุณต้องจ่ายไฟสลับขั้วบวก-ลบ (Swap polarity) ไปมาในทุกๆ ไซเคิล ถ้าจ่ายไฟแช่ค้างไว้ จอจะพังครับ!
  • ไฟ 3 ระดับ (High, Low, Half-voltage): ขา COM ที่ไม่ได้ใช้งานอยู่ จะปล่อยลอยๆ หรือดึงลงกราว (GND) ไม่ได้นะ! คุณต้องจ่ายไฟให้มันที่ "ครึ่งหนึ่งของแรงดันหลัก (Half-voltage)" เช่น ถ้าใช้ไฟ 3V ก็ต้องจ่ายให้มัน 1.5V โว๊ะ อะไรจะเยอะขนาดนี้!

⚠️ คำเตือนแรก: ขามันเสียบ Breadboard ไม่ลง!

อีกหนึ่งความปวดหัวคือ ระยะห่างระหว่างขาของจอตัวนี้มันไม่ตรงกับสเกล 0.1 นิ้วมาตรฐานของ Breadboard ครับ! แต่ไม่ต้องห่วง ด้วยความที่ขามันเล็กและบาง เราสามารถใช้ "กำลังภายใน" ดัดขามันยัดลงรูไปดื้อๆ ได้เลย ขามันไม่หักง่ายๆ หรอก!

ทางออกของคนจริง: ใช้ ATtiny84 + วงจรแบ่งแรงดัน 🧠

[Nagy] แกใช้วิธีที่โคตรจะฉลาดในการแก้ปัญหานี้ครับ เขาใช้ไมโครคอนโทรลเลอร์ตัวจิ๋วอย่าง ATtiny84 ร่วมกับตัวต้านทาน (Resistors) สองตัวเพื่อทำวงจรแบ่งแรงดัน (Voltage divider)

ความลับคือการใช้ประโยชน์จากสถานะขาพิน (Pin states) ของไมโครคอนโทรลเลอร์ ซึ่งปกติมันมี 3 สถานะ คือ HIGH, LOW และ High-impedance (ตอนตั้งเป็น Input)

  • เมื่อสั่งขาพินเป็น HIGH -> จอ LCD จะได้รับไฟ ~3V
  • เมื่อสั่งขาพินเป็น LOW -> จอ LCD จะได้รับไฟ 0V
  • เมื่อสั่งขาพินเป็น INPUT (High-impedance) -> ไฟจากวงจรแบ่งแรงดันจะวิ่งเข้าจอ LCD ทำให้มันได้รับไฟ ~1.5V (Half-voltage) พอดีเป๊ะ!!

จากนั้นก็เขียนโปรแกรมให้ชิปปั่นไซเคิลสลับไฟที่ความเร็ว 60 Hz เพื่อไม่ให้จอเกิดอาการกระพริบ (Flicker-free) แค่นี้ก็เป็นอันเสร็จพิธี!

💡 ป้ายยาไอเทมเด็ด: โปรเจกต์นี้สอนให้เรารู้ว่า ถ้ารู้จักพลิกแพลง ฮาร์ดแวร์แปลกๆ ก็กลายเป็นของเจ๋งๆ ได้! ถ้าจะทำโปรเจกต์มินิมอลแบบนี้ การสร้างเคสด้วย 3D Print เล็กๆ ครอบไว้จะทำให้งานดูเนียนขึ้นเป็นกองครับ

หากเพื่อนๆ กำลังมองหา บอร์ดพัฒนาขนาดเล็ก, หน้าจอแสดงผล, ตัวต้านทาน (Resistors) หรือต้องการ บริการรับปริ้นท์เคส 3D (3D Printing Service) แวะมาจัดที่ Globalbyte Shop ได้เลยครับ! ทัก LINE OA มาปรึกษาและประเมินราคาฟรีได้เลย!

🔗 ข้อมูลอ้างอิงและจุดวาร์ป (อ่านทฤษฎีเต็มๆ):

ใครที่เป็นสายอิเล็กทรอนิกส์และอยากศึกษาเรื่องการขับไฟจอ LCD แบบลึกๆ ตามไปอ่านบล็อกของ [Nagy] ได้เลยครับ:

*Disclaimer (ข้อจำกัดความรับผิดชอบ): เนื้อหาบทความนี้ถูกเรียบเรียงและสรุปมาจากบล็อกของนักพัฒนาฮาร์ดแวร์ในต่างประเทศ การขับหน้าจอ LCD โดยใช้สัญญาณจากไมโครคอนโทรลเลอร์โดยตรงจำเป็นต้องมีการคำนวณค่าตัวต้านทานที่ถูกต้องเพื่อแบ่งแรงดันไฟ (Voltage divider) หากคำนวณผิดพลาดอาจทำให้จอไหม้หรือทำงานผิดปกติได้ ควรศึกษา วงจรต้นฉบับ ให้เข้าใจก่อนลงมือต่อจริงครับ!

Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี