Thursday, September 4, 2014

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

การทดลองที่3.3 
การจําลองการทํางานของลอจิกเกต

วัตถุประสงค์
  • ฝึกต่อวงจรโดยใช้ไอซี74HC00N บนเบรดบอร์ด เพื่อสร้างเป็นวงจรRS Latch 
  • เขียนโปรแกรมสําหรับArduino เพื่อเลียนแบบพฤติกรรมการทํางานของRS Latch 

รายการอุปกรณ์ที่ใช้

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


ขั้นตอนการทดลอง
  1. ต่อวงจรบนเบรดบอร์ดโดยใช้ไอซี 74HCT00N เพื่อสร้างลอจิกเกต RS Latch ตามผังวงจรในรูปที่ 3.3.1 และป้อนแรงดันไฟเลี้ยง VCC = 5V และ GND จากแหล่งจ่ายควบคุมแรงดันให้ไอซีและวงจรบนเบรดบอร์ด
  2. กําหนดสถานะของสัญญาณอินพุต A และ B ทั้งหมด 4 กรณี โดยการกดปุ่มค้างไว้ (LOW) หรือไม่ กดปุ่ม(HIGH) ตามตารางที่ 3.3.1 ใช้มัลติมิเตอร์วัดแรงดันของสัญญาณ Q และ /Q รวมถึงสังเกตสถานะติด/ดับของ LED ทั้งสอง สําหรับแต่ละกรณีของอินพุต แล้วบันทึกผลที่ได้ลงในตาราง
  3. ต่อวงจรตามผังวงจรในรูปที่3.3.2 โดยใช้บอร์ด Arduino ปุ่มกดแบบสี่ขา ไดโอดเปล่งแสง และตัวต้านทาน และให้เขียนโปรแกรมสําหรับ Arduino เพื่อเลียนแบบพฤติกรรมการทํางานของ RS Latch (ความสัมพันธ์ ระหว่างอินพุตและเอาต์พุต) ตามที่ได้จากโจทย์การทดลองในข้อที่ 2

ภาพที่3.3.1: ผังวงจรสําหรับสร้างRS Latch โดยใช้เกตNAND2


ภาพที่ 3.3.2 ผังวงจรสําหรับใช้บอร์ดArduino เลียนแบบการทํางานของRS Latch 


code ที่ใช้ในการทดลอง

const byte PB_1=2; //define pin for push button 1 
const byte PB_2=3; //define pin for push button 2
const byte LEDS[2] = {4,5}; //define pin for led
int out_1=0;
int out_2=0;
int in_1=0;
int in_2=0;
int LED1_STATE=0;
int LED2_STATE=0;

void setup(){
  //define pin mode for each I/O
  pinMode( PB_1, INPUT); 
  pinMode( PB_2, INPUT);
  for (int i=0; i<3; i++){
    pinMode (LEDS[i], OUTPUT);
    digitalWrite (LEDS[i],LOW);
  }
}

void loop(){
  in_1 = digitalRead(PB_1);
  in_2 = digitalRead(PB_2);
  if(!(out_2&&in_1)){ 
   out_1 = 1; 
   LED1_STATE=1;
  }else{
   out_1 = 0;
   LED1_STATE=0;
  }
  
  if(!(out_1&&in_2)){ 
   out_2 = 1; 
   LED2_STATE=1;
  }else{
   out_2 = 0;
   LED2_STATE=0;
  }
   digitalWrite (LEDS[0],LED1_STATE);
   digitalWrite (LEDS[1],LED2_STATE);
}


ผลการทดลอง 
ภาพ schematic ของวงจร Arduino ที่จำลองการทำงานเป็น RS Latch


ภาพการต่อวงจรจริงตามรูป 3.3.1


ภาพการต่อ Arduino เข้ากับวงจรตามภาพ 3.3.1



S1 S2 LED1 (ติด/ดับ) LED2 (ติด/ดับ) Q (V) /Q (V)
ไม่กดปุ่ม ไม่กดปุ่ม ดับ ติด 0 4.6
ไม่กดปุ่ม กดปุ่มค้างไว้ ดับ ติด 0 4.63
กดปุ่มค้างไว้ ไม่กดปุ่ม ติด ดับ 4.6 0
กดปุ่มค้างไว้ กดปุ่มค้างไว้ ติด ติด 4.6 4.63

ตารางบันทึกผลการทดลอง



No comments:

Post a Comment