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

การทดลองที่ 3.3

การจำลองการทำงานขอลอจิกเกต

วัตถุประสงค์ในการทดลอง

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 เครื่อง



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

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





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

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