เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 43
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 44 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตเอาต์พุต ขั้นตอนกำรปฏิบัติกำรปฏิบัติ 9.1 วงจรเขียนโปรแกรมไฟวิ่ง LED 4 ตัวติดดับเรียงกันไปโดยให้ติดครั้งละ 1 ตัวและที่เหลือ ดับในการทดลอง ใช้ Arduino ในการทดลอง ต่อวงจรดังรูป รูปที่ 9-1 วงจรที่ใช้บอร์ด Arduino ในการทดลอง การต่อวงจรไมโครคอนโทรลเลอร์ Arduino ที่ใช้บอร์ดโมดูล Arduino ส าเร็จรูปลงบอร์ดทดลอง รูปที่ 9-2 การต่อลงบอร์ดทดลอง
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 45 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตเอาต์พุต 9.2 โปรแกรมจ าลองการท างานของวงจรเขียนโปรแกรมไฟวิ่ง LED 4 ตัวติดดับเรียงกันไป โดยให้ติดครั้งละ 1 ตัวและที่เหลือดับ ในการทดลอง รูปที่9-3 การต่อวงจรทดลองในโปรแกรมจ าลองการท างาน ขั้นตอนการต่อวงจรในโปรแกรมจ าลอง 1. เข้าโปรแกรม Proteus ท าการเลือกอุปกรณ์ที่จะใช้ โดยคลิกที่รูปตัว P แล้วพิมพ์ชื่อ อุปกรณ์ ที่จะใช้ จากนั้น ดับเบิ้ลคลิกที่อุปกรณ์ที่เราต้องการ ท าการเลือก Simulino Uno โดยการ พิมพ์ Simulino Uno ลงในช่อง Keyword แล้วเลือก Simulino Uno แบบที่เราต้องใช้งาน รูปที่ 9-4 การเลือกอุปกรณ์ Simulino Uno ในโปรแกรม Proteus
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 46 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตเอาต์พุต 2. ท าการเลือก Resistor โดยการพิมพ์ RES ลงในช่อง Keyword แล้วเลือก Resistor แบบที่ เราต้องใช้งาน รูปที่ 9-5 การเลือกอุปกรณ์ Resistor ในโปรแกรม Proteus 3. ท าการเลือก LED โดยการพิมพ์ LED ลงในช่อง Keyword แล้วเลือก LED แบบที่เรา ต้องใช้งาน รูปที่ 9-6 การเลือกอุปกรณ์ LED ในโปรแกรม Proteus
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 47 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตเอาต์พุต 4. จากนั้นน าอุปกรณ์ที่เลือกไว้มาท าการต่อวงจร รูปที่ 9-7 การต่อวงจรจากอุปกรณ์ที่เลือก 5. ท าการต่อ Ground ให้กับวงจร โดยคลิกที่ ไอคอน Terminals Mode แล้วคลิกที่ Ground รูปที่ 9-8 การต่อ Ground ให้กับวงจร
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 48 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตเอาต์พุต 9.3 การเขียนโปรแกรมควบคุมการท างาน 9.3.1 ผังการท างานของโปรแกรม การทดลองที่ 1 เขียนโปรแกรมไฟวิ่ง LED 4 ตัวติดดับเรียงกันไปโดยให้ติดครั้งละ 1 ตัว และที่เหลือดับ ผังงาน จากโจทย์สามารถเขียนเป็นผังงานได้ดังนี้ การทดลองที่ 2 เขียนโปรแกรมไฟวิ่ง LED 4 ตัวติดดับเรียงกันไปโดยให้ติดครั้งละ 1 ตัว และที่เหลือดับ เช่นเดียวกับการทดลองที่หนึ่ง แต่ใช้วิธีการเขียนฟังก์ชันขึ้นใช้งานเองชนิดรับค่า แต่ไม่ส่งคืนค่า ผังงาน จากโจทย์สามารถเขียนเป็นผังงานได้ดังนี้
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 49 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตเอาต์พุต 9.3.2 เขียนโปรแกรมควบคุมการท างาน การทดลองที่ 1 เขียนโปรแกรมไฟวิ่ง LED 4 ตัวติดดับเรียงกันไปโดยให้ติดครั้งละ 1 ตัวและที่เหลือ ดับ #define LED1 8 #define LED2 9 #define LED3 10 #define LED4 11 void setup() { Serial.begin(9600); pinMode(LED1,OUTPUT); pinMode(LED2,OUTPUT); pinMode(LED3,OUTPUT); pinMode(LED4,OUTPUT); } void loop() { digitalWrite(LED1,HIGH); digitalWrite(LED2,LOW); digitalWrite(LED3,LOW); digitalWrite(LED4,LOW); delay(200); digitalWrite(LED1,LOW); digitalWrite(LED2,HIGH); digitalWrite(LED3,LOW); digitalWrite(LED4,LOW); delay(200); digitalWrite(LED1,LOW); digitalWrite(LED2,LOW); digitalWrite(LED3,HIGH); digitalWrite(LED4,LOW); delay(200); digitalWrite(LED1,LOW); digitalWrite(LED2,LOW); digitalWrite(LED3,LOW); digitalWrite(LED4,HIGH); delay(200); }
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 50 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตเอาต์พุต การทดลองที่ 2 เขียนโปรแกรมไฟวิ่ง LED 4 ตัวติดดับเรียงกันไปโดยให้ติดครั้งละ 1 ตัวและ ที่เหลือดับ เช่นเดียวกับการทดลองที่หนึ่ง แต่ใช้วิธีการเขียนฟังก์ชันขึ้นใช้งานเองชนิดรับค่าแต่ไม่ส่งคืน ค่า char LED_pin[] = {8,9,10,11}; void send2port(byte data); void setup() { Serial.begin(9600); for(char i=0;i<4;i++) { pinMode(LED_pin[i],OUTPUT); } } void loop() { send2port(0B1000); delay(200); send2port(0B0100); delay(200); send2port(0B0010); delay(200); send2port(0B0001); delay(200); } void send2port(byte data) { if (data &1 ){digitalWrite(LED_pin[0],HIGH);} else {digitalWrite(LED_pin[0],LOW);} if (data &2 ){digitalWrite(LED_pin[1],HIGH);} else {digitalWrite(LED_pin[1],LOW);} if (data &4 ){digitalWrite(LED_pin[2],HIGH);} else {digitalWrite(LED_pin[2],LOW);} if (data &8 ){digitalWrite(LED_pin[3],HIGH);} else {digitalWrite(LED_pin[3],LOW);} }
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 51
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 52 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับค่าจากพอร์ตดิจิตอล ขั้นตอนกำรปฏิบัติกำรปฏิบัติ 10.1 วงจรเขียนโปรแกรมการติดดับของ LED จ านวน 2 ตัว ใช้สวิตช์ 4 ตัวควบคุมในการ ทดลอง ใช้ Arduino ในการทดลอง ต่อวงจรดังรูป รูปที่ 10-1 วงจรที่ใช้บอร์ด Arduino ในการทดลอง การต่อวงจรไมโครคอนโทรลเลอร์ Arduino ที่ใช้บอร์ดโมดูล Arduino ส าเร็จรูปลงบอร์ดทดลอง รูปที่ 10-2 การต่อลงบอร์ดทดลอง
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 53 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับค่าจากพอร์ตดิจิตอล 10.2 โปรแกรมจ าลองการท างานของวงจรเขียนโปรแกรมการติดดับของ LED จ านวน 2 ตัว ใช้สวิตช์ 4 ตัวควบคุมในการทดลอง รูปที่10-3 การต่อวงจรทดลองในโปรแกรมจ าลองการท างาน ขั้นตอนการต่อวงจรในโปรแกรมจ าลอง 1. เข้าโปรแกรม Proteus ท าการเลือกอุปกรณ์ที่จะใช้ โดยคลิกที่รูปตัว P แล้วพิมพ์ชื่อ อุปกรณ์ ที่จะใช้ จากนั้น ดับเบิ้ลคลิกที่อุปกรณ์ที่เราต้องการ ท าการเลือก Simulino Uno โดยการ พิมพ์ Simulino Uno ลงในช่อง Keyword แล้วเลือก Simulino Uno แบบที่เราต้องใช้งาน รูปที่ 10-4 การเลือกอุปกรณ์ Simulino Uno ในโปรแกรม Proteus
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 54 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับค่าจากพอร์ตดิจิตอล 2. ท าการเลือก Resistor โดยการพิมพ์ RES ลงในช่อง Keyword แล้วเลือก Resistor แบบที่ เราต้องใช้งาน รูปที่ 10-5 การเลือกอุปกรณ์ Resistor ในโปรแกรม Proteus 3. ท าการเลือก LED โดยการพิมพ์ LED ลงในช่อง Keyword แล้วเลือก LED แบบที่เรา ต้องใช้งาน รูปที่ 10-6 การเลือกอุปกรณ์ LED ในโปรแกรม Proteus
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 55 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับค่าจากพอร์ตดิจิตอล 4. ท าการเลือก สวิตช์โดยการพิมพ์ Button ลงในช่อง Keyword แล้วเลือก Button แบบที่ เราต้องใช้งาน รูปที่ 10-7 การเลือกอุปกรณ์ Button ในโปรแกรม Proteus 4. จากนั้นน าอุปกรณ์ที่เลือกไว้มาท าการต่อวงจร รูปที่ 10-8 การต่อวงจรจากอุปกรณ์ที่เลือก
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 56 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับค่าจากพอร์ตดิจิตอล 5. ท าการต่อ Ground ให้กับวงจร โดยคลิกที่ ไอคอน Terminals Mode แล้วคลิกที่ Ground รูปที่ 10-9 การต่อ Ground ให้กับวงจร 10.3 การเขียนโปรแกรมควบคุมการท างาน 10.3.1 ผังการท างานของโปรแกรม การทดลองที่ 1 เขียนโปรแกรมการติดดับของ LED จ านวน 2 ตัวใช้สวิตช์ 4 ตัวควบคุม โดยให้ SW1 สั่ง LED1 ติด SW2 สั่ง LED1 ดับและให้ SW3 สั่ง LED2 ติด SW4 สั่ง LED2 ดับ ผังงาน จากโจทย์สามารถเขียนเป็นผังงานได้ดังนี้
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 57 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับค่าจากพอร์ตดิจิตอล การทดลองที่ 2 เขียนโปรแกรมควบคุมการติดดับของ LED โดยเมื่อ SW1 ถูกกดให้ LED1 ติด SW2 ถูกกดให้ LED2 ติด SW3 ลูกกดให้ LED3 ติด SW4 ลูกกดให้ LED ดับทุกตัวและในขณะที่ กดสวิตช์ต้องมีการแสดงข้อความแสดงว่าสวิตช์นั้น ๆ ถูกกดและสถานะของการติดดับของ LED และ ให้เขียนโค้ด ตรวจจับการปล่อยคีย์ก่อนที่จะออกนอกลูป ผังงาน จากโจทย์สามารถเขียนเป็นผังงานได้ดังนี้
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 58 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับค่าจากพอร์ตดิจิตอล 10.3.2 เขียนโปรแกรมควบคุมการท างาน การทดลองที่ 1 เขียนโปรแกรมการติดดับของ LED จ านวน 2 ตัวใช้สวิตช์ 4 ตัวควบคุม โดยให้ SW1 สั่ง LED1 ติด SW2 สั่ง LED1 ดับและให้ SW3 สั่ง LED2 ติด SW4 สั่ง LED2 ดับ #define LED1 10 #define LED2 11 #define LED3 12 #define LED4 13 #define SW1 2 #define SW2 3 #define SW3 4 #define SW4 5 void setup() { pinMode(LED1,OUTPUT); pinMode(LED2,OUTPUT); pinMode(LED3,OUTPUT); pinMode(LED4,OUTPUT); pinMode(SW1,INPUT_PULLUP); pinMode(SW2,INPUT_PULLUP); pinMode(SW3,INPUT_PULLUP); pinMode(SW4,INPUT_PULLUP); Serial.begin(9600); } void loop() { if(digitalRead(SW1)==LOW){ digitalWrite(LED1,HIGH); Serial.println("SW1 is pressed & LED1 ON"); while(digitalRead(SW1)==LOW); } else if(digitalRead(SW2)==LOW){ digitalWrite(LED1,LOW); Serial.println("SW1 is pressed & LED1 OFF"); while(digitalRead(SW2)==LOW); } else if(digitalRead(SW3)==LOW){ digitalWrite(LED2,HIGH); Serial.println("SW3 is pressed & LED2 ON"); while(digitalRead(SW3)==LOW); } else if(digitalRead(SW4)==LOW){ digitalWrite(LED2,LOW); Serial.println("SW3 is pressed & LED2 OFF"); while(digitalRead(SW3)==LOW); } }
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 59 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับค่าจากพอร์ตดิจิตอล การทดลองที่ 2 เขียนโปรแกรมควบคุมการติดดับของ LED โดยเมื่อ SW1 ถูกกดให้ LED1 ติด SW2 ถูกกดให้ LED2 ติด SW3 ลูกกดให้ LED3 ติด SW4 ลูกกดให้ LED ดับทุกตัวและในขณะที่ กดสวิตช์ต้องมีการแสดงข้อความแสดงว่าสวิตช์นั้น ๆ ถูกกดและสถานะของการติดดับของ LED และ ให้เขียนโค้ด ตรวจจับการปล่อยคีย์ก่อนที่จะออกนอกลูป #define LED1 10 #define LED2 11 #define LED3 12 #define LED4 13 #define SW1 2 #define SW2 3 #define SW3 4 #define SW4 5 void setup() { pinMode(LED1,OUTPUT); pinMode(LED2,OUTPUT); pinMode(LED3,OUTPUT); pinMode(LED4,OUTPUT); pinMode(SW1,INPUT_PULLUP); pinMode(SW2,INPUT_PULLUP); pinMode(SW3,INPUT_PULLUP); pinMode(SW4,INPUT_PULLUP); Serial.begin(9600); } void loop() { if(digitalRead(SW1)==LOW){ digitalWrite(LED1,HIGH); Serial.println("SW1 is pressed & LED1 ON"); while(digitalRead(SW1)==LOW); } else if(digitalRead(SW2)==LOW){ digitalWrite(LED2,HIGH); Serial.println("SW2 is pressed & LED2 ON"); while(digitalRead(SW2)==LOW); } else if(digitalRead(SW3)==LOW){ digitalWrite(LED3,HIGH); Serial.println("SW3 is pressed & LED3 ON"); while(digitalRead(SW3)==LOW); } else if(digitalRead(SW4)==LOW){ digitalWrite(LED1,LOW); digitalWrite(LED2,LOW); digitalWrite(LED3,LOW); digitalWrite(LED4,LOW); Serial.println("SW4 is pressed & All LED is OFF"); while(digitalRead(SW4)==LOW); } }
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 60
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 61 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตอะนาลอก ขั้นตอนกำรปฏิบัติกำรปฏิบัติ 11.1 วงจรเขียนโปรแกรมความสว่างแก่ LED จ านวน 2 ตัว ที่อยู่ที่ขา D7, D8 ในการ ทดลอง ใช้ Arduino ในการทดลอง ต่อวงจรดังรูป รูปที่ 11-1 วงจรที่ใช้บอร์ด Arduino ในการทดลอง การต่อวงจรไมโครคอนโทรลเลอร์ Arduino ที่ใช้บอร์ดโมดูล Arduino ส าเร็จรูปลงบอร์ดทดลอง รูปที่ 11-2 การต่อลงบอร์ดทดลอง
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 62 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตอะนาลอก 11.2 โปรแกรมจ าลองการท างานของวงจรเขียนโปรแกรมความสว่างแก่ LED จ านวน 2 ตัว ที่อยู่ที่ขา D7, D8 ในการทดลอง รูปที่11-3 การต่อวงจรทดลองในโปรแกรมจ าลองการท างาน ขั้นตอนการต่อวงจรในโปรแกรมจ าลอง 1. เข้าโปรแกรม Proteus ท าการเลือกอุปกรณ์ที่จะใช้ โดยคลิกที่รูปตัว P แล้วพิมพ์ชื่อ อุปกรณ์ ที่จะใช้ จากนั้น ดับเบิ้ลคลิกที่อุปกรณ์ที่เราต้องการ ท าการเลือก Simulino Uno โดยการ พิมพ์ Simulino Uno ลงในช่อง Keyword แล้วเลือก Simulino Uno แบบที่เราต้องใช้งาน รูปที่ 11-4 การเลือกอุปกรณ์ Simulino Uno ในโปรแกรม Proteus
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 63 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตอะนาลอก 2. ท าการเลือก Resistor โดยการพิมพ์ RES ลงในช่อง Keyword แล้วเลือก Resistor แบบที่ เราต้องใช้งาน รูปที่ 11-5 การเลือกอุปกรณ์ Resistor ในโปรแกรม Proteus 3. ท าการเลือก LED โดยการพิมพ์ LED ลงในช่อง Keyword แล้วเลือก LED แบบที่เรา ต้องใช้งาน รูปที่ 11-6 การเลือกอุปกรณ์ LED ในโปรแกรม Proteus
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 64 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตอะนาลอก 4. ท าการเลือก ตัวต้านทานแบบปรับค่าได้โดยการพิมพ์ Pot-HG ลงในช่อง Keyword แล้ว เลือก Pot-HG แบบที่เราต้องใช้งาน รูปที่ 11-7 การเลือกอุปกรณ์ Pot-HG ในโปรแกรม Proteus 5. จากนั้นน าอุปกรณ์ที่เลือกไว้มาท าการต่อวงจร รูปที่ 11-8 การต่อวงจรจากอุปกรณ์ที่เลือก
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 65 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตอะนาลอก 6. ท าการต่อ Ground ให้กับวงจร โดยคลิกที่ ไอคอน Terminals Mode แล้วคลิกที่ Ground รูปที่ 11-9 การต่อ Ground ให้กับวงจร 7. ท าการต่อ Oscilloscope ให้กับวงจร โดยคลิกที่ ไอคอน Instrument Mode แล้วคลิกที่ Oscilloscope รูปที่ 11-10 การต่อ Oscilloscope ให้กับวงจร
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 66 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตอะนาลอก 11.3 การเขียนโปรแกรมควบคุมการท างาน 11.3.1 ผังการท างานของโปรแกรม การทดลองที่ 1 เขียนโปรแกรมควบคุมระดับความสว่างของ LED ที่ต่ออยู่ที่ขาพอร์ตดิจิตอล D7 ซึ่งเป็นขาที่สามารถส่งสัญญาณ PWM ออกมาได้ด้วยค าสั่ง analogWrite(pin,value) โดยควบคุม ความสว่างด้วยโพเทนชิโอมิเตอร์ที่ต่ออยู่ที่ขาพอร์ตอะนาลอก A4 ซึ่งค่าที่อ่านได้จะมีค่าอยู่ระหว่าง 0- 1023 แต่ค่าที่ใช้ควบคุมดิวตี้ไซเคิลอยู่ระหว่าง 0-255 การด าเนินการลดค่าให้ใช้ค่าที่อ่านได้หารด้วย 4 ก่อนเอาไปใช้งาน ผังงาน จากโจทย์สามารถเขียนเป็นผังงานได้ดังนี้ การทดลองที่ 2 เขียนโปรแกรมควบคุมการความสว่างแก่ LED จ านวน 2 ตัวที่อยู่ที่ขา D7, D8 ซึ่งเป็นขา ที่สามารถส่งสัญญาณ PWM ได้ โดยใช้โพเทนชิโอมิเตอร์เป็นตัวปรับความสว่างโดยให้ LED ทั้งสองตัว มีความสว่างที่ตรงข้ามกัน โดยให้มีการแสดงค่าสัญญาณอะนาลอกที่อ่านได้จากขาที่ ต่อโพเทนชิโอมิเตอร์ออกทางพอร์ตอนุกรมแสดงผลที่จอคอมพิวเตอร์ ผังงาน จากโจทย์สามารถเขียนเป็นผังงานได้ดังนี้
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 67 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตอะนาลอก 11.3.2 เขียนโปรแกรมควบคุมการท างาน การทดลองที่ 1 เขียนโปรแกรมควบคุมระดับความสว่างของ LED ที่ต่ออยู่ที่ขาพอร์ต ดิจิตอล D7 ซึ่งเป็นขาที่สามารถส่งสัญญาณ PWM ออกมาได้ด้วยค าสั่ง analogWrite(pin,value) โดยควบคุมความสว่างด้วยโพเทนชิโอมิเตอร์ที่ต่ออยู่ที่ขาพอร์ตอะนาลอก A4 ซึ่งค่าที่อ่านได้จะมีค่าอยู่ ระหว่าง 0-1023 แต่ค่าที่ใช้ควบคุมดิวตี้ไซเคิลอยู่ระหว่าง 0-255 การด าเนินการลดค่าให้ใช้ค่าที่อ่าน ได้หารด้วย 4 ก่อนเอาไปใช้งาน #define LED 7 //LED Connected to D7 #define PoT 4 //POT Connected to A4 void setup () { pinMode (LED,OUTPUT); Serial.begin(9600); } void loop() { int adc=analogRead (POT); analogWrite (LED,ade/4); }
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 68 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมพอร์ตอะนาลอก การทดลองที่ 2 เขียนโปรแกรมควบคุมการความสว่างแก่ LED จ านวน 2 ตัวที่อยู่ที่ขา D7, D8 ซึ่งเป็นขา ที่สามารถส่งสัญญาณ PWM ได้โดยใช้โพเทนชิโอมิเตอร์เป็นตัวปรับความสว่างโดยให้ LED ทั้งสองตัวมีความสว่างที่ตรงข้ามกัน โดยให้มีการแสดงค่าสัญญาณอะนาลอกที่อ่านได้จากขาที่ต่อโพ เทนชิโอมิเตอร์ออกทางพอร์ตอนุกรมแสดงผลที่จอคอมพิวเตอร์ #define LED1 7 //LED1 Connected to D7 #define LED2 8 //LED2 Connected to p8 #define POT 4 //POT Connected to A4 void setup () { pinMode(LED1, OUTPUT); pinMode (LED2, OUTPUT); Serial.begin(9600); } void loop() { int ade=analogRead (POT); Serial.print("Analog Read value : "); Serial.print(ade); adc-Inap (adc,0,1023,0,255); Serial.print(" map value to : "); Serial.println(adc); analogWrite (LED1,ade); analogWrite (LED2, 255-ade); delay(500); }
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 69
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 70 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับสวิตช์ทางพอร์ตอะนาลอก ขั้นตอนกำรปฏิบัติกำรปฏิบัติ 12.1 วงจรเขียนโปรแกรมอ่านค่าอะนาลอกจากการกดสวิตช์แต่ละตัว โดยแสดงผล ที่จอคอมพิวเตอร์ผ่านทางพอร์ตอนุกรม ในการทดลอง ใช้ Arduino ในการทดลอง ต่อวงจรดังรูป รูปที่ 12-1 วงจรที่ใช้บอร์ด Arduino ในการทดลอง การต่อวงจรไมโครคอนโทรลเลอร์ Arduino ที่ใช้บอร์ดโมดูล Arduino ส าเร็จรูปลงบอร์ดทดลอง รูปที่ 12-2 การต่อลงบอร์ดทดลอง
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 71 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับสวิตช์ทางพอร์ตอะนาลอก 12.2 โปรแกรมจ าลองการท างานของวงจรเขียนโปรแกรมอ่านค่าอะนาลอกจากการกดสวิตช์ แต่ละตัวโดยแสดงผลที่จอคอมพิวเตอร์ผ่านทางพอร์ตอนุกรมในการทดลอง รูปที่12-3 การต่อวงจรทดลองในโปรแกรมจ าลองการท างาน ขั้นตอนการต่อวงจรในโปรแกรมจ าลอง 1. เข้าโปรแกรม Proteus ท าการเลือกอุปกรณ์ที่จะใช้ โดยคลิกที่รูปตัว P แล้วพิมพ์ชื่อ อุปกรณ์ ที่จะใช้ จากนั้น ดับเบิ้ลคลิกที่อุปกรณ์ที่เราต้องการ ท าการเลือก Simulino Uno โดยการ พิมพ์ Simulino Uno ลงในช่อง Keyword แล้วเลือก Simulino Uno แบบที่เราต้องใช้งาน รูปที่ 12-4 การเลือกอุปกรณ์ Simulino Uno ในโปรแกรม Proteus
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 72 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับสวิตช์ทางพอร์ตอะนาลอก 2. ท าการเลือก Resistor โดยการพิมพ์ RES ลงในช่อง Keyword แล้วเลือก Resistor แบบที่ เราต้องใช้งาน รูปที่ 12-5 การเลือกอุปกรณ์ Resistor ในโปรแกรม Proteus 3. ท าการเลือก LED โดยการพิมพ์ LED ลงในช่อง Keyword แล้วเลือก LED แบบที่เราต้อง ใช้งาน รูปที่ 12-6 การเลือกอุปกรณ์ LED ในโปรแกรม Proteus
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 73 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับสวิตช์ทางพอร์ตอะนาลอก 4. ท าการเลือก สวิตช์แบบ Button โดยการพิมพ์ Button ลงในช่อง Keyword แล้วเลือก สวิตช์แบบที่เราต้องใช้งาน รูปที่ 12-7 การเลือกอุปกรณ์ สวิตช์ ในโปรแกรม Proteus 5. จากนั้นน าอุปกรณ์ที่เลือกไว้มาท าการต่อวงจร รูปที่ 12-8 การต่อวงจรจากอุปกรณ์ที่เลือก
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 74 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับสวิตช์ทางพอร์ตอะนาลอก 6. ท าการต่อ Ground ให้กับวงจร โดยคลิกที่ ไอคอน Terminals Mode แล้วคลิกที่ Ground รูปที่ 12-9 การต่อ Ground ให้กับวงจร 7. ท าการต่อ Power ให้กับวงจร โดยคลิกที่ ไอคอน Terminals Mode แล้วคลิกที่ Power รูปที่ 12-10 การต่อ Power ให้กับวงจร
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 75 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับสวิตช์ทางพอร์ตอะนาลอก 8. ท าการต่อ Oscilloscope ให้กับวงจร โดยคลิกที่ ไอคอน Instrument Mode แล้วคลิกที่ Oscilloscope รูปที่ 12-11 การต่อ Oscilloscope ให้กับวงจร 12.3 การเขียนโปรแกรมควบคุมการท างาน 12.3.1 ผังการท างานของโปรแกรม การทดลองที่ 1 เขียนโปรแกรมอ่านค่าอะนาลอกจากการกดสวิตซ์แต่ละตัวโดยแสดงผลที่ จอคอมพิวเตอร์ผ่านทางพอร์ตอนุกรม ผังงาน จากโจทย์สามารถเขียนเป็นผังงานได้ดังนี้
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 76 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับสวิตช์ทางพอร์ตอะนาลอก การทดลองที่ 2 เนื่องจากค่าที่อ่านจากการกดสวิตช์เข้ามาทางพอร์ตอะนาลอกมีโอกาสที่ ตัวเลขจะแกว่งได้ ดังนั้นหากเขียนโปรแกรมโดยวิธีการตรวจสอบการเท่ากันของค่าที่ก าหนดมีโอกาส จะคลาดเคลื่อนได้ ทางแก้ปัญหาการแกว่งของค่าท าได้โดยเพิ่มช่วงในการตรวจสอบแทนที่จะ ตรวจสอบเพียงค่าเดียว การทดลองนี้เป็นการทดลองการกดสวิตช์ที่รับเข้ามาทางพอร์ตอะนาลอกและ มีการเพิ่มช่วงในการตรวจสอบเป็น +30 ค่าและแสดงผลเป็นข้อความว่าสวิตช์ใดถูกกด (ค่าที่ใช้ ตรวจสอบจะต้องใช้ผลจากการทดลอง ในการทดลองที่ 1 รูปที่ 12-12 การตรวจสอบแบบค่าเดียว รูปที่ 12-13 การตรวจสอบแบบช่วง ผังงาน จากโจทย์สามารถเขียนเป็นผังงานได้ดังนี้
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 77 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับสวิตช์ทางพอร์ตอะนาลอก 12.3.2 เขียนโปรแกรมควบคุมการท างาน การทดลองที่ 1 เขียนโปรแกรมอ่านค่าอะนาลอกจากการกดสวิตซ์แต่ละตัวโดยแสดงผลที่ จอคอมพิวเตอร์ผ่านทางพอร์ตอนุกรม #define sw 2 // switch connectec A2 void setup() { Serial.begin(9600); } void loop() { int adc=analogRead(sw); Serial.print("value from sw is: "); Serial.println(adc); delay(100); }
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 78 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับสวิตช์ทางพอร์ตอะนาลอก การทดลองที่ 2 เนื่องจากค่าที่อ่านจากการกดสวิตช์เข้ามาทางพอร์ตอะนาลอกมีโอกาสที่ ตัวเลขจะแกว่งได้ ดังนั้นหากเขียนโปรแกรมโดยวิธีการตรวจสอบการเท่ากันของค่าที่ก าหนดมีโอกาส จะคลาดเคลื่อนได้ ทางแก้ปัญหาการแกว่งของค่าท าได้โดยเพิ่มช่วงในการตรวจสอบแทนที่จะ ตรวจสอบเพียงค่าเดียว การทดลองนี้เป็นการทดลองการกดสวิตช์ที่รับเข้ามาทางพอร์ตอะนาลอกและ มีการเพิ่มช่วงในการตรวจสอบเป็น +30 ค่าและแสดงผลเป็นข้อความว่าสวิตช์ใดถูกกด (ค่าที่ใช้ ตรวจสอบจะต้องใช้ผลจากการทดลอง ในการทดลองที่ 1) #define sw 2 // switch connectec A2 #define range 30 void setup() { Serial.begin(9600); } void loop() { int adc=analogRead(sw); if (adc==0) { Serial.print("SW1 is pressed : value adc is: "); Serial.println(adc); } else if(adc==415) { Serial.print("SW2 is pressed : value adc is: "); Serial.println(adc); } else if(adc==614) { Serial.print("SW3 is pressed : value adc is: "); Serial.println(adc); } else if(adc==827) { Serial.print("SW4 is pressed : value adc is: "); Serial.println(adc); } delay(100); }
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 79 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การควบคุมการรับสวิตช์ทางพอร์ตอะนาลอก แบบที่ 2 ตรวจสอบค่าที่อ่านได้ชนิดเพิ่มช่วงตรวจสอบ #define sw 2 // switch connectec A2 #define range 30 void setup() { Serial.begin(9600); } void loop() { int adc=analogRead(sw); if (adc<0+range) { Serial.print("SW1 is pressed : value adc is: "); Serial.println(adc); } else if((adc<415+range) && (adc>415-range)) { Serial.print("SW2 is pressed : value adc is: "); Serial.println(adc); } else if((adc<614+range) && (adc>614-range)) { Serial.print("SW3 is pressed : value adc is: "); Serial.println(adc); } else if((adc<827+range) && (adc>827-range)) { Serial.print("SW4 is pressed : value adc is: "); Serial.println(adc); } delay(100); }
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 80
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 81 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การวัดอุณหภูมิและความชื้น ขั้นตอนกำรปฏิบัติกำรปฏิบัติ 13.1 วงจรเขียนโปรแกรมอ่านค่าจากเทอร์มิสเตอร์ NTC ขนาด 10KΩ ในการทดลอง ใช้ Arduino ในการทดลอง ต่อวงจรดังรูป รูปที่ 13-1 วงจรที่ใช้บอร์ด Arduino ในการทดลอง การต่อวงจรไมโครคอนโทรลเลอร์ Arduino ที่ใช้บอร์ดโมดูล Arduino ส าเร็จรูปลงบอร์ดทดลอง รูปที่ 13-2 การต่อลงบอร์ดทดลอง
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 82 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การวัดอุณหภูมิและความชื้น 13.2 โปรแกรมจ าลองการท างานของวงจรเขียนโปรแกรมอ่านค่าจากเทอร์มิสเตอร์ NTC ขนาด 10KΩ ในการทดลอง รูปที่13-3 การต่อวงจรทดลองในโปรแกรมจ าลองการท างาน ขั้นตอนการต่อวงจรในโปรแกรมจ าลอง 1. เข้าโปรแกรม Proteus ท าการเลือกอุปกรณ์ที่จะใช้ โดยคลิกที่รูปตัว P แล้วพิมพ์ชื่อ อุปกรณ์ ที่จะใช้ จากนั้น ดับเบิ้ลคลิกที่อุปกรณ์ที่เราต้องการ ท าการเลือก Simulino Uno โดยการ พิมพ์ Simulino Uno ลงในช่อง Keyword แล้วเลือก Simulino Uno แบบที่เราต้องใช้งาน รูปที่ 13-4 การเลือกอุปกรณ์ Simulino Uno ในโปรแกรม Proteus
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 83 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การวัดอุณหภูมิและความชื้น 2. ท าการเลือก Resistor โดยการพิมพ์ RES ลงในช่อง Keyword แล้วเลือก Resistor แบบที่ เราต้องใช้งาน รูปที่ 13-5 การเลือกอุปกรณ์ Resistor ในโปรแกรม Proteus 3. ท าการเลือก LED โดยการพิมพ์ LED ลงในช่อง Keyword แล้วเลือก LED แบบที่เรา ต้องใช้งาน รูปที่ 13-6 การเลือกอุปกรณ์ LED ในโปรแกรม Proteus
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 84 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การวัดอุณหภูมิและความชื้น 4. ท าการเลือก เทอร์มิสเตอร์ NTC โดยการพิมพ์ NTC ลงในช่อง Keyword แล้วเลือก NTC แบบที่เราต้องใช้งาน รูปที่ 13-7 การเลือกอุปกรณ์ NTC ในโปรแกรม Proteus 5. จากนั้นน าอุปกรณ์ที่เลือกไว้มาท าการต่อวงจร รูปที่ 13-8 การต่อวงจรจากอุปกรณ์ที่เลือก
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 85 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การวัดอุณหภูมิและความชื้น 6. ท าการต่อ Ground ให้กับวงจร โดยคลิกที่ ไอคอน Terminals Mode แล้วคลิกที่ Ground รูปที่ 13-9 การต่อ Ground ให้กับวงจร 7. ท าการต่อ Power ให้กับวงจร โดยคลิกที่ ไอคอน Terminals Mode แล้วคลิกที่ Power รูปที่ 13-10 การต่อ Power ให้กับวงจร
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 86 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การวัดอุณหภูมิและความชื้น 8. ท าการต่อ Virtual Terminal ให้กับวงจร โดยคลิกที่ ไอคอน Instrument Mode แล้ว คลิกที่ Virtual Terminal รูปที่ 13-11 การต่อ Virtual Terminal ให้กับวงจร 13.3 การเขียนโปรแกรมควบคุมการท างาน 13.3.1 ผังการท างานของโปรแกรม การทดลองที่ 1 เขียนโปรแกรมอ่านค่าจากเทอร์มิสเตอร์ NTC ขนาด 10KΩ โดยให้แสดงผล เป็นอุณหภูมิที่มี หน่วยเป็นเซสเซียส (เขียนโค้ดจากสมการในทฤษฎี) แสดงผลที่จอคอมพิวเตอร์ผ่าน ทางพอร์ตอนุกรม ผังงาน จากโจทย์สามารถเขียนเป็นผังงาน ได้ดังนี้
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 87 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การวัดอุณหภูมิและความชื้น การทดลองที่ 2 เขียนโปรแกรมอ่านค่าจากเทอร์มิสเตอร์ NTC ขนาด 10KΩ โดยให้ แสดงผลเป็นอุณหภูมิที่มีหน่วยเป็นเซลเซียส (เขียนแบบย่อ) แสดงผลที่จอคอมพิวเตอร์ผ่านทางพอร์ต อนุกรม ผังงาน จาก โจทย์สามารถเขียนเป็นผังงานได้ดังนี้
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 88 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การวัดอุณหภูมิและความชื้น 13.3.2 เขียนโปรแกรมควบคุมการท างาน การทดลองที่ 1 เขียนโปรแกรมอ่านค่าจากเทอร์มิสเตอร์ NTC ขนาด 10KΩ โดยให้แสดงผล เป็นอุณหภูมิที่มี หน่วยเป็นเซสเซียส (เขียนโค้ดจากสมการในทฤษฎี) แสดงผลที่จอคอมพิวเตอร์ผ่าน ทางพอร์ตอนุกรม #define NTCPin A3 #define SERIESRESISTOR 10000 #define NOMINAL_RESISTANCE 10000 #define NOMINAL_TEMPERATURE 25 #define BCOEFFICIENT 3950 void setup() { Serial.begin(9600); } void loop() { float ADCvalue; float Resistance; float steinhart; ADCvalue = analogRead(NTCPin); Resistance = (1023 / ADCvalue) - 1; Resistance = SERIESRESISTOR / Resistance; steinhart = Resistance / NOMINAL_RESISTANCE; // (R/Ro) steinhart = log(steinhart); // ln(R/Ro) steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro) steinhart += 1.0 / (NOMINAL_TEMPERATURE + 273.15); // + (1/To) steinhart = 1.0 / steinhart; // Invert steinhart -= 273.15; // convert to C Serial.print("Temperature is : "); Serial.print(steinhart); Serial.println(" 'C"); delay(1000); }
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 89 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การวัดอุณหภูมิและความชื้น การทดลองที่ 2 เขียนโปรแกรมอ่านค่าจากเทอร์มิสเตอร์ NTC ขนาด 10KΩ โดยให้แสดงผล เป็นอุณหภูมิที่มีหน่วยเป็นเซลเซียส (เขียนแบบย่อ) แสดงผลที่จอคอมพิวเตอร์ผ่านทางพอร์ตอนุกรม #define NTC A1 double Thermistor(int RawADC) ; void setup() { Serial.begin(9600); } void loop() { float Temp=Thermistor(analogRead(NTC)); Serial.print("Temperature is : "); Serial.print(Temp); Serial.println(" 'C"); delay(1000); } double Thermistor(int RawADC) { double Cal; Cal = log(10000.0/((1024.0/RawADC-1))); Cal = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Cal * Cal))* Cal); Cal = Cal - 273.15; // Convert Kelvin to Celcius return Cal; }
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 90
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 91 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การวัดระยะด้วยโมดูลอัลตร้าโซนิค ขั้นตอนกำรปฏิบัติกำรปฏิบัติ 14.1 วงจรเขียนโปรแกรมวัดระยะโดยการใช้โมดูลอัลตร้าโซนิค ในการทดลองใช้ Arduino ในการทดลอง ต่อวงจรดังรูป รูปที่ 14-1 วงจรที่ใช้บอร์ด Arduino ในการทดลอง การต่อวงจรไมโครคอนโทรลเลอร์ Arduino ที่ใช้บอร์ดโมดูล Arduino ส าเร็จรูปลงบอร์ดทดลอง รูปที่ 14-2 การต่อลงบอร์ดทดลอง
เอกสารโปรแกรมจ าลองการท างาน (Simulation program) 92 โปรแกรมจ ำลองกำรท ำงำน (simulation program) รำยวิชำ 2105-2105 ไมโครคอนโทรลเลอร์ 1-3-2 เรื่อง การวัดระยะด้วยโมดูลอัลตร้าโซนิค 14.2 โปรแกรมจ าลองการท างานของวงจรเขียนโปรแกรมวัดระยะโดยการใช้โมดูลอัลตร้าโซ นิคในการทดลอง รูปที่14-3 การต่อวงจรทดลองในโปรแกรมจ าลองการท างาน ขั้นตอนการต่อวงจรในโปรแกรมจ าลอง 1. เข้าโปรแกรม Proteus ท าการเลือกอุปกรณ์ที่จะใช้ โดยคลิกที่รูปตัว P แล้วพิมพ์ชื่อ อุปกรณ์ ที่จะใช้ จากนั้น ดับเบิ้ลคลิกที่อุปกรณ์ที่เราต้องการ ท าการเลือก Simulino Uno โดยการ พิมพ์ Simulino Uno ลงในช่อง Keyword แล้วเลือก Simulino Uno แบบที่เราต้องใช้งาน รูปที่ 14-4 การเลือกอุปกรณ์ Simulino Uno ในโปรแกรม Proteus