วันพุธที่ 3 กันยายน พ.ศ. 2557

การทดลองที่ 3.2 การใช้อุปกรณ์ 7-Segment Display เพื่อแสดงตัวเลข BCD

การทดลองที่ 3.2 การใช้อุปกรณ์ 7-Segment Display เพื่อแสดงตัวเลข BCD

วัตถุประสงค์
1. ฝึกต่อวงจรโดยใช้อุปกรณ์ 7-Segment Display บนเบรดบอร์ด และใช้งานร่วมกับบอร์ด Arduino
2. เขียนโปรแกรม Arduino เพื่อแสดงตัวเลข โดยใช้อุปกรณ์ 7-Segment Display

รายการอุปกรณ์
1. แผงต่อวงจร (เบรดบอร์ด)                   1 อัน
2. บอร์ด Arduino (ใช้แรงดัน +5V)         1 บอร์ด
3. อุปกรณ์ 7-Segment Display             1 ตัว  (สามารถศึกษา Data Sheet ได้ที่นี่)
4. ปุ่มกดแบบสี่ขา                                    1 ตัว
5. ตัวต้านทาน 330Ω หรือ 470Ω             7 ตัว
6. ตัวต้านทาน 1kΩ                                1 ตัว
7. ตัวต้านทาน 10kΩ                              1 ตัว
8. ทรานซิสเตอร์ NPN เบอร์ PN2222A  1 ตัว (สามารถศึกษา Data Sheet ได้ที่นี่)
9. สายไฟสําหรับต่อวงจร                         1 ชุด

ขั้นตอนการทดลอง
1. ศึกษาการใช้งาน และตําแหนง่ของขาต่างๆ ของอุปกรณ์ 7-Segment Display (ใช้แบบ Common- Cathode) จากเอกสาร (ดาต้าชีทของผู้ผลิต) วาดรูปอุปกรณ์ ระบุขาต่างๆ และการกําหนดสถานะ LOW หรือ HIGH ที่ขาเหล่านั้น เพื่อให้สามารถแสดงตัวเลขในแต่ละกรณีได้ระหว่าง 0 ถึง 9
(สามารถศึกษา Data Sheet ได้ที่นี่)

2. ต่อตัวต้านทาน 330Ω หรือ 470Ω จํานวน 7 ตัว แบบอนุกรมกับขา a, b, c, d, e, f, g แต่ละขาของ อุปกรณ์ 7-Segment Display ตามผังวงจรในรูปที่ 3.2.1

3. ต่อขา CC (Common Cathode) ไปยัง Gnd ของวงจร

4. เชื่อมต่อขา D3, D4, D5, D6, D7, D8, D9 ของบอร์ด Arduino ไปยังขา a, b, c, d, e, f, g ของ อุปกรณ์ 7-Segment Display (ผ่านตัวต้านทาน 330Ω หรือ 470Ω ที่ต่ออนุกรมอยู่สําหรับแต่ละขา)

5. เขียนโค้ดตามตัวอย่างโดยใช้ Arduino IDE แล้วทําขั้นตอนคอมไพล์และอัพโหลดโปรแกรมไปยังบอร์ด Arduino

6. ตรวจสอบความถูกต้องของวงจรบนเบรดบอร์ดก่อน เมื่อถูกต้องแล้ว จึงเชื่อมต่อ +5V และ Gnd  จากบอร์ด Arduino ไปยังเบรดบอร์ด เพื่อใช้เป็นแรงดันไฟเลี้ยง (VCC และ GND) และไม่ต้องใช้ แหล่งจ่ายควบคุมแรงดันจากภายนอก ให้ระวังการต่อสลับขั้วสายไฟ และระวังการต่อถึงกันทางไฟฟ้า ของสายไฟทั้งสองเส้น

7. แก้ไขโค้ดสําหรับ Arduino ให้สามารถแสดงตัวเลขตั้งแต่ 0 ถึง 9 แล้ววนซ้ํา โดยเว้นระยะเวลาในการ เปลี่ยนเป็นตัวเลขถัดไปประมาณ 1 วินาที

8. แก้ไขวงจร โดยต่อวงจรตามผังวงจรในรูปที่ 3.2.3 ให้สังเกตว่า มีการต่อวงจรปุ่มกดแบบ Pull-up เพื่อใช้เป็นอินพุต-ดิจิทัลให้บอร์ด Arduino และมีการต่อวงจรทรานซิสเตอร์แบบ NPN เพื่อใช้ควบคุม การไหลของกระแสจากขา CC ของ 7-Segment Display ผ่านตัวทรานซิสเตอร์ NPN จากขา Collector (C) ไปยังขา Emitter (E) และ GND ของวงจรตามลําดับ

9. แก้ไขโค้ดสําหรับ Arduino เพื่อให้แสดงตัวเลขตั้งแต่ 0 ถึง 9 แล้ววนซ้ํา โดยเว้นระยะเวลาในการ เปลี่ยนเป็นตัวเลขถัดไปประมาณ 1 วินาที แต่จะแสดงผลกต็่อเมื่อกดปุ่ม PB1 ค้างไว้ แต่ถ้าไม่กด จะต้องไม่แสดงผลตัวเลขใดๆ (ไม่ติด)

ผลการทดลอง
ผังวงจรสำหรับเชื่อมต่อ Arduino
ภาพอ้างอิงจากการทดลองที่ 3.2 การใช้อุปกรณ์ 7-Segment Display เพื่อแสดงตัวเลข BCD 
โดย ดร.เรวัต ศิริโภคาภิรมย์ ห้องปฏิบัติการระบบสมองกลฝังตัว(ESL.) มจพ.

ต่อวงจรตามผังวงจร
โค้ดตัวอย่างสำหรับ Arduino Sketch


ผลจากโค้ดตัวอย่าง

แบบที่ 1 7 Segment แสดงตัวเลข 0-9 วนไปเรื่อยๆ
โค้ดสำหรับ Arduino Sketch


วิดีโอผลการทดลอง


แบบที่ 2 7 Segment แสดงตัวเลขวน 0-9 เฉพาะเมื่อกดสวิตซ์
ผังวงจรสำหรับเชื่อมต่อ Arduino เพิ่มวงจรปุ่มกดแบบ Pull Up และทรานซิสเตอร์แบบ NPN
ภาพอ้างอิงจากการทดลองที่ 3.2 การใช้อุปกรณ์ 7-Segment Display เพื่อแสดงตัวเลข BCD 
โดย ดร.เรวัต ศิริโภคาภิรมย์ ห้องปฏิบัติการระบบสมองกลฝังตัว(ESL.) มจพ.

ต่อวงจรตามผังวงจร

โค้ดสำหรับ Arduino Sketch


วิดีโอผลการทดลอง

คำถามท้ายการทดลอง
1. วงจรทรานซิสเตอร์แบบ NPN ในวงจรนี้ใช้เพื่อวัตถุประสงค์ใด จงอธิบายหลักการทํางาน
ทรานซิสเตอร์ในวงจรนี้มีไว้สำหรับควบคุมการติด/ดับของ 7Segment โดยเมื่อกดปุ่มจะให้แรงดันไหลไปที่ขา B ของทรานซิสเตอร์ด้วย จะทำให้กระแสไหลจาก Common Cathode ของ 7 Segment ไปที่ขา C และไปขา E ของทรานซิสเตอร์เพื่อลง GND 7 Segment จึงสามารถติดได้ แต่เมื่อไม่กดปุ่มจะไม่ให้แรงดันไหลไปที่ขา B ของทรานซิสเตอร์ ทำให้กระแสไม่ไหลจากขา Common Cathode ของ 7 Segment ลง GND ได้ 7 Segment จึงไม่ติด

2. ถ้าจะใช้ 7-Segment Display สองหลักพร้อมกัน เช่น เพื่อแสดงผลเป็นตัวเลข “00” ถึง “99”  โดยเพิ่มขึ้นทีละหนึ่ง ทุกๆ 1 วินาที (1000 มิลลิวินาที) แล้ววนกลับไปท่ี “00” ใหม่ได้ จะต้อง ออกแบบวงจร และเขียนโค้ด Arduino ควบคุมอย่างไร
รูปออกแบบวงจรโดยโปรแกรม Frizing
ออกแบบวงจร Arduino Schematic View

ออกแบบวงจร Arduino Breadboard View 

โค้ดสำหรับ Arduino Sketch


อ้างอิง: เอกสารการทดลองที่ 3.2 การใช้อุปกรณ์ 7-Segment Display เพื่อแสดงตัวเลข BCD 
โดย ดร.เรวัต ศิริโภคาภิรมย์ ห้องปฏิบัติการระบบสมองกลฝังตัว(ESL.) มจพ.

ไม่มีความคิดเห็น:

แสดงความคิดเห็น