การทดลองที่3.3
การจําลองการทํางานของลอจิกเกต
วัตถุประสงค์
- ฝึกต่อวงจรโดยใช้ไอซี74HC00N บนเบรดบอร์ด เพื่อสร้างเป็นวงจรRS Latch
- เขียนโปรแกรมสําหรับArduino เพื่อเลียนแบบพฤติกรรมการทํางานของRS Latch
รายการอุปกรณ์ที่ใช้
| แผงต่อวงจร(เบรดบอร์ด) | 1 อัน |
| บอร์ด Arduino (ใช้แรงดัน +5V) | 1 บอร์ด |
| ไอซี74HCT00N | 1 ตัว |
| ไดโอดเปล่งแสงขนาด 5 มม. | 2 ตัว |
| ปุ่มกดแบบสี่ขา | 2 ตัว |
| ตัวต้านทาน 330Ω หรือ 470Ω | 2 ตัว |
| ตัวต้านทาน 10kΩ | 2 ตัว |
| สายไฟสําหรับต่อวงจร | 1 ชุด |
| แหล่งจ่ายควบคุมแรงดัน | 1 ชุด |
| มัลติมิเตอร์ | 1 เครื่อง |
ขั้นตอนการทดลอง
- ต่อวงจรบนเบรดบอร์ดโดยใช้ไอซี 74HCT00N เพื่อสร้างลอจิกเกต RS Latch ตามผังวงจรในรูปที่ 3.3.1 และป้อนแรงดันไฟเลี้ยง VCC = 5V และ GND จากแหล่งจ่ายควบคุมแรงดันให้ไอซีและวงจรบนเบรดบอร์ด
- กําหนดสถานะของสัญญาณอินพุต A และ B ทั้งหมด 4 กรณี โดยการกดปุ่มค้างไว้ (LOW) หรือไม่ กดปุ่ม(HIGH) ตามตารางที่ 3.3.1 ใช้มัลติมิเตอร์วัดแรงดันของสัญญาณ Q และ /Q รวมถึงสังเกตสถานะติด/ดับของ LED ทั้งสอง สําหรับแต่ละกรณีของอินพุต แล้วบันทึกผลที่ได้ลงในตาราง
- ต่อวงจรตามผังวงจรในรูปที่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);
}
ผลการทดลอง
![]() |
| ภาพการต่อ 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