อุปกรณ์ทางอิเล็กทรอนิกส์ แทบทุกชนิดต้องมีการแสดงผลลัพธ์ เพื่อติดต่อสื่อสารกับผู้ใช้งาน เพราะเราจะได้รู้สถานะการทำงานว่าถึงไหนแล้ว ที่ง่ายที่สุดคือ 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 แบบ Common Anode
- Arduino Board ( บทความนี้ใช้ UNO R3 )
- ตัวต้านทาน 270 โอห์ม
- Jump Wire
- Breadboard
ไฟล์ที่เกี่ยวข้อง:
- Souce Code - Arduino_Drive_7Segment_V1
การไล่ขาของ 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. เมื่อทำตามทุกขั้นตอนอย่างถูกต้อง ก็จะได้ผลลัพธ์ ดังรูปครับครับ
4. เมื่อทำตามทุกขั้นตอนอย่างถูกต้อง ก็จะได้ผลลัพธ์ ดังรูปครับครับ
โดยโปรแกรมที่เขียนขึ้นนี้ จะไปขับ 7 Segment โดยเริ่มแสดงผลไล่ตั้งแต่เลข 9, 8, 7 ... 0 แต่ละช่วงจะหน่วงเวลา 1 วินาที และเมื่อถึง 0 จะหน่วงเวลา 4 วินาที่ครับ