8/12/2558

Ezy Arduino Projects 12: แสดงผลด้วย 7 Segment Part I

อุปกรณ์ทางอิเล็กทรอนิกส์ แทบทุกชนิดต้องมีการแสดงผลลัพธ์ เพื่อติดต่อสื่อสารกับผู้ใช้งาน เพราะเราจะได้รู้สถานะการทำงานว่าถึงไหนแล้ว ที่ง่ายที่สุดคือ LED เช่น การชาร์จแบตเตอรี ไม่ว่าจะเป็นมือถือ หรือโน๊ตบุ๊ค เป็นต้น ต่างก็ใช้ LED ในการแสดงผล แต่ LED จะมีลอจิก แค่ Yes or No หรือ ON/OFF เท่านั้น ทำให้ไม่เพียงพอต่อการสื่อสารกับผู้ใช้งาน เช่น ต้องการแสดงผลการวัดอุณภูมิ, ความชื้น, ความดัน เป็นต้น และอุปกรณ์ที่จะมาช่วยเราแก้ปัญหานี้ก็คือ 7 Segment ครับ สามารถแสดงผลได้ทั้งตัวเลขและตัวอักษร ราคาถูกหาซื้อง่ายครับ

ในบทความนี้เราจะพาท่านใช้ Arduino Board ขับเจ้า 7 Segment แบบ Common Anode กันครับ ซึ่งต้องคิดกลับด้านกันเจ้า 7 Segment แบบ Common Cathode ทุกๆ อย่างเลยครับ เช่น จาก ขา 8 กะ 3 ต้องต่อกราวน์ ก็ต้องมาต่อแรงดัน 5V หรืออยากให้แสดงผลที่ Segment ไหนจากที่ต้องส่ง Logic 1 หรือ HIGH ก็ต้องคิดกลับด้านมาเป็น LOW แทน ดูแล้วท้ายทายดีไหมครับ เรามาเริ่มกันเลยนะครับ

อุปกรณ์ที่ต้องใช้:
ไฟล์ที่เกี่ยวข้อง: 

การไล่ขาของ 7 Segment

การต่อขาแต่ะละขา ระหว่าง Arduino กับ 7 Segment

  • ขา 2 >> 7 (A) 
  • ขา 3 >> 6 (B)
  • ขา 4 >> 4 (C)
  • ขา 5 >> 2 (D)
  • ขา 6 >> 1 (E)
  • ขา 7 >> 6 (F)
  • ขา 8 >> 10 (G)
  • ขา 9 >> 5 (DP) แสดง จุด 
  • 5V >> 3, 8 ( ถ้าเป็น Common cathode จะต่อลงกราวด์ )
1. เมื่อเตรียมอุปกรณ์ เตรียม Source Code เรียบร้อยแล้ว ก็ต่อสายต่าง ๆ ตามรูปเลยนะครับ


2. เมื่อต่อสายสายตามลำดับเสร็จแล้ว ท่านก็จะได้วงจรขับ 7 Segment แบบ Common anode ดังรูป


3. พิมพ์ Source Code ตัวอย่าง แล้วอัพโหลดเข้า Arduino Board


4. เมื่อทำตามทุกขั้นตอนอย่างถูกต้อง ก็จะได้ผลลัพธ์ ดังรูปครับครับ


โดยโปรแกรมที่เขียนขึ้นนี้ จะไปขับ 7 Segment โดยเริ่มแสดงผลไล่ตั้งแต่เลข 9, 8, 7 ... 0 แต่ละช่วงจะหน่วงเวลา 1 วินาที และเมื่อถึง 0 จะหน่วงเวลา 4 วินาที่ครับ