วันศุกร์ที่ 17 ตุลาคม พ.ศ. 2557

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

 การทดลองที่ 5.4
การเชื่อมต่อวงจรอิเล็กทรอนิกส์ด้วยแสง

วัตถุประสงค์
  • ฝึกต่อวงจรโดยใช้อุปกรณ์เชื่อมต่อทางแสง เช่น เบอร์ PC817
  • ประยุกต์ใช้งานอุปกรณ์ชนิดนี้ร่วมกับบอร์ด Arduino และใช้ควบคุมการจ่ายกระแสให้โหลด
รายการอุปกรณ์
  1. แผงต่อวงจร (เบรดบอร์ด) 1 อัน
  2. อุปกรณ์เชื่อมต่อทางแสง PC817 1 ตัว
  3. ไดโอดเปล่งแสงสีแดงหรือสีเขียว 1 ตัว
  4. ตัวต้านทาน 220Ω หรือ 330Ω 1 ตัว
  5. ทรานซิสเตอร์ NPN เบอร์ PN2222A 1 ตัว
  6. ตัวต้านทาน 1kΩ 1 ตัว
  7. ตัวต้านทาน 4.7kΩ 1 ตัว
  8. ตัวต้านทาน 10kΩ 1 ตัว
  9. ตัวต้านทานปรับค่าได้ 10kΩ หรือ 20kΩ 1 ตัว
  10. ไดโอด 1N400x 1 ตัว
  11. มอเตอร์ไฟฟ้ากระแสตรงขนาดเล็ก 1 ตัว *
  12. สายไฟสำหรับต่อวงจร 1 ชุด
  13. มัลติมิเตอร์ 1 เครื่อง
  14. แหล่งจ่ายแรงดันควบคุม 1 เครื่อง
  15. ออสซิลโลสโคปแบบดิจิทัล 1 เครื่อง
ขั้นตอนการทดลอง
  1. ต่อวงจรบนเบรดบอร์ดตามรูปที่ 5.4.1 ให้สังเกตว่า ในผังวงจรมี GND1 และ GND2 แยกกันซึ่ง
จะต้องไม่นำมาต่อเข้าด้วยกันโดยเด็ดขาด
  2. ให้ใช้แรงดันไฟเลี้ยง +5V และ GND1 ให้ใช้จากบอร์ด Arduino แต่สำหรับ +9V และ GND2
ให้ใช้จากแหล่งจ่ายแรงดันควบคุม
  3. เขียนโค้ด Arduino โดยสร้างสัญญาณแบบ PWM โดยใช้คำสั่ง analogWrite() เพื่อสร้างสัญญาณ
เอาต์พุตที่ขา D5 โดยปรับค่า Duty Cycle ของสัญญาณเอาต์พุตตามค่าที่อ่านได้จากตัวต้านทาน
ปรับค่าได้ ซึ่งต่อเป็นอินพุตที่ขา A1
  4. ใช้ออสซิลโลสโคปวัดสัญญาณที่ขา E ของ PC817 เทียบกับ GND2 แล้วทดลองหมุนปรับที่
ตัวต้านทานปรับค่าได้ เพื่อปรับค่า Duty Cycle เป็น 0% 25% 50% และ 100% ตามลำดับ
บันทึกรูปคลื่นสัญญาณที่ได้ในแต่ละกรณี
  5. ทดลองเปลี่ยนจาก LED และตัวต้านทาน เป็นมอเตอร์ไฟฟ้ากระแสตรงขนาดเล็ก (ปรับแรงดันไฟเลี้ยง
จาก +9V ให้เป็นแรงดันไฟเลี้ยงที่เหมาะสมกับมอเตอร์ไฟฟ้า +VM) โดยต่อวงจรตามรูปที่ 5.4.2 และ
ทดลองปรับค่า Duty Cycle
  6. เขียนรายงานการทดลอง ซึ่งประกอบด้วยคำอธิบายการทดลองตามขั้นตอน ผังวงจรที่ถูกต้อง
ครบถ้วนตามหลักไฟฟ้า (ให้วาดด้วยโปรแกรม Cadsoft Eagle) รูปถ่ายของการต่อวงจรบน
เบรดบอร์ด
รูปวงจรที่ต่อในการทดลอง

โค้ดที่ใช้ในการทดลอง
void setup() {
  pinMode(A1,INPUT);
  pinMode(5,OUTPUT);
  analogReference(DEFAULT);
}

void loop() {
  analogWrite(5,analogRead(A1));
 
}
 

วันศุกร์ที่ 3 ตุลาคม พ.ศ. 2557

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

การทดลองที่ 5.2
การตรวจจับวัตถุในระยะใกล้ด้วยแสงอินฟราเรด
วัตถุประสงค์

  1. ฝึกต่อวงจรโดยใช้ไดโอดเปล่งแสงอินฟราเรดและโฟโต้ทรานซิสเตอร์
  2. ประยุกต์ใช้งานอุปกรณ์ทั้งสองชนิดร่วมกับบอร์ด Arduino เพื่อใช้ตรวจจับวัตถุในระยะใกล้

รายการอุปกรณ์

  1. แผงต่อวงจร (เบรดบอร์ด) 1 อัน
  2. ไดโอดเปล่งแสงอินฟราเรด 1 ตัว
  3. ไดโอดเปล่งแสงสีแดงหรือสีเขียว 1 ตัว
  4. โฟโต้ทรานซิสเตอร์ 1 ตัว
  5. ตัวต้านทาน 220Ω 1 ตัว
  6. ตัวต้านทาน 330Ω หรือ 470Ω 1 ตัว
  7. ตัวต้านทาน 10kΩ 1 ตัว
  8. ตัวเก็บประจุแบบ Electrolytic 1uF หรือ 10uF (มีขั้ว) 1 ตัว
  9. สายไฟสำหรับต่อวงจร 1 ชุด
  10. มัลติมิเตอร์ 1 เครื่อง

ขั้นตอนการทดลอง
     1. ออกแบบวงจร (วาดผังวงจร) โดยใช้ไดโอดเปล่งแสงอินฟราเรดและโฟโต้ทรานซิสเตอร์ 1 ชุด พร้อม
ตัวต้านทานตามที่กำหนดให้ แล้วนำสัญญาณเอาต์พุตของวงจรส่วนนี้ ไปต่อเข้าที่ขาอินพุต A1 ของ
บอร์ด Arduino และให้มีวงจรไดโอดเปล่งแสง (LED) พร้อมตัวต้านทานจำกัดกระแส 330Ω หรือ
470Ω ที่ต่อกับขาเอาต์พุต D5 ของบอร์ด Arduino เพื่อใช้เป็นเอาต์พุตในการแสดงผล
     2. ต่อวงจรตามผังวงจรที่ได้วาดไว้บนเบรดบอร์ด ให้ใช้แรงดันไฟเลี้ยง VCC=+5V และ Gnd
จากบอร์ด Arduino เท่านั้น
     3. เขียนโค้ดสำหรับ Arduino ให้แสดงพฤติกรรมดังนี้ เมื่อมีวัตถุเข้าใกล้ (อยู่เหนือ) ตัวส่งและตัวรับแสงอินฟราเรดของวงจร (เช่น ที่ระยะห่างประมาณ 10 cm หรือน้อยกว่า) จะทำให้ LED เริ่มกระพริบ
ด้วยความถี่ต่ำ (อย่างช้าๆ) แต่ถ้าวัตถุเข้าใกล้มากขึ้น LED จะกระพริบด้วยความถี่สูงขึ้น แต่ถ้าไม่มี
วัตถุอยู่ในระยะใกล้ LED จะต้องไม่ติด (ไม่กระพริบ) ให้ทดลองกับวัตถุต่างสีกัน เช่น สีขาวและสีดำ
     4. เขียนรายงานการทดลอง ซึ่งประกอบด้วยคำอธิบายการทดลองตามขั้นตอน ผังวงจรที่ถูกต้อง
ครบถ้วนตามหลักไฟฟ้า (ให้วาดด้วยโปรแกรม Cadsoft Eagle) รูปถ่ายของการต่อวงจรบน
เบรดบอร์ด และตอบคำถามท้ายการทดลอง

โค้ดที่ใช้ในการทดลอง
const byte IR_LED = A1;
const byte LED = 5;

void setup() {
  pinMode(IR_LED, INPUT);
  pinMode(LED, OUTPUT);
  digitalWrite(LED, LOW);
  analogReference(DEFAULT);
  Serial.begin(9600);
}

void loop() {
  int value = analogRead(IR_LED);
  Serial.println(value);
  delay(100);

  if (value > 310) {
    digitalWrite(LED, HIGH);
    delay(1024 - (value));
    digitalWrite(LED, LOW);
    delay(1024 - (value));
  } else {
    digitalWrite(LED, LOW);
  }

}



คำถามท้ายการทดลอง
1. ในการทดลอง ถ้าใช้วัตถุต่างสีกัน จะมีผลต่อการทำงานของวงจรที่แตกต่างกันหรือไม่ จงอธิบาย
-  มีผล วัตถุสีขาวจะสะท้อนแสงจากอินฟาเรดไปยังโฟโต้ทรานซิสเตอร์ได้ดีกว่าวัตถุสีเข้ม

วันเสาร์ที่ 27 กันยายน พ.ศ. 2557

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

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

การสร้างวงจรสร้างและควบคุมแรงไฟฟ้ากระแสตรงแบบปรับค่าได้
วัตถุประสงค์
  ฝึกออกแบบและต่อวงจรสร้างและควบคุมแรงดันไฟฟ้ากระแสตรงแบบปรับค่าได้ โดยใช้ไอซี
LM317T เพื่อใช้เป็นแหล่งจ่ายให้วงจรอิเล็กทรอนิกส์
รายการอุปกรณ์
 1. แผงต่อวงจร (เบรดบอร์ด) 1 อัน
 2. ไอซี LM317T 1 ตัว
 3. ตัวเก็บประจุ 0.1uF และ 10uF อย่างละ 1 ตัว
 4. ตัวต้านทานค่าคงที่ เลือกค่าในช่วง 220Ω ถึง 1kΩ 1 ตัว
 5. ตัวต้านทานปรับค่าได้แบบสามขา 4.7kΩ หรือ 10kΩ 1 ตัว
 6. ไดโอด 1N4001 อย่างน้อย 1 ตัว
 7. สายไฟสำหรับต่อวงจร 1 ชุด
 8. แหล่งจ่ายแรงดันควบคุม 1 เครื่อง
 9. มัลติมิเตอร์ 1 เครื่อง
ขั้นตอนการทดลอง
1. ออกแบบวงจร วาดผังวงจร และต่อวงจรบนเบรดบอร์ด เพื่อสร้างวงจรควบคุมแรงดันแบบปรับค่าได้
โดยใช้ไอซี LM317T และอุปกรณ์ตามรายการที่ได้ระบุไว้ (ศึกษาตัวอย่างวงจรได้จากดาต้าชีท
LM317T และจากอินเทอร์เน็ต)
2. ใช้แรงดันจากแหล่งจ่ายภายนอก โดยป้อนแรงดัน +9V เป็นแรงดันอินพุต และปรับค่าตัวต้านทาน
ปรับค่าได้ในวงจร ให้ได้แรงดันเอาต์พุต +5V และ +3.3V ตามลำดับ ตรวจสอบและวัดระดับแรงดัน
เอาต์พุตด้วยมัลติมิเตอร์
ผลการทดลอง





วันศุกร์ที่ 19 กันยายน พ.ศ. 2557

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

การทดลองที่ 4.4 สัญญาณอินพุต-แอนะล็อกและการใช้งานร่วมกับบอร์ด Arduino


วัตถุประสงค์
1. ฝึกต่อวงจรเพื่อสร้างสัญญาณแอนะล็อก และป้อนให้บอร์ด Arduino เพื่อใช้เป็นสัญญาณอินพุต
2. เขียนโปรแกรมสําหรับ Arduino เพื่อเปิด/ปิด LED ตามสภาวะแสง

รายการอุปกรณ์
1. แผงต่อวงจร (เบรดบอร์ด)    1 อัน
2. บอร์ด Arduino (ใช้แรงดัน +5V)   1 บอร์ด
3. ตัวต้านทานปรับค่าได้ 10kΩ หรือ 20kΩ  1 ตัว
4. ตัวต้านทานไวแสง LDR    1 ตัว
5. ไดโอดเปล่งแสงขนาด 5 มม.   1 ตัว
6. ตัวต้านทาน 330Ω หรือ 470Ω   1 ตัว
7. ตัวต้านทาน 10kΩ    1 ตัว
8. สายไฟสําหรับต่อวงจร    1 ชุด
9. มัลติมิเตอร์     1 เครื่อง

ขั้นตอนการทดลอง
1. ต่อวงจรตามผังวงจรในรูปที่ 4.4.1 บนเบรดบอร์ด ร่วมกับบอร์ด Arduino โดยใช้แรงดันไฟเลี้ยง VCC=+5V และ Gnd จากบอร์ด Arduino เท่านั้น (ต่อวงจรบนเบรดบอร์ดก่อน จากนั้นจึงเชื่อมต่อ สัญญาณอนิพุตและเอาต์พุตของบอร์ด Arduino เมื่อตรวจสอบความถูกต้อง แล้วจึงป้อนแรงดันไฟ เลี้ยงและ Gnd ตามลําดับ)

2. เขียนโปรแกรมตามตัวอย่างโค้ดที่กําหนดให้ และทําขั้นตอน Upload จากนั้นให้ทดลองหมุนปรับค่าที่ ตัวต้านทานปรับค่าได้ หรือปิดบริเวณส่วนรบัแสงของ LDR เปิดหน้าต่าง Serial Monitor ของ Arduino IDE แล้วสังเกตข้อความที่ถูกส่งมาจากบอร์ด Arduino

3. ปรับแก้โค้ดตัวอย่าง เพื่อให้วงจรและบอร์ด Arduino แสดงพฤติกรรมดังนี้ ถ้าปิดส่วนรับแสงของตัว ต้านทานไวแสง LDR หรือมปีริมาณแสงนอ้ยลง จะทําให้ LED1 “สว่าง” แต่ถ้า LDR ได้รับแสงตาม สภาวะแสงปรกติ หรือได้รับปริมาณแสงมาก จะทําให้ LED1 “ไม่ติด”

4. เขียนรายงานการทดลอง ซงึ่ประกอบด้วยคําอธบิายการทดลองตามขั้นตอน ผงัวงจรที่ถูกต้อง ครบถ้วนตามหลักไฟฟา้ (ให้วาดด้วยโปรแกรม Cadsoft Eagle) รูปถ่ายของการตอ่วงจรบน เบรดบอร์ด โค้ด Arduino ที่ได้ทดลองจรงิพร้อมคาํอธิบายโค้ด/การทํางานของโปรแกรมโดย ละเอียด และตอบคําถามทา้ยการทดลอง
ผลการทดลอง 

โค้ดข้อ 4.4.2

โค้ดข้อ 4.4.3

คำถามท้ายการทดลอง
1. ค่าที่ได้ (เลขจํานวนเต็ม) จากบอร์ด Arduino สําหรับสญัญาณอินพุตที่ขา A1 มีค่าอยู่ในช่วงใด (ต่ําสุด-สูงสุด)
ตอบ 340 - 970

2. จะต้องปรับแก้โค้ดอย่างไรสําหรับบอร์ด Arduino ถ้าจะทําให้ LED1 มีความสว่างมากน้อยได้ตาม ปริมาณแสงที่ได้รับ เช่น ถ้า LDR ได้แสงสวา่งน้อย จะทําให้ LED1 สว่างมาก แต่ถ้า LDR ได้แสง สว่างมาก จะทําให้ LED1สว่างน้อย หรือไม่ติดเลย
 -
const byte LDR_PIN = A1;
const byte VREF_PIN = A2;
const byte LED1_PIN = 5;
void setup() {
  pinMode(LED1_PIN, OUTPUT);
  digitalWrite(LED1_PIN, LOW);
  analogReference(DEFAULT);
  Serial.begin(9600);
}

void loop() {
  int value1 = analogRead(LDR_PIN);
  int value2 = analogRead(VREF_PIN);
  Serial.print("READ");
  Serial.print(value1, DEC);
  Serial.print(",");
  Serial.println(value2, DEC);
  delay(100);

  if (value1 <= value2) {
    analogWrite(LED1_PIN, 255-analogRead(LDR_PIN));
  }
}

วันศุกร์ที่ 12 กันยายน พ.ศ. 2557

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

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

การต่อวงจรไอซีเปรียบเทียบแรงดัน


วัตถุประสงค์

1. ฝึกต่อวงจรเพื่อสร้างแรงดันอ้างอิง โดยใช้ตัวต้านทานปรับค่าได้(Trimpot/Potentiometer)แบบ 3 ขา
2. ฝึกต่อวงจรโดยใช้ไอซีที่มีตัวเปรียบเทียบแรงดัน (Voltage Comparator) อยู่ภายใน เช่น เบอร์ LM393N (ตัวถังแบบ PDIP-8)

รายการอุปกรณ์


  1. ไอซีเปรียบเทียบแรงดัน เบอร์ LM939N                                       
  2. ตัวต้านทานปรับค่าได้แบบ 3 ขา ขนาด 10 kΩ หรือ 20 kΩ           
  3. ตัวต้านทาน 4.7 kΩ หรือ 10 kΩ (สำหรับ Pull-Up)                       
  4. ตัวต้านทาน 330Ω หรือ 470 Ω                                                     
  5. ไดโอดเปล่งแสง (LED) ขนาด 5 มม.                                           
  6. สายไฟสำหรับต่อวงจร                                                                  
  7. แผงต่อวงจร (เบรดบอร์ด)                                                             
  8. มัลติมิเตอร์                                                                                   
  9. แหล่งจ่ายควบคุมแรงดัน                                                              
  10. เครื่องกำเนิดสัญญาณแบบดิจิทัล                                                  
  11. ออสซิลโลสโคปแบบดิจิทัล                                                         


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

1. ต่อวงจรโดยใช้ตัวต้านทานปรับค่าได้ แล้วป้อนแรงดันไฟเลี้ยง VCC=+5V และ Gnd จากแหล่งจ่ายแรงดันควบคุม ไปยังวงจรบนเบรดบอร์ด
2. ใช้มัลติมิเตอร์วัดแรงดันระหว่างจุด Vx กับ Gnd และทดลองหมุนปรับค่าที่ตัวต้านทาน สังเกตและจดบันทึกค่าแรงดันต่ําสุดและแรงดันสูงสุดที่วัดได้
3. ต่อวงจรบนเบรดบอร์ด โดยใช้ไอซี LM393N (เลือกใช้ตัวเปรียบเทียบแรงดันที่อยู่ภายในตัวใดตัวหนึ่งจากที่มีอยู่สองตัว)
4. สร้างสัญญาณแบบสามเหลี่ยม(Triangular Wave) ให้อยู่ในช่วงแรงดัน0 V ถึง 5 V โดยใช้เครื่องกําเนิดสัญญาณ (Function Generator) โดยกําหนดให้Vpp = 5 V(Peak-to-Peak Voltage) และ แรงดัน Offset = 2.5 V และความถี่ f  = 1 kHz เพื่อใช้เป็นสัญญาณอินพุต Vin แล้วนําไปป้อนให้ขา V- ของตัวเปรียบเทียบแรงดันที่ได้เลือกใช้
5. ใช้ออสซิลโลสโคปวัดสัญญาณ โดยใช้ช่อง A สําหรับวัดสัญญาณที่มาจากเครื่องกําเนิดสัญญาณ (Vin) และช่อง B สําหรับวัดสัญญาณเอาต์พุต (Vout) ที่ขาของตัวเปรียบเทียบแรงดันที่ได้เลือกใช้
6. ทดลองหมุนปรับค่าที่ตัวต้านทานปรับค่าได้ วัดแรงดัน Vref และสังเกตการเปลี่ยนแปลงค่า Duty Cycle ของรูปคลื่นสัญญาณเอาต์พุต
7. สลับขาสัญญาณอินพุตที่ขา V+ และ V- (ตามผังวงจรในรูปที่ 4.1.3) แล้ วทําขั้นตอนที่6 ถึง7 ซ้ำ


ผลการทดลอง

เมื่อยังไม่ได้ปรับค่าความต้านทาน

เมื่อทดลองหมุนปรับค่าความทาน สัญญาณแรงดันเอาต์พุต(Vout) มีการเปลี่ยนแปลง

สลับขาสัญญาณอินพุตที่ขา V+ และ V- 


คําถามท้ายการทดลอง 

1. ระดับของแรงดันอ้างอิง(Vref) ที่ได้จากตัวต้านทานปรับค่าได้ เพื่อใช้ในการเปรียบเทียบแรงดัน มีความสัมพันธ์ อย่างไรกับระดับของแรงดันเอาต์พุต(Vout) ที่ได้จากตัวเปรียบเทียบแรงดัน และค่า Duty Cycle ของสัญญาณเอาต์พุตที่วัดได้ จงอธิบาย 
- สัญญาณแรงดันเอาต์พุตจะมีค่าสถานะทางโลจิกเป็น 1 เมื่อป้อนแรงดันอินพุต V+ มากกว่า V- เมื่อปรับค่าความต้านทานมากขึ้นจะทำให้ Vref มากขึ้น แต่ Vin คงที่ มีทำผลทำให้ช่วงที่สัญญาณเอาต์พุตออกมาได้ลอจิก 1 ย่อลงและค่า Duty Cycle ก็มากขึ้น และถ้าปรับค่าความต้านทานน้อยลงจะทำให้ Vref น้อยตาม จะทำให้ช่วงที่สัญญาณเอาต์พุตออกมาได้ลอจิก 1 ขยายออก ค่า Duty Cycle ก็น้อยลง 
2. ถ้าจะให้สัญญาณเอาต์พุต Voutมีค่า Duty Cycle ประมาณ 50% จะต้องหมุนปรับค่าที่ตัว ต้านทานปรับค่าได้ ให้มีแรงดัน Vrefประมาณเท่าใด 
- 2.28 V
3. เมื่อหมุนปรับค่าที่ตัวต้านทานปรับค่าได้ จากซ้ายสุดไปขวาสุด จะได้ค่า Vref อยู่ในช่วง 0 ถึง 5 โวลต์ และได้ค่า Duty Cycle ของสัญญาณเอาต์พุตอยู่ในช่วง 0 ถึง 78 เปอร์เซ็นต์

วันศุกร์ที่ 5 กันยายน พ.ศ. 2557

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

การทดลองที่ 3.4
การสร้างสัญญาณเอาต์พุตตามจังหวะสัญญาณอินพุตด้วย Arduino
วัตถุประสงค์
1.สร้างสัญญาณจากเครื่องกำเนิดสัญญาณดิจิทัลแบบมีคาบ เพื่อป้อนเป็นอินพุตให้บอร์ด Arduino
2.เขียนโค้ดสำหรับ Arduino เพื่อประมวลผลสัญญาณดิจิทัลจากอินพุต และสร้างสัญญาณเอาต์พุตตามเงื่อนไขที่กำหนดให้

รายการอุปกรณ์
1.แผงต่อวงจร
2.บอร์ด Arduino
3.ตัวต้านทาน 100/150 ohm
4.ตัวต้านทาน 330/470 ohm
5.ไดโอดเปล่าแสง
6.สายไฟสำหรับต่อวงจร
7.เครื่องกำเนิดสัญญาณ
8.ออสซิลโลสโคป

ขั้นตอนการทดลอง
1.สร้างสัญญาณดิจิทับแบบมีคาบมีรูปสัญญาณสี่เหลี่นม หรือแบบ Pulse มีคสามถี่ 10Hz จากเครื่องกำเนิดสัญญาณ โดยต่อผ่านตัวต้านทาน 100/150 ohm ไปยังขา D3 ของบอร์ด Arduino เพื่อใช้เป็นอินพุต
2.ต่อวงจร LED พร้อมตัวต้านทานจำกัดกระแสที่ขา D5 ของบอร์ด Arduino เพื่อใช้เป็นสถานะ
3.เขียนโค้ด Arduino Sketch เพื่อทำให้หลอด LED บนแผงวงจร กระพริบตามความถี่ของสัญญาณอินพุต
4.ปรับความถี่ของสัญญาณอินพุตในช่วง 5Hz .. 20Hz (เพิ่มทีละ 5Hz)และใช้ออสซิลโลสโคป 2 ช่องวัดสัญญาณอินพุตที่ขา D3 และสัญญาณเอาต์พุตที่ขา D5 พร้อมกัน และบันทึกรูปคลื่นสัญญาณที่ได้สำหรับความถี่ต่างๆในการทดลอง
5.เขียนรายงานการทดลองในการวาด และโค้ด Arduino Sketch พร้อมคำอธบายโค้ด รูปตัวอย่างที่วัดได้จากสัญญาณ และภาพถ่ายการต่อทดลองวงจรจริง

ภาพการต่อจริง


โค้ด Arduino
const byte A = 3;
const byte B = 5;

void setup(){
  pinMode(A,INPUT);
  pinMode(B,OUTPUT);
}
void loop(){
  if(digitalRead(A)==HIGH){
    digitalWrite(B,HIGH);
  }
  if(digitalRead(A)==LOW){
    digitalWrite(B,LOW);
  }
}

คลื่นสัญญาณ 5Hz
คลื่นสัญญาณ 10Hz
คลื่นสัญญาณ 15 Hz
คลื่นสัญญาณ 20Hz





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

การทดลองที่ 3.3
การต่อวงจรอินพตุ -เอาต์พุตดิจิทัลเบื้องต้นสำหรับ Arduino
วัตถุประสงค์
1.ฝึกการต่อวงจรในไอซี 74HC00N เพื่อสร้าง RS Lacth
2.เขียนโปรแกรมสำหรับArduino

รายการอุปกรณ์
1.แผงต่อวงจร
2.บอร์ดArduino
3.ไอซี 74HC00N
4.ไดโอดเปล่งแสง
5.ปุ่มกดแบบสี่ขา
6.ตัวต้านทาน  330/470 ohm
7.ตัวต้านทาน 10 k ohm
8.สายไฟสำหรับต่อวงจร
9.มัลติมิเตอร์
10.แหล่งจ่ายแรงดัน

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


โค้ด Arduino ข้อ 3
const byte SW1 = 2;
const byte SW2 = 3;
const byte LED1 = 4;
const byte LED2 = 5;

void setup(){
 pinMode(SW1,INPUT);
 pinMode(SW2,INPUT);
 pinMode(LED1,OUTPUT);
 pinMode(LED2,OUTPUT);
 digitalWrite(LED1,HIGH);
}

void loop(){
 if(digitalRead(SW1)==LOW){
  digitalWrite(LED1,HIGH);
  digitalWrite(LED2,LOW);
}
 if(digitalRead(SW2)==LOW){
  digitalWrite(LED1,LOW);
  digitalWrite(LED2,HIGH);
}
 if(digitalRead(SW1)==LOW && digitalRead(SW2)==LOW){
  digitalWrite(LED1,HIGH);
  digitalWrite(LED2,HIGH);
}
}


ผลที่ได้จากการทดลอง