วันพฤหัสบดีที่ 25 กันยายน พ.ศ. 2557

การทดลองที่ 4.7 การสร้างวงจรสร้างและควบคุมแรงไฟฟ้ากระแสตรงแบบปรับค่าได้

วัตถุประสงค์

- ฝึกออกแบบและต่อวงจรสร้างและควบคุมแรงดันไฟฟ้ากระแสตรงแบบปรับค่าได้ โดยใช้ไอซี
LM317T เพื่อใช้เป็นแหล่งจ่ายให้วงจรอิเล็กทรอนิกส์

รายการอุปกรณ์

- แผงต่อวงจร (เบรดบอร์ด) 1 อัน
- ไอซี LM317T   1 ตัว
- ตัวเก็บประจุ 0.1uF และ 10uF อย่างละ   1 ตัว
- ตัวต้านทานค่าคงที่ เลือกค่าในช่วง 220Ω ถึง 1kΩ   1 ตัว
- ตัวต้านทานปรับค่าได้แบบสามขา 4.7kΩ หรือ 10kΩ    1 ตัว
- ไดโอด 1N4001 อย่างน้อย   1 ตัว
- สายไฟสำหรับต่อวงจร   1 ชุด
- แหล่งจ่ายแรงดันควบคุม   1 เครื่อง
- มัลติมิเตอร์   1 เครื่อง

ขั้นตอนการทดลอง

1. ออกแบบวงจร วาดผังวงจร และต่อวงจรบนเบรดบอร์ด เพื่อสร้างวงจรควบคุมแรงดันแบบปรับค่าได้
โดยใช้ไอซี LM317T และอุปกรณ์ตามรายการที่ได้ระบุไว้ (ศึกษาตัวอย่างวงจรได้จากดาต้าชีท
LM317T และจากอินเทอร์เน็ต)
ที่มา  :   http://vakits.com/lm317t-adjustable-voltage-regulator

2. ใช้แรงดันจากแหล่งจ่ายภายนอก โดยป้อนแรงดัน +9V เป็นแรงดันอินพุต และปรับค่าตัวต้านทาน
ปรับค่าได้ในวงจร ให้ได้แรงดันเอาต์พุต +5V และ +3.3V ตามลำดับ ตรวจสอบและวัดระดับแรงดัน
เอาต์พุตด้วยมัลติมิเตอร์

ผลการทดลอง


ภาพวงจร แบบ Breadboard View 




ค่า แรงดัน Vout  =  3.311 V  ค่าความต้านทาน  =  973 



ค่า แรงดัน Vout  =  5.048  V     ค่าความต้านทาน  =  522.7 



วันศุกร์ที่ 19 กันยายน พ.ศ. 2557

การทดลองที่ 4.3 การต่อวงจรตัวต้านทานไวแสงและตรวจวัดการเปลี่ยนแปลงของปริมาณแสง

วัตถุประสงค์

1. ฝึกต่อวงจรโดยตัวต้านทานไวแสง (LDR) ร่วมกับไอซีเปรียบเทียบแรงดัน เบอร์ LM393N และใช้เป็น
อุปกรณ์ตรวจจับการเปลี่ยนแปลงปริมาณแสง


รายการอุปกรณ์

- แผงต่อวงจร (เบรดบอร์ด)        1 อัน
- ไอซีเปรียบเทียบแรงดัน เบอร์ LM393N              1 ตัว
- ตัวต้านทานปรับค่าได้แบบสามขา ขนาด 10kΩ หรือ 20kΩ            1 ตัว
- ตัวต้านทานไวแสง               1 ตัว
- ตัวต้านทาน 330Ω หรือ 470Ω               1 ตัว
- ตัวต้านทาน 4.7kΩ                 1 ตัว
- ตัวต้านทาน 10kΩ                   1 ตัว
- ทรานซิสเตอร์ NPN เบอร์ PN2222A                    1 ตัว
- สายไฟสำหรับต่อวงจร                     1 ชุด
- มัลติมิเตอร์                    1 เครื่อง

ขั้นตอนการทดลอง

1. ใช้มัลติมิเตอร์วัดค่าความต้านทานของตัวต้านทานไวแสง (LDR) ในสภาวะแสงที่แตกต่างกันในสาม
ระดับ (ปริมาณแสงน้อย ปานกลาง และมาก) แล้วจดบันทึกค่าที่วัดได้ สังเกตการเปลี่ยนแปลงของค่า
ความต้านทานเมื่อปริมาณแสงเปลี่ยน
2. ต่อวงจรบนเบรดบอร์ด ตามรูปที่ 4.3.1 แล้ววัดแรงดัน Vx ในสภาวะแสงที่แตกต่างกัน (ปริมาณแสง
น้อย ปานกลาง มาก) แล้วจดบันทึกค่าที่วัดได้ สังเกตการเปลี่ยนแปลงของระดับแรงดันเมื่อปริมาณ
แสงเปลี่ยน
ที่มา : เอกสารประกอบการเรียน Logic Design of Digital System ,ดร. เรวัต  ศิริโภคาภิรมย์

3. ต่อวงจรบนเบรดบอร์ด ตามรูปที่ 4.3.2 (แบบที่ 1) โดยใช้แรงดันไฟเลี้ยง VCC=+5V และ Gnd
จากแหล่งจ่ายแรงดันควบคุม ทดลองหมุนปรับค่าที่ตัวต้านทานปรับค่าได้ และวัดแรงดัน Vref ที่ได้
สังเกตสถานะติด/ดับของ LED
ที่มา : เอกสารประกอบการเรียน Logic Design of Digital System ,ดร. เรวัต  ศิริโภคาภิรมย์
4. ต่อวงจรบนเบรดบอร์ด ตามรูปที่ 4.3.3 (แบบที่ 2) โดยใช้แรงดันไฟเลี้ยง VCC=+5V และ Gnd
จากแหล่งจ่ายแรงดันควบคุม ทดลองหมุนปรับค่าที่ตัวต้านทานปรับค่าได้ และวัดแรงดัน Vref ที่ได้
สังเกตสถานะติด/ดับของ LED
ที่มา : เอกสารประกอบการเรียน Logic Design of Digital System ,ดร. เรวัต  ศิริโภคาภิรมย์
5. ต่อวงจรบนเบรดบอร์ด ตามรูปที่ 4.3.4 (แบบที่ 3) โดยใช้แรงดันไฟเลี้ยง +5V +9V และ Gnd
จากแหล่งจ่ายแรงดันควบคุม ทดลองหมุนปรับค่าที่ตัวต้านทานปรับค่าได้ เพื่อให้ LED “สว่าง”
เมื่อปริมาณแสงน้อย และให้ LED “ไม่ติด” เมื่อปริมาณแสงมาก
ที่มา : เอกสารประกอบการเรียน Logic Design of Digital System ,ดร. เรวัต  ศิริโภคาภิรมย์
6. เขียนรายงานการทดลอง ซึ่งประกอบด้วยคำอธิบายการทดลองตามขั้นตอน ผังวงจรที่ถูกต้อง
ครบถ้วนตามหลักไฟฟ้า (ให้วาดด้วยโปรแกรม Cadsoft Eagle) รูปถ่ายของการต่อวงจรบน
เบรดบอร์ด และตอบคำถามท้ายการทดลอง


ผลการทดลอง

แสงปานกลาง มีค่าความต้านทาน 1.955 k

แสงน้อย มีค่าความต้านทาน 36.9 k
แสงมาก มีค่าความต้านทาน 429.5 k




















สรุป  ปริมาณแสงที่รับของ LDR มีผลคือ เมื่อได้รับแสงมากจะให้ความต้านทานมาก แต่ถ้าได้รับแสงน้อย ค่าความต้านทานก็จะน้อยลง

วงจร 4.3.1

แสงปานกลาง    Vref =  4.141 V

แสงน้อย   Vref =  1.155 V
แสงมาก    Vref =  4.912 V
 สรุป  ปริมาณแสงที่รับของ LDR มีผลคือ เมื่อได้รับแสงมากจะทำให้แรงดันมาก แต่ถ้าได้รับแสงน้อย แรงดันก็จะน้อยลง
วงจร 4.3.2 แบบที่ 1























วงจร 4.3.3 แบบที่  2









วงจร 4.3.4







คำถามท้ายการทดลอง

1. ค่าความต้านทานของ LDR จะเปลี่ยนแปลงอย่างไร เมื่อปริมาณแสงเปลี่ยน และค่าความ
ต้านทานของ LDR ที่ได้จากการทดลอง จะอยู่ในช่วงใด
- ค่าความต้านทานของ LDR จะเพิ่มขึ้นเมื่อปริมาณแสงมากขึ้น จากการทดลอง คือช่วง 1.955 kΩ -492.5 k
2. สำหรับวงจรแบบที่ 1 และ 2 แรงดัน Vx จะเปลี่ยนแปลงอย่างไร เมื่อปริมาณแสงเปลี่ยน
(เปลี่ยนจากปริมาณแสงน้อยเป็นปริมาณแสงมาก)
 งจรแบบที่ 1 เมื่อ LDR รับแสงมากขึ้น  >> จะทำให้ค่า Vx มากขึ้น
    วงจรแบบที่ 2 เมื่อ LDR รับแสงมากขึ้น  >> จะทำให้ค่า Vx น้อยลง
3. สำหรับวงจรแบบที่ 3 การปรับค่าแรงดัน Vref โดยใช้ตัวต้านทานปรับค่าได้ในวงจร มีผลอย่างไร
ต่อการติดหรือดับของ LED
-  เมื่อปรับค่า Vref  ให้น้อยลงจะทำให้ LED ติด

วันศุกร์ที่ 12 กันยายน พ.ศ. 2557

การทดลองที่ 4.2 การต่อวงจรสําหรับเปรียบเทียบช่วงแรงดัน

วัตถุประสงค์

1ึ. ฝึกต่อวงจรโดยใช้ตัวต้านทานปรับค่าได้และไอซี LM393N 
2. ต่อวงจรโดยใช้ไอซี LM393N ที่มีตัวเปรียบเทียบแรงดันสองตัว เพื่อเปรียบเทียบแรงดันอินพุตกับ
แรงดันอ้างอิงโดยแบ่งเป็นสองระดับ

รายการอุปกรณ์

- แผงต่อวงจร (เบรดบอร์ด)     1 อัน 
- ไอซีเปรียบเทียบแรงดัน เบอร์ LM393N      1 ตัว 
- ตัวต้านทานปรับค่าได้แบบ 3 ขา ขนาด 10kΩ หรือ 20kΩ     1 ตัว 
- ตัวต้านทาน 10kΩ      4 ตัว 
- ตัวต้านทาน 330Ω หรือ 470Ω       1 ตัว 
- ไดโอดเปล่งแสง (LED) ขนาด 5 มม.      1 ตัว 
- สายไฟสําหรับต่อวงจร       1 ชุด 
- มัลติมิเตอร์        1 เครื่อง 
- แหล่งจ่ายแรงดันควบคุม        1 เครื่อง 
- เครื่องกําเนิดสัญญาณแบบดิจิทัล        1 เครื่อง 
- ออสซิลโลสโคปแบบดิจิทัล         1 เครื่อง 

ขั้นตอนการทดลอง

1. ต่อวงจรบนเบรดบอร์ด โดยใช้ไอซี LM393N ตามผังวงจรในรูปที่ 4.2.1 และป้อนแรงดันไฟเลี้ยง 
VCC= +5V และ Gnd จากแหล่งจ่ายควบคุมแรงดัน 

ที่มา : เอกสารประกอบการเรียน Logic Design of Digital System ,ดร. เรวัต  ศิริโภคาภิรมย์


2. ใช้มัลติมิเตอร์วัดแรงดัน V1 และ V2 เทียบกับ Gnd ของวงจร ตามลําดับ แล้วจดบันทึกค่าที่ได้
3. สร้างสัญญาณแบบสามเหลี่ยม (Triangular Wave) ให้อยู่ในช่วงแรงดนั 0V ถึง 5V โดยใช้เครื่อง
กําเนิดสัญญาณ (Function Generator) โดยกําหนดให้ Vpp = 5V (Peak-to-Peak Voltage) และ
แรงดัน Offset = 2.5V และความถี่ f = 1kHz เพื่อใช้เป็นสัญญาณอินพุต Vin สําหรับวงจร 
4. ใช้ออสซิลโลสโคปวัดสัญญาณ โดยใช้ช่อง A สําหรับวัดสัญญาณที่มาจากเครื่องกําเนิดสัญญาณ (Vin) 
และช่อง B สําหรับวัดสัญญาณเอาต์พุตที่ขาหมายเลข 1 (V3) ของตัวเปรียบเทียบแรงดัน (บันทึกภาพ
ที่ได้จากออสซลโลสโคป ิ เพื่อใช้ประกอบการเขียนรายงานการทดลอง) 
5. ใช้ออสซิลโลสโคปวัดสัญญาณ โดยใช้ช่อง A สําหรับวัดสัญญาณที่มาจากเครื่องกําเนิดสัญญาณ (Vin) 
และช่อง B สําหรับวัดสัญญาณเอาต์พุตที่ขาหมายเลข 7 (V4) ของตัวเปรียบเทียบแรงดัน (บันทึกภาพ
ที่ได้จากออสซิลโลสโคป เพื่อใช้ประกอบการเขียนรายงานการทดลอง) 
6. ต่อวงจรบนเบรดบอร์ด ตามผังวงจรในรูปที่ 4.2.2 โดยตัวต้านทานปรับค่าได้ขนาด 10kΩ หรือ 20kΩ
ที่มา : เอกสารประกอบการเรียน Logic Design of Digital System ,ดร. เรวัต  ศิริโภคาภิรมย์
7. ใช้มัลติมิเตอร์วัดแรงดัน Vin ทดลองหมุนปรับค่าที่ตัวต้านทานปรับค่าได้ แล้วสังเกตสถานะของการ
ติด/ดับของ LED1 ให้จดบันทึกค่าแรงดัน Vin ที่ทําให้ LED1 เกิดการเปลี่ยนสถานะติด/ดับ 
8. เขียนรายงานการทดลอง ซงประกอบด้วยคําอธบายการทดลองตามขั้นตอนผังวงจร ที่ถูกต้อง
ครบถ้วนตามหลักไฟฟา้ (ให้วาดด้วยโปรแกรม Cadsoft Eagle) รูปถ่ายของการตอวงจรบน ่ 
เบรดบอร์ด รปคลลื่นสัญญาณที่วัดได้จากออสซิลโลสโคปตามโจทย์การทดลอง และตอบคําถาม
ท้ายการทดลอง 

ผลการทดลอง

สัญญาณที่จุด V3

สัญญาณที่จุด V4







ต่อวงจรในรูป 4.2.1

V1 = 1.67 V
V2 = 3.348 V
 

    


วงจรในรูป 4.2.2 ช่วง แรงดันที่ทำให้ LED ติด ประมาณ 5 V - 3.295 V และ  1.629  V- 1.1 V
                           ช่วง แรงดันที่ทำให้ LED ดับ  ประมาณ  3.295 V - 1.629 V และ 1.1 V - 0 V


                   



วงจร Breadboard ในรูป 4.2.1

วงจร Schemetic ในรูป 4.2.1


วงจร Breadboard ในรูป 4.2.2


วงจร Schemetic ในรูป 4.2.2



คำถามท้ายการทดลอง

1. แรงดัน V1 และ V2 มีค่าประมาณ 1.67  โวลต์ และ  3.348  โวลต์ ตามลําดับ 
2. แรงดัน Vin จะต้องมีค่าอยู่ในช่วง 5   ถึง  3.295 โวลต์ และ 1.629  ถึง  1.1  โวลต์ 
จึงจะทําให้แรงดัน V3 ที่ขาหมายเลข 1 ของ LM393N (วงจรในรูปที่ 4.2.1) ได้ลอจิก LOW และ 
HIGH ตามลําดับ 
3. แรงดัน Vin จะต้องมีค่าอยู่ในช่วง 3.295 ถึง 1.629 โวลต์ และ 1.1 ถึง 0  โวลต์
จึงจะทําให้แรงดัน V4 ที่ขาหมายเลข 7 ของ LM393N (วงจรในรูปที่ 4.2.1) ได้ลอจิก LOW และ 
HIGH ตามลําดับ 
4. แรงดัน Vin ที่ได้จากการหมุนปรับค่าของตัวต้านทานปรับค่าได้ จะต้องมีค่าอยู่ในช่วงใด จึงจะทําให้ 
LED1 สว่าง
- 1.629  - 5 V

วันศุกร์ที่ 5 กันยายน พ.ศ. 2557

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

วัตถุประสงค์

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

รายการอุปกรณ์

- แผงต่อวงจร (เบรดบอร์ด)                       1 อัน
- บอร์ด Arduino (ใช้แรงดันลอจิก +5V)     1 บอร์ด
- อุปกรณ์ 7-Segment Display                      1 ตัว
- ปุ่มกดแบบสี่ขา                                        1 ตัว
- ตัวต้านทาน 330Ω หรือ 470Ω                 7 ตัว
- ตัวต้านทาน 1kΩ                                     1 ตัว
- ตัวต้านทาน 10kΩ                                   1 ตัว
- ทรานซิสเตอร์ NPN เบอร์ PN2222A      1 ตัว
- สายไฟสําหรับต่อวงจร                            1 ชุด

ขั้นตอนการทดลอง

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

 ที่มา : http://www.microtivity.com/p/IS211/7-segment-led-display-2-digit-red-static-common-cathode-pack-of-2

2. ต่อตัวต้านทาน 330Ω หรือ 470Ω จำนวน 7 ตัว แบบอนุกรมกับขา a, b, c, d, e, f, g แต่ละขาของ
อุปกรณ์ 7-Segment Display ตามผังวงจรในรูปที่ 3.2.1
credit : เอกสารประกอบการเรียน Logic Design of Digital System ,ดร. เรวัต  ศิริโภคาภิรมย์


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
credit : เอกสารประกอบการเรียน Logic Design of Digital System ,ดร. เรวัต  ศิริโภคาภิรมย์


8. ตรวจสอบความถูกต้องของวงจรบนเบรดบอร์ดก่อน เมื่อถูกต้องแล้ว จึงเชื่อมต่อ +5V และ Gnd
จากบอร์ด Arduino ไปยังเบรดบอร์ด เพื่อใช้เป็นแรงดันไฟเลี้ยง (VCC และ GND) และไม่ต้องใช้
แหล่งจ่ายควบคุมแรงดันจากภายนอก ให้ระวังการต่อสลับขั้วสายไฟ และระวังการต่อถึงกันทางไฟฟ้า
ของสายไฟทั้งสองเส้น
6. แก้ไขโค้ดสำหรับ Arduino ให้สามารถแสดงตัวเลขตั้งแต่ 0 ถึง 9 แล้ววนซ้ำ โดยเว้นระยะเวลาในการ
เปลี่ยนเป็นตัวเลขถัดไปประมาณ 1 วินาที
7. แก้ไขวงจร โดยต่อวงจรตามผังวงจรในรูปที่ 3.2.3 ให้สังเกตว่า มีการต่อวงจรปุ่มกดแบบ Pull-up
เพื่อใช้เป็นอินพุต-ดิจิทัลให้บอร์ด Arduino และมีการต่อวงจรทรานซิสเตอร์แบบ NPN เพื่อใช้ควบคุม
การไหลของกระแสจากขา CC ของ 7-Segment Display ผ่านตัวทรานซิสเตอร์ NPN จากขา
Collector (C) ไปยังขา Emitter (E) และ GND ของวงจรตามลำดับ
credit : เอกสารประกอบการเรียน Logic Design of Digital System ,ดร. เรวัต  ศิริโภคาภิรมย์


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


ผลการทดลอง

Example Code Arduino






Code Arduino : 0-9 Digit ( 1 sec )







Code Arduino : Pressed SW to count digit 0-9 






คำถามท้ายการทดลอง

1. วงจรทรานซิสเตอร์แบบ NPN ในวงจรนี้ใช้เพื่อวัตถุประสงค์ใด จงอธิบายหลักการทำงาน

- ทรานซิสเตอร์มีหน้าที่ ในการควบคุมการไหลของแรงดันซึ่งเป็นการควบคุมการติด/ดับของ 7-Segment Display ในวงจรนี้ โดยเมื่อทำการกดปุ่มจะทำให้เกิดแรงดันขึ้นที่ ขา  B จึงทำให้ กระแสจะไหลจาก C ไป E ได้ ทำให้วงจรทำงานได้ แต่เมื่อไม่กดปุ่มขา B ไม่รับแรงดัน ทำให้ กระแสจากขา C ไหลผ่านไปไม่ได้ 


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


Code Arduino :
const byte SEVEN_SEG[7] = {0,1,2,3,4,5,6}; 
const byte SEVEN_SEG2[7] = {7,8,9,10,11,12,13}; 
const byte DIGIT_7SEG[] ={
 B00111111, //0
 B00000110, //1
 B01011011, //2
 B01001111, //3
 B01100110, //4
 B01101101, //5
 B01111100, //6
 B00000111, //7
 B01111111, //8
 B01101111  //9
 };
byte count = 0; 

void setup() { 
  for (int i=0; i < 7; i++) { 
    pinMode( SEVEN_SEG2[i], OUTPUT ); 
    digitalWrite( SEVEN_SEG2[i], HIGH ); 
  }  
  for (int i=0; i < 7; i++) { 
    pinMode( SEVEN_SEG[i], OUTPUT ); 
    digitalWrite( SEVEN_SEG[i], HIGH ); 
  }



void loop() { 
    displayDigit(0, count%10); 
    displayDigit(1, (count-(count%10))/10); 
    count = (count+1) % 100; 
    delay(1000); 


void displayDigit(int switch_digi, byte value) { 
  if ( 0 <= value && value < 10 ) { 
    byte value = DIGIT_7SEG[ count ]; 
    if(switch_digi == 0){ 
      for (int i=0; i<8; i++) {  
        digitalWrite(SEVEN_SEG[i], (value & 1) );
        value>>= 1; 
      } 
    }else{ 
      for (int i=0; i<8; i++) {  
        digitalWrite(SEVEN_SEG2[i], (value & 1) );
        value>>= 1; 
      } 
    }
  } 
}




การทดลองที่ 3.1 การต่อวงจรปุ่มกดและไดโอดเปล่งแสงสําหรับ Arduino

วัตถุประสงค์

1. ฝึกต่อวงจรปุ่มกดและไดโอดเปล่งแสง (LED) และเชื่อมต่อกับขาอินพุต/เอาต์พุต-ดิจิทัลของบอร์ด
Arduino
2.  ฝึกเขียนโปรแกรมภาษา C/C++ เพื่อกำหนดพฤติกรรมการทำงานของบอร์ด Arduino ตามโจทย์ที่
กำหนดให้

รายการอุปกรณ์

- แผงต่อวงจร (เบรดบอร์ด)         1 อัน
- บอร์ด Arduino (ใช้แรงดันลอจิก +5V)     1 บอร์ด
- ปุ่มกดแบบสี่ขา             2 ตัว
- ไดโอดเปล่งแสงขนาด 5 มม.              4 ตัว
- ตัวต้านทาน 10kΩ               2 ตัว
- ตัวต้านทาน 330Ω หรือ 470Ω               4 ตัว
- สายไฟสําหรับต่อวงจร           1 ชุด

ขั้นตอนการทดลอง

1. ยังไม่ต้องเชื่อมต่อ +5V และ Gnd จากบอร์ด Arduino ไปยังเบรดบอร์ดเพื่อจ่ายเป็นแรงดันไฟเลี้ยง
VCC และ GND
2. ต่อวงจรปุ่มกดพร้อมตัวต้านทานแบบ Pull-up 10kΩ จํานวนสองชุด (PB1 และ PB2) บนเบรดบอร์ด
แล้วนําไปต่อกับขา D2 และ D3 ของบอร์ด Arduino ตามลําดับ โดยใช้ลวดสายไฟสําหรับต่อวงจร
(ดูตามผังวงจรในรูปที่ 3.1.1)
3. ต่อวงจรโดยใช้ไดโอดเปล่งแสง (LED) พร้อมตัวต้านทานแบบอนุกรม 330Ω หรือ 470Ω จํานวน
4 ชุด (LED1, LED2, LED3, LED4) บนเบรดบอร์ด แล้วนําไปต่อกับขา D4, D5, D6, D7, D8 ของ
บอร์ด Arduino ตามลําดับ โดยใช้ลวดสายไฟสําหรับต่อวงจร (ดูตามผังวงจรในรูปที่ 3.1.1)

credit : เอกสารประกอบการเรียน Logic Design of Digital System ,ดร. เรวัต  ศิริโภคาภิรมย์

4. เขียนโค้ดตามตัวอย่างโดยใช้ Arduino IDE แล้วทําขั้นตอนคอมไพล์และอัพโหลดโปรแกรมไปยังบอร์ด Arduino
credit : เอกสารประกอบการเรียน Logic Design of Digital System ,ดร. เรวัต  ศิริโภคาภิรมย์

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

อสลับขั้วสายไฟ
และ ระวังการต่อถึงกันทางไฟฟ้าของสายไฟทั้งสองเส้น
6. แก้ไขโค้ดใหแสดงพฤต ้ ิกรรมการทํางานตามข้อกําหนดต่อไปนี้ ตรวจสอบและสาธิตความถูกต้องใน
การทํางาน โดยใช้ฮาร์ดแวร์จริง

      6.1 เมื่อเริ่มต้นทํางาน จะมี LED เพียงตัวเดียวที่อยู่ในสถานะ “ติด” (LED1) และที่เหลืออีก 3 ตัว
(LED2, LED3, LED4) อยู่ในสถานะ “ดับ”
      6.2 ถ้ากดปุ่ม PB1 แล้วปล่อยในแต่ละครั้ง จะทําให้ตําแหน่งของ LED ที่ “ติด” เลื่อนไปทางขวาทีละ
หนึ่งตําแหน่ง หรือวนกลับมาเริ่มต้นใหม่ทางซ้ายสุด (LED1 -> LED2 -> LED3 -> LED4 -> …)
      6.3 ถ้ากดปุ่ม PB2 แล้วปล่อยในแต่ละครั้ง จะทําให้ตําแหน่งของ LED ที่ “ติด” เลื่อนไปทางซ้ายทีละ
หนึ่งตําแหน่ง หรือวนกลับมาเริ่มต้นใหม่ทางขวาสุด (LED1 -> LED4 -> LED3 -> LED2 -> …)

7. แก้ไขโค้ดใหแสดงพฤต ้ ิกรรมการทํางานตามข้อกําหนดต่อไปนี้ ตรวจสอบและสาธิตความถูกต้องใน
การทํางาน
      7.1 ใช้ LED ทั้ง 4 ตัว แสดงเลขในฐานสอง จํานวน 4 หลัก (4-bit binary number) ซึ่งรับสัญญาณ
เอาต์พุตมาจากบอร์ด Arduino และกําหนดให้บิตที่มีค่า 0 หมายถึง LED “ดับ” และ บิตที่มีค่า
เป็น 1 หมายถึง LED “ติด”และเมื่อเริ่มต้นทํางาน ให้แสดงค่าเป็น 0
      7.2 เมื่อกดปุ่ม PB1 แล้วปล่อยแต่ละครั้ง จะทําให้ค่าเพิ่มขึ้นทละหน ี ึ่ง จาก 0000, 0001, 0010, …,
1111 ตามลําดับ แล้ววนกลบไปเร ั ิ่มต้นที่ 0000 ใหม่ได ้
      7.3 แต่ถ้ากดปุ่ม PB2 จะทําให้ได้ค่าเป็น 0000 ทันท (ีหมายถงึ การรีเซตค่าเป็นศูนย์)



ผลการทดลอง


Example Code Arduino


วงจรเมื่อใช้โค้ดตามตัวอย่าง
Code Arduino : 
 (LED1 -> LED2 -> LED3 -> LED4 -> …) AND  (LED1 -> LED4 -> LED3 -> LED2 -> …)





Code Arduino :  (4 Bit -  Binary Number)