การต่อวงจรสวิตช์ควบคุมด้วยแสง
วัตถุประสงค์ในการทดลอง
1. ฝึกการต่อวงจรโดยใช้สวิตช์ควบคุมด้วยแสง Opto-Interrupter บนเบรดบอร์ดอย่างถูกต้อง
2. รู้จักการทำงานทางกายภาพของสวิตช์ควบคุมด้วยแสง
3. ประยุกต์ใช้งานวงจรสวิตช์ควบคุมด้วยแสงร่วมกับบอร์ด Arduino ได้อย่างถูกต้องและเกิดประโยชน์
อุปกรณ์ที่ใช้ในการทดลอง
1. แผงต่อวงจร (เบรดบอร์ด) 1 อัน
2. อุปกรณ์สวิตช์ควบคุมด้วยแสง H21A1 หรือ TCST2202 1 ตัว
3. ไดโอดเปล่งแสงสีแดงหรือสีเขียว 1 ตัว
4. ตัวต้านทาน 220Ω 1 ตัว
5. ตัวต้านทาน 330Ω หรือ 470Ω 1 ตัว
6. ตัวต้านทาน 10kΩ 1 ตัว
7. บัซเซอร์แบบเปียโซ (Piezo Buzzer) 1 ตัว
8. สายไฟสําหรับต่อวงจร 1 ชุด
9. มัลติมิเตอร์ 1 เครื่อง
2. อุปกรณ์สวิตช์ควบคุมด้วยแสง H21A1 หรือ TCST2202 1 ตัว
3. ไดโอดเปล่งแสงสีแดงหรือสีเขียว 1 ตัว
4. ตัวต้านทาน 220Ω 1 ตัว
5. ตัวต้านทาน 330Ω หรือ 470Ω 1 ตัว
6. ตัวต้านทาน 10kΩ 1 ตัว
7. บัซเซอร์แบบเปียโซ (Piezo Buzzer) 1 ตัว
8. สายไฟสําหรับต่อวงจร 1 ชุด
9. มัลติมิเตอร์ 1 เครื่อง
ขั้นตอนและผลการทดลอง
1. ต่อวงจรบนเบรดบอร์ดตามรูปที่ 5.3.1 โดยใช้แรงดันไฟเลี้ยง +5V และ GND จากบอร์ด Arduino
2. เขียนโค้ด Arduino เพื่อรับค่าอินพุตแบบดิจิทัลที่ขา D3 (จากสัญญาณ Vout ของวงจรบนเบรด
บอร์ด) แล้วสร้างสัญญาณเอาต์พุตที่ขา D5 เพื่อแสดงค่าของอินพุตที่รับโดยใช้LED เป็นตัวแสดง
สถานะทางลอจิก (ถ้าไม่มีวัตถุมาปิดกั้นช่องรับแสง LED จะต้องไม่ติด)
Code: Arduino
const byte TCST = 3;
const byte LED1_PIN = 5;
void setup() {
pinMode (TCST, INPUT);
pinMode (LED1_PIN, OUTPUT);
Serial.begin (9600);
}
void loop() {
digitalWrite (LED1_PIN,(digitalRead(TCST)));
}
3. ใช้กระดาษสีดําปิดกั้น (หรือวัตถุอื่น เช่น ไม้บรรทัดเหล็ก) บริเวณช่องรับแสงของอุปกรณ์สวิตช์
ควบคุมด้วยแสง สังเกตความแตกต่างระหว่างกรณีที่มีวัตถุปิดกั้นและไม่มี (เช่น ใช้มัลติมิเตอร์วัด
แรงดัน Vout)
4. ทดลองต่อบัซเซอร์แบบเปียโซ (สร้างเสียงเตือน) แทนวงจร LED ในวงจรบนเบรดบอร์ด (โดยนําไปต่ออนุกรมกับตัวต้านทานขนาด 330Ω และใหส้ังเกตว่า บัซเซอร์แบบเปียโซมีขาบวกและขาลบ)
5. แก้ไขโค้ด Arduino เพื่อนับเวลาตั้งแต่เริ่มนํากระดาษไปปิดกั้นจนถึงเมื่อนํากระดาษออกในแต่ละครั้งโดยวัดช่วงเวลาเป็นหน่วยมิลลิวินาที (msec) และให้แสดงผลออกทางพอร์ตอนุกรมผ่านทาง Serial
Monitor ของ Arduino IDE (ให้ศึกษาการใช้คําสั่ง millis() สําหรับการเขียนโค้ด Arduino)
Code: Arduino
const byte TCST = 3;
const byte LED1_PIN = 5;
unsigned long time1;
unsigned long time2;
unsigned long DeltaTime;
void setup() {
pinMode (TCST, INPUT);
pinMode (LED1_PIN, OUTPUT);
Serial.begin (9600);
}
void loop() {
digitalWrite(LED1_PIN, (digitalRead(TCST) == HIGH) ? HIGH : LOW);
if (digitalRead(TCST) == HIGH)
{
time1 = millis();
while (true)
{
time2 = millis();
if (digitalRead(TCST) == LOW)
{
Serial.print("Time :");
DeltaTime = (time2 - time1);
Serial.println(DeltaTime);
break;
}
}
}
delay(100);
}
ภาพการต่อวงจรบนเบรดบอร์ดจำลอง
ภาพการต่อวงจรจริงบนเบรดบอร์ด
2. เขียนโค้ด Arduino เพื่อรับค่าอินพุตแบบดิจิทัลที่ขา D3 (จากสัญญาณ Vout ของวงจรบนเบรด
บอร์ด) แล้วสร้างสัญญาณเอาต์พุตที่ขา D5 เพื่อแสดงค่าของอินพุตที่รับโดยใช้LED เป็นตัวแสดง
สถานะทางลอจิก (ถ้าไม่มีวัตถุมาปิดกั้นช่องรับแสง LED จะต้องไม่ติด)
Code: Arduino
const byte TCST = 3;
const byte LED1_PIN = 5;
void setup() {
pinMode (TCST, INPUT);
pinMode (LED1_PIN, OUTPUT);
Serial.begin (9600);
}
void loop() {
digitalWrite (LED1_PIN,(digitalRead(TCST)));
}
3. ใช้กระดาษสีดําปิดกั้น (หรือวัตถุอื่น เช่น ไม้บรรทัดเหล็ก) บริเวณช่องรับแสงของอุปกรณ์สวิตช์
ควบคุมด้วยแสง สังเกตความแตกต่างระหว่างกรณีที่มีวัตถุปิดกั้นและไม่มี (เช่น ใช้มัลติมิเตอร์วัด
แรงดัน Vout)
วัดแรงดัน Vout. ที่ขณะมีวัตถุกั้น
วัดแรงดัน Vout. ที่ขณะไม่มีวัตถุกั้น
4. ทดลองต่อบัซเซอร์แบบเปียโซ (สร้างเสียงเตือน) แทนวงจร LED ในวงจรบนเบรดบอร์ด (โดยนําไปต่ออนุกรมกับตัวต้านทานขนาด 330Ω และใหส้ังเกตว่า บัซเซอร์แบบเปียโซมีขาบวกและขาลบ)
5. แก้ไขโค้ด Arduino เพื่อนับเวลาตั้งแต่เริ่มนํากระดาษไปปิดกั้นจนถึงเมื่อนํากระดาษออกในแต่ละครั้งโดยวัดช่วงเวลาเป็นหน่วยมิลลิวินาที (msec) และให้แสดงผลออกทางพอร์ตอนุกรมผ่านทาง Serial
Monitor ของ Arduino IDE (ให้ศึกษาการใช้คําสั่ง millis() สําหรับการเขียนโค้ด Arduino)
const byte TCST = 3;
const byte LED1_PIN = 5;
unsigned long time1;
unsigned long time2;
unsigned long DeltaTime;
void setup() {
pinMode (TCST, INPUT);
pinMode (LED1_PIN, OUTPUT);
Serial.begin (9600);
}
void loop() {
digitalWrite(LED1_PIN, (digitalRead(TCST) == HIGH) ? HIGH : LOW);
if (digitalRead(TCST) == HIGH)
{
time1 = millis();
while (true)
{
time2 = millis();
if (digitalRead(TCST) == LOW)
{
Serial.print("Time :");
DeltaTime = (time2 - time1);
Serial.println(DeltaTime);
break;
}
}
}
delay(100);
}
บันทึกผลการทดลอง
จากการทดลองข้อที่ 2 :
จากการทดลองข้อที่ 3 :
จากการทดลองข้อที่ 4 :
คำถามท้ายการทดลอง
1. จากการทดลองพบว่า จะวัดแรงดัน Vout ได้เท่ากับ 0.103 โวลต์ เมื่อไม่มีวัตถุไปปิดกั้นช่องรับแสงของอุปกรณ์H21A1 และจะวัด Vout ได้เท่ากับ 4.954 โวลต์ เมื่อมีวัตถุไปปิดกั้นช่องรับแสงของอุปกรณ์ดังกล่าว
2. ถ้านํากระดาษสีขาวและกระดาษสีดํา ไปปิดกั้นช่องรับแสง ในแต่ละกรณีจะให้ผลการทำงานของวงจรที่แตกต่างกันหรือไม่จงอธิบาย ไม่แตกต่างกัน เนื่องจากตัวอุปกรณ์สวัิตช์ควบคุมด้วยแสง H21A1 มีวิธีการตรวจจับแบบ Transmissive, Slotted
2. ถ้านํากระดาษสีขาวและกระดาษสีดํา ไปปิดกั้นช่องรับแสง ในแต่ละกรณีจะให้ผลการทำงานของวงจรที่แตกต่างกันหรือไม่จงอธิบาย ไม่แตกต่างกัน เนื่องจากตัวอุปกรณ์สวัิตช์ควบคุมด้วยแสง H21A1 มีวิธีการตรวจจับแบบ Transmissive, Slotted