วัตถุประสงค์
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 ชุด
ขั้นตอนการทดลอง
(สามารถศึกษา 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 ค้างไว้ แต่ถ้าไม่กด จะต้องไม่แสดงผลตัวเลขใดๆ (ไม่ติด)
ผลจากโค้ดตัวอย่าง
แบบที่ 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
วิดีโอผลการทดลอง
คำถามท้ายการทดลอง
ทรานซิสเตอร์ในวงจรนี้มีไว้สำหรับควบคุมการติด/ดับของ 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.) มจพ.
ไม่มีความคิดเห็น:
แสดงความคิดเห็น