การจำลองการทำงานขอลอจิกเกต
วัตถุประสงค์ในการทดลอง
1. รู้วิธีต่อวงจรโดยใช้ไอซี 74HC00N บนเบรดบอร์ดโดยศึกษาได้จาก Data Sheet ของอุปกรณ์
2. เข้าใจโค้ดและคำสั่งต่างๆ ของ Ardunio ซึ่งสามารถเลียนแบบพฤิกรรมการทำงานของ RS Latch ได้
3. ฝึกการใช้แหล่งจ่ายแรงดัน เพื่อจ่ายแรงดันในย่านต่างๆ ให้กับวงจร
อุปกรณ์ที่ใช้ในการทดลอง
1. แผงต่อวงจร (เบรดบอร์ด) 1 อัน
2. บอร์ด Ardunio (ใช้แรงดัน +5v.) 1 บอร์ด
3. ไอซี 74HCT00N 1 ตัว
4. ไดโอดเปล่งแสงขนาด 5 มม. 2 ตัว
5. ปุ่มกดแบบสี่ขา 2 ตัว
6. ตัวต้ายทาน 330 หรือ 470 โอห์ม 2 ตัว
7. ตัวต้านทาน 10k โอห์ม 2 ตัว
8. สายไฟสำหรับต่อวงจร 1 ชุด
9. แหล่งจ่ายควบคุมแรงดัน 1 ชุด
10. มัลติมิเตอร์ 1 เครื่อง
2. บอร์ด Ardunio (ใช้แรงดัน +5v.) 1 บอร์ด
3. ไอซี 74HCT00N 1 ตัว
4. ไดโอดเปล่งแสงขนาด 5 มม. 2 ตัว
5. ปุ่มกดแบบสี่ขา 2 ตัว
6. ตัวต้ายทาน 330 หรือ 470 โอห์ม 2 ตัว
7. ตัวต้านทาน 10k โอห์ม 2 ตัว
8. สายไฟสำหรับต่อวงจร 1 ชุด
9. แหล่งจ่ายควบคุมแรงดัน 1 ชุด
10. มัลติมิเตอร์ 1 เครื่อง
ขั้นตอนและผลการทดลอง
1. ต่อวงจรบนเบรดบอร์ด โดยใช้ไอซี 74HCT00N เพื่อสร้างลอจิกเกต RS Latch ตามผังวงจรในรูปที่ 3.3.1. และป้อนแรงดันไฟเลี้ยง Vcc = 5v. และ GND จากแหล่งจ่ายควบคุมแรงดัน ให้ไอซีและวงจรบนเบรดบอร์ด
ภาพการต่อวงจรตามรูปที่ 3.3.1
2. กำหนดสถานะของสัญญาณอินพุต A และ B ทั้งหมด 4 กรณี โดยการกดปุ่มค้างไว้ (LOW) หรือไม่ กดปุ่ม (HIGH) ตามตารางที่ 3.3.1 ใช้มัลติมิเตอร์วัดแรงดันของสัญญาณ Q และ /Q รวมถึงสังเกตสถานะติด/ดับของ LED ทั้งสอง สำหรับแต่ละกรณีของอินพุต แล้วบันทึกผลที่ได้ลงในตาราง
ภาพการวัด Q โดยไม่กดปุ่มทั้ง S1 และ S2
ภาพการวัด /Q โดยไม่กดปุ่มทั้ง S1 และ S2
ภาพการวัด Q โดยไม่กดปุ่ม S1 แต่กดปุ่ม S2 ไว้
ภาพการวัด /Q โดยไม่กดปุ่ม S1 แต่กดปุ่ม S2 ไว้
ภาพการวัด Q โดยกดปุ่ม S1 แต่ไม่กดปุ่ม S2 ไว้
ภาพการวัด /Q โดยกดปุ่ม S1 แต่ไม่กดปุ่ม S2 ไว้
ภาพการวัด Q โดยกดปุ่มทั้ง S1 และ S2
ภาพการวัด /Q โดยกดปุ่มทั้ง S1 และ S2
3. ต่อวงจรตามผังวงจรในรูปที่ 3.3.2 โดยใช้บอร์ด Ardunio ปุ่มกดแบบสี่ขา ไดโอดเปล่งแสง และตัวต้านทาน และให้เขียนโปรแกรมสำหรับ Ardunio เพื่อเลียนแบบพฤติกรรมการทำงานของ RS Latch (ความสัมพันธ์ระหว่างอินพุต และเอาต์พุต) ตามที่ได้จากการทดลองในข้อที่ 2
Ardunio Code
const byte a = 2; /*เป็นการกำหนดตัวแปรเพื่อเป็นขาของบอร์ด Ardunio */
const byte b= 3;
const byte c = 4;
const byte d = 5;
void setup() {
pinMode(a, INPUT);
pinMode(b, INPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
} /*เป็นการประกาศฟังก์ชั่น ที่ถูกเรียกใช้งานก่อนเสมอ โดยทำหน้าที่กำหนดขาอินพุต เอาต์พุตของบอร์ด */
void loop() {
if (digitalRead(a)== LOW && digitalRead(b)== LOW) {
digitalWrite(c , HIGH);
digitalWrite(d , HIGH);
} /* ถ้ากด S1 และ S2 ให้ LED สว่างทั้งคุ่ */
else {
if (digitalRead(a)== LOW && digitalRead(b)== HIGH) {
digitalWrite(c, HIGH);
digitalWrite(d , LOW);
} /* ถ้ากด S1 แต่ไม่กด S2 ให้ LED1 สว่าง */
else {
if (digitalRead(a)== HIGH && digitalRead(b)== LOW) {
digitalWrite(c , LOW);
digitalWrite(d , HIGH);
} /* ถ้ากด S2 แต่ไม่กด S1 ให้ LED2 สว่าง */
else{
if (digitalRead(a)== HIGH && digitalRead(b)== HIGH) {//????????
digitalWrite(c , HIGH);
digitalWrite(d , LOW);
} /* ถ้าไม่กดทั้ง S1 และ S2 ให้ LED1 สว่าง */
}
}
}
}
ภาพการต่อวงจรตามรูปที่ 3.3.2
บันทึกผลการทดลอง
ตารางที่ 3.3.1 บันทึกผลการทดลอง
การทดลองตามภาพที่ 3.3.2
ผังวงจรการทดลอง
รูปที่ 3.3.1: ผังวงจรสำหรับสร้าง RS Latch โดยใช้เกต NAND2
ภาพการต่อวงจรสำหรับสร้าง RS Latch โดยใช้เกต NAND2
รูปที่ 3.3.2: ผังวงจรสำหรับใช้ Ardunio เลียนแบบการทำงานของ RS Latch
ภาพการต่อวงจรสำหรับใช้ Ardunio เลียนแบบการทำงานของ RS Latch
ไม่มีความคิดเห็น:
แสดงความคิดเห็น