48
หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย Arduino เรียบเรียงโดยครูทันพงษ์ ภู่รักษ์ 1 เอกสารประกอบการสอนวิชาไมโครคอนโทรลเลอร์เบื้องต้น หน่วยที8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINO สาระสาคัญ มอเตอร์ไฟฟ้าเป็นอุปกรณ์ที่นิยมใช้กันอย่างแพร่หลายในโรงงานอุตสาหกรรม เป็นอุปกรณ์ที่ใช้ควบคุม เครื่องจักรกลในงานอุตสาหกรรม มอเตอร์มีหลายแบบหลายชนิดที่ใช้ให้เหมาะสมกับงาน ดังนั้นเราจึงต้องทราบถึง ความหมายและชนิดของมอเตอร์ไฟฟ้า ตลอดถึงคุณสมบัติการใช้งานของมอเตอร์แต่ละชนิด เพื่อให้เกิด ประสิทธิภาพสูงสุดในการใช้งานของมอเตอร์นั้นๆ มอเตอร์มอเตอร์ไฟฟ้า (Motor) หมายถึงเครื่องกลไฟฟ้าชนิดหนึ่ง ที่เปลี่ยนแปลงพลังงานไฟฟ้ามาเป็นพลังงานกล เนื้อหาสาระการเรียนรู8.1 ความรู้เบื้องต้นเกี่ยวกับมอเตอร์ไฟฟ้า 8.2 การควบคุมดีซีมอเตอร์ด้วย Arduino 8.3 การควบคุมสเตปมอเตอร์ด้วย Arduino จุดประสงค์การเรียนรูจุดประสงค์ทั่วไป 1. เพื่อให้มีความรู้ความเข้าใจเกี่ยวกับการควบคุมดีซีมอเตอร์และคุมสเตปมอเตอร์ด้วย Arduino 2. เพื่อให้สามารถนาความรู้ไปประยุกต์ใช้ในการเขียนโปรแกรมกาหนดการทางานด้วย Arduino 3. เพื่อให้ตระหนักถึงความสาคัญของการควบคุมดีซีมอเตอร์และคุมสเตปมอเตอร์ด้วย Arduino

หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

1 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย ARDUINO

สาระส าคญ

มอเตอรไฟฟาเปนอปกรณทนยมใชกนอยางแพรหลายในโรงงานอตสาหกรรม เปนอปกรณทใชควบคมเครองจกรกลในงานอตสาหกรรม มอเตอรมหลายแบบหลายชนดทใชใหเหมาะสมกบงาน ดงนนเราจงตองทราบถงความหมายและชนดของมอเตอรไฟฟา ตลอดถงคณสมบตการใชงานของมอเตอรแตละชนด เพอใหเกดประสทธภาพสงสดในการใชงานของมอเตอรนนๆ มอเตอรมอเตอรไฟฟา (Motor) หมายถงเครองกลไฟฟาชนดหนงทเปลยนแปลงพลงงานไฟฟามาเปนพลงงานกล

เนอหาสาระการเรยนร 8.1 ความรเบองตนเกยวกบมอเตอรไฟฟา 8.2 การควบคมดซมอเตอรดวย Arduino 8.3 การควบคมสเตปมอเตอรดวย Arduino

จดประสงคการเรยนร

จดประสงคทวไป 1. เพอใหมความรความเขาใจเกยวกบการควบคมดซมอเตอรและคมสเตปมอเตอรดวย Arduino 2. เพอใหสามารถน าความรไปประยกตใชในการเขยนโปรแกรมก าหนดการท างาน ดวย Arduino 3. เพอใหตระหนกถงความส าคญของการควบคมดซมอเตอรและคมสเตปมอเตอรดวย Arduino

Page 2: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

2 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

จดประสงคเชงพฤตกรรม 1. อธบายความรเบองตนเกยวกบมอเตอรไฟฟาได 2. เชอมตอดซมอเตอรดวย Arduino ได 3. ควบคมดซมอเตอรดวย Arduino ได 4. เชอมตอสเตปมอเตอรดวย Arduino ได 5. ควบคมสเตปมอเตอรดวย Arduino ได

Page 3: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

3 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

**********************************************************************************

เรอง การควบคมดซและสเตปมอเตอรดวย Arduino ใชเวลา 20 นาท วชา ไมโครคอนโทรลเลอรเบองตน รหสวชา (2127-2107) ระดบชน ประกาศนยบตรวชาชพ (ปวช.) สาขาวชา เมคคาทรอนกส ค าชแจง 1. แบบทดสอบมทงหมด 10 ขอ (10 คะแนน) 2. ใหผเรยนเลอกค าตอบทถกทสดแลวกาเครองหมายกากบาท () ลงในกระดาษค าตอบ 1. มอเตอรมอเตอรไฟฟา (Motor) หมายถง

2. มอเตอรไฟฟากระแสตรงเปนตนก าลงขบเคลอนทส าคญอยางหนงในโรงงานอตสาหกรรมเพราะ

3. กระแสไฟฟาในขดลวดสนามแมเหลก (Field Coil) จะสรางขวแมเหลกแบบใด

4. DC Motor ประกอบดวย 2 สวนหลกๆ ไดแก ก. ขวแมเหลกเหนอ / ใต ข. ทนอารมาเจอร / สเตเตอร ค. มอเตอรไฟฟากระแสสลบ / มอเตอรไฟฟากระแสตรง ง. ขดลวดอารมาเจอร / ขดลวดสนามแมเหลก

ก. เครองกลไฟฟาทเปลยนแปลงพลงงานกลเปนพลงงานไฟฟา ข. เครองกลไฟฟาทเปลยนแปลงพลงงานไฟฟาเปนพลงงานแสง

ค. เครองกลไฟฟาทเปลยนแปลงพลงงานกลเปนพลงงานแสง ง. เครองกลไฟฟาทเปลยนแปลงพลงงานไฟฟาเปนพลงงานกล

ก. ทนทาน ข. ราคาถก

ค. ปรบความเรวได ง. ประหยดไฟฟา

ก. ขวสง-ต า ข. ขวเหนอ-ใต

ค. ขวซาย-ขวา ง. ขวบน-ลาง

แบบทดสอบกอนเรยน หนวยท 8 เรอง การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino

Page 4: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

4 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

5. หลกการท างานของ DC Motor คอ ก. แรงดนสลบตดผานสนามแมเหลก เกดทอรกขนในทศทเหมาะสม ข. กระแสสลบตดผานสนามแมเหลก เกดทอรกขนในทศทเหมาะสม ค. แรงดนสลบตดผานสนามแมเหลก เกดทอรกขนในทศทเหมาะสม ง. กระแสตรงตดผานสนามแมเหลก เกดทอรกขนในทศทเหมาะสม

6. วงจร H-Bridge สามารถควบคมมอเตอรไดอยางไร ก. ควบคมความเรวรอบของมอเตอร ข. ควบคมทศทางของมอเตอร ค. ควบคมทศทาง และความเรวรอบของมอเตอร ง. ควบคมการเดนหนาและถอยหลงของมอเตอร 7. หากตองการใหหมนตามเขม (Clockwise :CW) ใหสวตซท างานอยางไร ก. S2 และ S3 ปดวงจร และ S1 และ S4 เปดวงจร ข. S1 และ S4 ปดวงจร ค. S2 และ S3 เปดวงจร ง. S1 และ S4 ปดวงจร และ S2 และ S3 เปดวงจร 8. อปกรณสารกงตวน าทนยมใชในวงจร H-Bridge คอ ก. DIODE หรอ ZENERDIODE ข. TRIAC หรอ DIAC ค. TRANSISTER ง. MOSFET หรอ IGBT 9. หลกการของการท างานของ Stepper Motor คอ ก. การมอดเลตสญญาณเฟสเซอร ข. การมอดเลตสญญาณตามแอมพลจด ค. การมอดเลตสญญาณตามความถ ง. การจายไฟเขาไปทละขดตามล าดบ

10. วงจร Darlington เปน IC ส าเรจรปมชอเรยกวา ก. L298P ข. 7812

ค. 1N4001 ง. ULN2003AN

Page 5: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

5 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

8.1 ความรเบองตนเกยวกบมอเตอรไฟฟา

มอเตอรไฟฟาเปนอปกรณทนยมใชกนอยางแพรหลายในโรงงาน เปนอปกรณทใชควบคมเครองจกรกลในงานอตสาหกรรม มอเตอรมหลายแบบหลายชนดทใชใหเหมาะสมกบงาน ดงนนเราจงตองทราบถงความหมายและชนดของมอเตอรไฟฟา ตลอดถงคณสมบตการใชงานของมอเตอรแตละชนด เพอใหเกดประสทธภาพสงสดในการใชงานของมอเตอรนนๆ

มอเตอรมอเตอรไฟฟา (Motor) หมายถงเครองกลไฟฟาชนดหนงทเปลยนแปลงพลงงานไฟฟามาเปนพลงงานกล มอเตอรไฟฟาทใชพลงงานไฟฟาเปลยนเปนพลงงานกล มทงพลงงานไฟฟากระแสสลบ และพลงงานไฟฟากระแสตรง

8.1.1 มอเตอรไฟฟาแบงออกตามชนดของกระแสไฟฟา ได 2 ชนดดงน

มอเตอรไฟฟากระแสสลบ(Alternating Current Motor) 1. มอเตอรไฟฟากระแสสลบชนด 1 เฟส

- สปลทเฟสมอเตอร (Split-Phase motor) - คาปาซเตอรมอเตอร (Capacitor motor)

- รพลชชนมอเตอร (Repulsion-type motor) - ยนเวอรแซลมอเตอร (Universal motor) - เชดเดดโพลมอเตอร (Shaded-pole motor) 2. มอเตอรไฟฟากระแสสลบชนด 2 เฟส 3. มอเตอรไฟฟากระแสสลบชนด 3 เฟส

มอเตอรไฟฟากระแสตรง (Direct Current Motor) แบงออกเปน 3 ชนดไดแก 1. มอเตอรแบบอนกรมหรอเรยกวาซรสมอเตอร (Series Motor) 2. มอเตอรแบบขนานหรอเรยกวาชนทมอเตอร (Shunt Motor) 3. มอเตอรไฟฟาแบบผสมหรอเรยกวาคอมปาวดมอเตอร (Compound Motor) มอเตอรไฟฟากระแสตรงเปนตนก าลงขบเคลอนทส าคญอยางหนงในโรงงานอตสาหกรรมเพราะมคณสมบต

ทดเดนในดานการปรบความเรวได ตงแตความเรวต าสดจนถงสงสด นยมใชกนมากในโรงงานอตสาหกรรม

หนวยท 8การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino

Page 6: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

6 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

8.1.2 หลกการของมอเตอรกระแสไฟฟาตรง หลกการของมอเตอรไฟฟากระแสตรง (Motor Action) เมอมแรงดนกระแสไฟฟาตรงเขาไปในมอเตอร

สวนหนงจะเขาแปรงถานผานคอมมวเตเตอรเขาไปในขดลวดอารมาเจอร สรางสนามแมเหลกขน และกระแสไฟฟา อกสวนหนงจะไหลเขาไปในขดลวดสนามแมเหลก (Fieldcoil) สรางขวเหนอ-ใตขน เกดสนามแมเหลก 2 สนาม ในขณะเดยวกน ตามคณสมบตของเสนแรงแมเหลกจะไมตดกน ทศทางตรงขามจะหกลางกนและทศทางเดยวจะเสรมแรงกน ท าใหเกดแรงบดในตวอารมาเจอร

DC Motor ประกอบดวย 2 สวนหลกๆ ไดแก ทนอารมาเจอรและสเตเตอร ทนอารมาเจอรกคอสวนทหมน สวนสเตเตอรคอสวนทเปนขดลวดทสรางสนามแมเหลก หลกการท างานของ DC Motor คอการน ากระแสตรงมาตดผานสนามแมเหลก ท าใหเกดทอรกขนในทศทเหมาะสม และสรางใหเกดการหมนของทนอารมาเจอร

รปท 8.1 สวนประกอบของมอเตอรไฟฟากระแสตรง (ทมา www.Auto2drive.com/category/ระบบตาง-ๆ-ในรถยนต/page/18/)

Page 7: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

7 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

รปท 8.2 หลกการท างานของมอเตอรไฟฟากระแสตรง (ทมา www.Walter-fendt.de/ph14e/electricmotor.htm myarduino.net)

8.1.3 การควบคมทศทาง และความเรวรอบของมอเตอร การควบคมทศทาง และความเรวรอบของมอเตอร ไมวาจะเปนการขบเคลอนสายพาน หรอลอของ

หนยนตไมใหหมนแบบอสระและสามารถควบคมได ดงนนจงมวงจรทใชในการควบคมมอเตอรขนมา แบบทนยมใชกนเรยกวาวงจร “H-Bridge”

รปท 8.3 การควบคมมอเตอร H-Bridge (ทมา www.Arduitronics.com)

วงจรนท าหนาทไดทงคมทศทางและความเรวของมอเตอร โดยเรมจากการคมทศทางการหมน โดยปกตหากตองการกลบทศการหมนของมอเตอรกระแสตรง วธนงทท าไดคอกลบทศแหลงจายวงจร H-Bridge ดานบน

หากตองการใหหมนตามเขม (Clockwise :CW) ให S1 และ S4 ปดวงจร และให S2 และ S3 เปดวงจรหากตองการใหหมนทวนเขม (Conter Clockwise :CCW) ให S2 และ S3 ปดวงจร และให S1 และ S4 เปดวงจร

Page 8: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

8 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

สงเกตวาสวตชจะท างานเปนค คแรกท างาน คสองตองเปดวงจร และในทางตรงขามกคอคสองท างาน คแรกตองเปดวงจร ตอมามการท าใหการเปดปดเปนแบบทงายกวาเดม โดยใชอปกรณสารกงตวน าเชน MOSFET หรอ IGBT หรออนๆ แลวแตความเหมาะสม เชนขนาดกระแสแรงดนทตองการควบคม

รปท 8.4 Schematic ของวงจร H-Bridge (ทมา www.Arduitronics.com)

รปท 8.5 การตอบอรด Arduino ควบคม H-Bridge (ทมา www.Arduitronics.com)

Page 9: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

9 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

รปท 8.6 การตอไอซ L293D ควบคมดซมอเตอร

(ทมา www.Arduitronics.com)

Page 10: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

10 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

โปรแกรมท 8.1 การตอบอรด Arduino ควบคม H-Bridge const int in1Pin = 5; // H-Bridge input pins const int in2Pin = 4; const int in3Pin = 3; // H-Bridge pins for second motor const int in4Pin = 2;

void setup() Serial.begin(9600); pinMode(in1Pin, OUTPUT); pinMode(in2Pin, OUTPUT); pinMode(in3Pin, OUTPUT); pinMode(in4Pin, OUTPUT); Serial.println("+ - sets direction of motors, any other key stops motors");

void loop() if ( Serial.available()) char ch = Serial.read(); if (ch == '+') Serial.println("CW"); // first motor digitalWrite(in1Pin,LOW); digitalWrite(in2Pin,HIGH); //second motor digitalWrite(in3Pin,LOW); digitalWrite(in4Pin,HIGH); else if (ch == '-') Serial.println("CCW"); digitalWrite(in1Pin,HIGH); digitalWrite(in2Pin,LOW); digitalWrite(in3Pin,HIGH);

Page 11: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

11 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

digitalWrite(in4Pin,LOW); else Serial.print("Stop motors"); digitalWrite(in1Pin,LOW); digitalWrite(in2Pin,LOW); digitalWrite(in3Pin,LOW); digitalWrite(in4Pin,LOW);

เมออพโหลดโปรแกรมเสรจแลวทกอยางถกตอง หนาจอแสดงขอความ Serial Monitor โดยจะเหนมอเตอรหมนทศทางหนงตอนกด "+" และทศตรงขามตอนกด "-" การกดอยางอนจะหยดหมน

รปท 8.7 Serial Moniter (ทมา www.Arduitronics.com)

Page 12: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

12 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

8.2 การควบคมดซมอเตอรดวย Arduino การควบคมความเรวรอบของ DC Motor ดวยเทคนค Pulse Width Modulation (PWM)

รปท 8.8 ออสซโลสโคปแสดงสญญาณ PWM (ทมา www.Arduitronics.com)

PWM (Pulse Width Modulation) คอ การมอดเลตสญญาณใหมความกวางตามสดสวนทก าหนด บนความถ Carrier ทตองการใชงาน ซงโดยปกตแลวจะใชประโยชนในการควบคมการเปดปดของวงจรอเลกทรอนกสก าลง เชน วงจรบก วงจรบส วงจรบกบส เปนตน

นอกจากนยงใชสามารถใชประกอบกบวงจร H - Bridge เพอควบคมความเรวรอบของมอเตอร หรอวาวงจรพนฐานเชนตองการจะหรหลอด LED กไดอกดวย พารามเตอรทใชระบรปรางหนาตาของ PWM ทส าคญม 2 คาดวยกนคอ ความถของคลนพาหะ (Carrier Frequency) และ อตราสวนหนาท (Duty Ratio)

Carrier Frequency ใน Arduino มความถประมาณ 490 Hz ในกรณทใช Library ปกตใน Arduino IDE และยงสามารถปรบใหมความถสงขนเปนคาอนๆ เชน 31.25 kHZ ไดอกดวย Duty Ratio คอสดสวนของเวลาทจายแรงดนตอคาบของ Carrier Frequency ซงกรณทเหนในรปท 8.8 คอเวลาทจายแรงดน 1.02 มลลวนาท ตอคาบ 2.04 มลลวนาท ซงจะได Duty Ratio = 50%

Page 13: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

13 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

โปรแกรมท 8.3 การใหแรงดน PWM ออกทขา 3 โดยม Duty Ratio = 50%

int ledPin = 3; // LED connected to digital pin 9 int val = 0; // variable to store the read value

void setup()

pinMode(ledPin, OUTPUT); // sets the pin as output

void loop() analogWrite(3, 128);

// analogRead values go from 0 to 1023, analogWrite values from 0 to 255

รปท 8.9 แสดงใหเหนวาม Carrier Frequency เทาเดม เพราะยงใช PWM จาก LIbrary ปกต ตอไปปรบใหเวลาทเปด เปน 0.51 มลลวนาท ซงจะได Duty Ratio = 25%

รปท 8.9 สญญา PWM ความถ Carrier ท 490 Hz (ทมา www.Arduitronics.com)

พจารณารปท 8.9 ก าหนดให PWM Port 3 ในการก าเนดสญญาณน โดยใชค าสง analogWrite

Page 14: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

14 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

(3, 128) ซงหมายถงการเขยนใหออก Port 3 โดยมสดสวน Duty Ratio คอ 128/256 หรอ 50% นนเอง การทใชค าสง analogWrite แตสญญาณไปออกขา Digital(PWM) กเปนเพราะ Arduino Board อยาง UNO ไมม Analog Output channel มแต PWM Output ท Pin ดาน Digital สญญา PWM ถงแมจะมความถ Carrier ท 490 Hz สามารถใชในการควบคมมอเตอรกระแสตรงโดยใชวงจร H-Bridge โดย PWM ใชไดกบ IC เบอร L298P และ L293 หรอ Motor Shield นอกจากนถาจะตอวงจรสราง H-Bridge กรณทมอเตอรมขนาดใหญกวา 2 A โดยตอเขากบขา INPUT ของ IC ทใชและตอกราวดของ Arduino กบแหลงจายแรงดนหลกของมอเตอร

รปท 8.10 วงจร H-Bridge โดย PWM ใชกบ IC เบอร L293D (ทมา www.Parduitronics.com)

อกหนงรปแบบทมการประยกตใชงานคอวงจร Switching Power Supply คอการปรบให Arduino ก าเนดสญญา PWM แบบความถสงๆ เชน 31.25 kHz การใชงาน Arduino ในสวนนตองเขาไปแกไข Register จ านวน 4 ตวใน Atmel 328 ทใชเปนตวไมโครคอนโทรลเลอรของ Arduino UNO ใชส าหรบการท างานกบวงจร Power Electronics เพราะความถ 490 Hz ไมเพยงพอส าหรบการท า Switching Power Supply แบบตางๆ กเพราะวาขนาดของ Capcitor กบ Inductor ในวงจรเพอใช Filter ความถจะตองมขนาดใหญมาก

โปรแกรมท 8.9 เปนการสราง PWM ท Carrier Frequency 31.25 kHz โดยม Duty Ratio = 50% หรอ

Page 15: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

15 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

ก าหนดใหมคา 128 ในโปรแกรมท 8.4 นนเอง และใหมสญญาณออกทขา 11 โปรแกรมท 8.4 การสราง PWM ท Carrier Frequency 31.25 kHz โดยม Duty Ratio = 50%

void setup() pwmSetup();

void loop()

int Duty = 128;//type in the voltage you want. Refer to guide on limiting OCR2A = Duty;

void pwmSetup()//just run once at setup

pinMode(11, OUTPUT); //OCR2A TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM20); //phase correct pwm 31250hz TCCR2B = _BV(CS20);

//change this as datasheet says to mainly get different pwm frequencies OCR2A = 0; OCR2B = 0;

รปท 8.11 สญญาณจากออสซลโลสโคปมความถ 31.25 kHZ (ทมา www.Arduitronics.com)

Page 16: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

16 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

สงเกตไดจากรปท 8.11 สญญาณจากออสซลโลสโคปมความถ 31.25 kHZ (อานไดประมาณ 31.4 kHz) โดยจะเหนวาม Duty ratio 50% ตามทตงไวเปน 128 ตามตองการ

8.3 การควบคมสเตปมอเตอรดวย Arduino

ในหวขอท 8.1 ไดน าเสนอการควบคม DC Motor สาเหตทตองศกษา DC Motor กอนกเพราะวาการท างานของมอเตอรชนดอนๆ เชน Stepper Motor จะมพนฐานมาจาก DC Motor ในบางดานแต Stepper Motor จะมความซบซอนกวาทงหลกการท างานและการควบคม

รปท 8.12 บอรดขบสเตปมอเตอร (ทมา www.Arduitronics.com)

Stepper Motor หรอ Stepping Motor มขอดทส าคญคอการควบคมต าแหนงของการหมนไดอยางแมนย า โดยไมตองใชการควบคมแบบปอนกลบ (Feedback Control) ดวยเหตน จงเปนทนยมใชในอปกรณทตองการควบคมต าแหนงและมมอยางแมนย า เชนพรนเตอร สแกนเนอร เครองเลนแผนดสค เปนตน

8.3.1 หลกการของการท างานของ Stepper Motor หลกการของการท างานของ Stepper Motor คอการบงคบใหแมเหลกถาวรบนแกนโรเตอร หมนไปตาม

ทศการบงคบของขดลวดทตดตงบนสเตเตอร จะซบซอนกวา DC Motor ตรงทการบงคบใหหมนนนไมไดเปนแคการใสแรงดนคงทไปทขวบวกลบเทานน ตองใสแรงดนใหถกตองจากจงหวะทควรจะเปนดงรปท 8.12 ถงจะหมนได

Page 17: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

17 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

รปท 8.13 การจายกระแสไฟฟาเขาไปทขดลวดทละขด (ทมา www.Pcbheaven.com/wikipages/How_Stepper_Motors_Work/)

จะเหนวามขดลวดทควบคมการหมน โดยแตละขดหางกน 90 องศา การหมนกจะท าโดยการจายกระแสเขาไปทขดลวดทละขด เพอท าใหเกดสนามแมเหลก ซงจะไปดดใหแมเหลกถาวะทอยบนโรเตอรเคลอนท โดยทศของการหมนกจะขนกบล าดบการจายกระแสเขาไปทขดลวด โดยการบงคบในลกษณะนเรยกวา Single coil excitation หรอการกระตนทละขดลวด โดยจะมการกระตนหรอการจายกระแสเขาขดลวดอย 4 จงหวะตอการหมน 1 รอบ อกรปแบบนงจะซบซอนกวาแตจะใหทอรกมากกวา คอการปอนแบบ Full Step Drive หรอการปอนแบบทละ 2 ขดลวด

รปท 8.14 การจายกระแสไฟฟาเขาไปทขดลวดทละสองขด (ทมา www.Pcbheaven.com/wikipages/How_Stepper_Motors_Work/)

Page 18: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

18 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

ถาตองการควบคมใหมความละเอยดมากขนอก สามารถท าไดโดยสามารถคมใหมอเตอรหมนไดละเอยดขนจาก 90 องศา เหลอ 45 องศา โดยทไมตองปรบเปลยนตวฮารดแวรใดๆ เปนเพยงการเปลยนวธการจายกระแสเขาขดลวดเทานน

แต Stepper Motor ทใชจรงมการพฒนาตอ โดยเพมจ านวนขดลวดและปรบใหแมเหลกถาวรมซ (Teeth) ซงท าหนาทเปนจ านวนขวของแมเหลกมากขน การเพมจ านวนซโดยแตละซเปนขวเหนอและขวใตสลบกนนน สามารถท าไดโดยเอาเหลกทมสภาพความน าแมเหลกมาขนรปเปนจานทมซอยรอบๆ จากนนขนตอนการควบคมกมหลกการเดยวกบ Stepper Motor ทหมนไดทละ 90 องศา เนองจาก Stepper Motor ทใชกนจรงๆ มซและขดลวดมาก จงท าใหสามารถควบคมการหมนไดละเอยดมากๆ โดยการควบคม 1 Cycle จะท าใหมอเตอรหมนไป 0.9 - 5 องศา แลวแตเทคนคทใชในการควบคมการหมน

รปท 8.15 การเพมจ านวนขดลวดและปรบใหแมเหลกถาวรมซ (Teeth) (ทมา www.Pcbheaven.com/wikipages/How_Stepper_Motors_Work/)

สงเกตเหนวามขดลวดอย 6 ขดลวด การท างานจะตองควบคมเปนขน ใหครบ 75 ขนจงหมนไดครบ 1 รอบ หรอ 5 องศาตอขนการเรยงขดลวด 6 ขดกไมไดวางหางกน 60 องศาแบบตรงๆ ถาท าแบบนนมอเตอรจะไมหมน แตตองเรยงใหคแรกคอขดลวดบนสดและลางสดวางหางจากคทสอง และสามเปนมม 60 + 5 = 65 องศา เพอใหมนหมนทละ 5 องศา มมตางนมผลตอการควบคมและการเขยนโปรแกรม

Page 19: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

19 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

รปท 8.16 ลกษณะของแกนโรเตอรแบบแมเหลกถาวรมซ (Teeth) (ทมา www.Pcbheaven.com)

อปกรณจรงอยางรปท 8.16 จะเหนวาม 2 จาน แตละจานม 50 ซ ท าใหรวมมซทสรางเปนขวเหนอและใตรวม 100 ซ

ส าหรบ Stepper Motor ทมใชกนอยจะม 2 แบบ ขนกบการตอขดลวดภายในมอเตอร ไดแกแบบ Unipolar และแบบ Bipolar แบบทนยมใชคอแบบ Unipolar เพราะวาการควบคมงายกวา เนองจากไมตองกลบทศของกระแสทปอนเขาไปทขดลวด แตถาเปนแบบ Bipolar กท าไดยาก แตสามารถประยกตใชงานไดมากกวา ใน Stepper Motor จรงๆนนขดลวดจะท างานเปน 2 ชด (ถงแมจะมขดลวดมากกวา 4 กตาม) ถาตามรปท 8.17 คอ a กบ b โดยม 1 กบ 2 เปนแหลงจายไปบวกลบ และ 1a 1b 2a 2b เปนตวก าหนดทศทางการไหลของกระแสผานขดลวดทงสอง

Page 20: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

20 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

การท าให Stepper Motor หมนแบบงายทสดกคอ การจายไฟเขาไปทละขดตามล าดบ 1a 2a 1b 2b

เรยกวธการควบคมแบบนวา "Wave Drive" การท าให Stepper Motor หมนแบบ Full Step Drive ท าไดโดยใหกระแสไหลผานขดลวดทละ 2 ขด ท าใหไดทอรกออกมามากกวาแบบแรกประมาณ 2 เทา ซงเปนวธท library ของ Arduino เลอกใช

รปท 8.17 Unipola Stepper motor (ทมา www.Pcbheaven.com/wikipages/How_Stepper_Motors_Work/)

Page 21: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

21 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

รปท 8.18 การปอนกระแสไฟฟาใหกบ Stepper motor แบบตางๆ (ทมา www.Pcbheaven.com/wikipages/How_Stepper_Motors_Work/)

Page 22: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

22 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

รปท 8.19 การวางขวแมเหลกถาวรใน Stepper motor (ทมา www.Pcbheaven.com/wikipages/How_Stepper_Motors_Work/)

ขอมลทส าคญอกอยางทควรทราบคอการท างานของ Stepper Motor นนใชกระแสทสงมากกวาท Arduino สามารถขบได ดงนนจงตองใชวงจรขยายสญญาณเรยกวา "วงจร Darlington" เปน IC ส าเรจรปเรยกวา ULN2003AN หรอรนใกลเคยง

ตวอยางสเปกของ Stepper Motor ทจ าหนายโดยทวไปรน 28BYJ-48 – 5V Stepper Motor

Rated voltage : 5VDC

Number of Phase 4

Speed Variation Ratio 1/64

Stride Angle 5.625° /64

Frequency 100Hz

DC resistance 50Ω±7%(25)

Idle In-traction Frequency > 600Hz

Idle Out-traction Frequency > 1000Hz

In-traction Torque >34.3mN.m(120Hz)

Self-positioning Torque >34.3mN.m

Friction torque 600-1200 gf.cm

Pull in torque 300 gf.cm

Insulated resistance >10MΩ(500V)

Insulated electricity power 600VAC/1mA/1s

Page 23: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

23 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

Insulation grade A

Rise in Temperature <40K(120Hz)

Noise <35dB(120Hz)

รปท 8.20 วงจร Darlington" เปน IC ส าเรจรปเบอร ULN2003AN (arduitronics.com)

การน าไปใชงาน เปนตวอยางการน า Stepper Motor ตอรวมกบ Potentiometer หรอ R ปรบคาไดมาควบคมต าแหนงการหมนของ Stepper Motor

Page 24: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

24 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

รปท 8.21 การตอ Stepper motor ใชงานรวมกบ Arduino (ทมา www.Arduitronics.com)

จากนนกตอ Potentiometer เขาทชอง A2

รปท 8.22 การตอ Stepper motor ใชงานรวมกบ Arduino และ Potentiometer (ทมา www.Arduitronics.com)

จะเหนวา R ปรบคาไดหรอ Potentometer จะเปนตวก าหนดความเรวและทศทางการหมนของ Stepper Motor

Page 25: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

25 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

โปรแกรมท 8.4 Full Step 1 เฟส int motorPin1 = 8;// Blue - 28BYJ48 pin 1 int motorPin2 = 9;// Pink - 28BYJ48 pin 2 int motorPin3 = 10;// Yellow - 28BYJ48 pin 3 int motorPin4 = 11;// Orange - 28BYJ48 pin 4 int motorSpeed = 4; //variable to set stepper speed char val = '0';

void setup() //declare the motor pins as outputs pinMode(motorPin1, OUTPUT); pinMode(motorPin2, OUTPUT); pinMode(motorPin3, OUTPUT); pinMode(motorPin4, OUTPUT); Serial.begin(9600);

void loop() if (Serial.available()) val = Serial.read(); Serial.println(val); if (val == '1') clockwise(); if (val == '2') counterclockwise(); if (val == '0') digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW);

Page 26: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

26 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

void counterclockwise () // 1 digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); delay(motorSpeed); // 2 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); delay (motorSpeed); // 3 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); delay(motorSpeed); // 4 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); delay(motorSpeed);

void clockwise() // 1 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW);

Page 27: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

27 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); delay(motorSpeed); // 2 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); delay (motorSpeed); // 3 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); delay(motorSpeed); // 4 digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); delay(motorSpeed);

โปรแกรมท 8.5 Code Full Step 2เฟส int motorPin1 = 8;// Blue - 28BYJ48 pin 1 int motorPin2 = 9;// Pink - 28BYJ48 pin 2 int motorPin3 = 10;// Yellow - 28BYJ48 pin 3 int motorPin4 = 11;// Orange - 28BYJ48 pin 4 int motorSpeed = 3; //variable to set stepper speed char val = '0';

void setup() //declare the motor pins as outputs

Page 28: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

28 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

pinMode(motorPin1, OUTPUT); pinMode(motorPin2, OUTPUT); pinMode(motorPin3, OUTPUT); pinMode(motorPin4, OUTPUT); Serial.begin(9600);

void loop() if (Serial.available()) val = Serial.read(); Serial.println(val); if (val == '1') clockwise(); if (val == '2') counterclockwise(); if (val == '0') digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); void counterclockwise () // 1 digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); delay(motorSpeed);

Page 29: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

29 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

// 2 digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); delay (motorSpeed); // 3 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); delay(motorSpeed); // 4 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, HIGH); delay(motorSpeed);

void clockwise() // 1 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, HIGH); delay(motorSpeed); // 2 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); delay (motorSpeed);

Page 30: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

30 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

// 3 digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); delay(motorSpeed); // 4 digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); delay(motorSpeed);

โปรแกรมท 8.6 Code Half Step int motorPin1 = 8;// Blue - 28BYJ48 pin 1 int motorPin2 = 9;// Pink - 28BYJ48 pin 2 int motorPin3 = 10;// Yellow - 28BYJ48 pin 3 int motorPin4 = 11;// Orange - 28BYJ48 pin 4 int motorSpeed = 4; //variable to set stepper speed char val = '0';

void setup() //declare the motor pins as outputs pinMode(motorPin1, OUTPUT); pinMode(motorPin2, OUTPUT); pinMode(motorPin3, OUTPUT); pinMode(motorPin4, OUTPUT); Serial.begin(9600);

void loop() if (Serial.available())

Page 31: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

31 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

val = Serial.read(); Serial.println(val); if (val == '1') clockwise(); if (val == '2') counterclockwise(); if (val == '0') digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW);

void counterclockwise () // 1 digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); delay(motorSpeed); // 2 digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); delay (motorSpeed); // 3 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH);

Page 32: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

32 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, LOW); delay(motorSpeed); // 4 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); delay(motorSpeed); // 5 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, LOW); delay(motorSpeed); // 6 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin4, HIGH); delay (motorSpeed); // 7 digitalWrite(motorPin1, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH); delay(motorSpeed); // 8 digitalWrite(motorPin1, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin4, HIGH);

Page 33: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

33 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

delay(motorSpeed);

void clockwise() // 1 digitalWrite(motorPin4, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin1, LOW); delay(motorSpeed); // 2 digitalWrite(motorPin4, HIGH); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin1, LOW); delay (motorSpeed); // 3 digitalWrite(motorPin4, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin2, LOW); digitalWrite(motorPin1, LOW); delay(motorSpeed); // 4 digitalWrite(motorPin4, LOW); digitalWrite(motorPin3, HIGH); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin1, LOW); delay(motorSpeed); // 5 digitalWrite(motorPin4, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin1, LOW);

Page 34: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

34 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

delay(motorSpeed); // 6 digitalWrite(motorPin4, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin2, HIGH); digitalWrite(motorPin1, HIGH); delay (motorSpeed); // 7 digitalWrite(motorPin4, LOW); digitalWrite(motorPin3, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin1, HIGH); delay(motorSpeed); // 8 digitalWrite(motorPin4, HIGH); digitalWrite(motorPin3, LOW); digitalWrite(motorPin2, LOW); digitalWrite(motorPin1, HIGH); delay(motorSpeed);

Page 35: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

35 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

สรปเนอหาสาระส าคญ

หลกการของการท างานของ Stepper Motor คอการบงคบใหแมเหลกถาวรบนแกนโรเตอร หมนไปตามทศการบงคบของขดลวดทตดตงบนสเตเตอร จะซบซอนกวา DC Motor ตรงทการบงคบใหหมนนนไมไดเปนแคการใสแรงดนคงทไปทขวบวกลบเทานน ตองใสแรงดนใหถกตองจากจงหวะทควรจะเปน โดยมขดลวดทควบคมการหมนแตละขดหางกน 90 องศา การหมนกจะท าโดยการจายกระแสเขาไปทขดลวดทละขด เพอท าใหเกดสนามแมเหลก ซงจะไปดดใหแมเหลกถาวะทอยบนโรเตอรเคลอนท โดยทศของการหมนกจะขนกบล าดบการจายกระแสเขาไปทขดลวด โดยการบงคบในลกษณะน เรยกวา Single coil excitation หรอการกระตนทละขดลวด มการกระตนหรอการจายกระแสเขาขดลวดอย 4 จงหวะตอการหมน 1 รอบ อกรปแบบนงจะซบซอนกวาแตจะใหทอรกมากกวาคอการปอนแบบ Full Step Drive หรอการปอนแบบทละ 2 ขดลวด ถาตองการควบคมใหมความละเอยดมากขนอก สามารถท าไดโดยควบคมใหมอเตอรหมนไดละเอยดขนจาก 90 องศา เหลอ 45 องศา โดยทไมตองปรบเปลยนตวฮารดแวรใดๆ

Page 36: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

36 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

เรอง การควบคมดซและสเตปมอเตอรดวย Arduino ใชเวลา 20 นาท ******************************************************************************************************* ค าชแจง แบบฝกหดมทงหมด 2 ตอน ประกอบดวยตอนท 1 และตอนท 2 (20 คะแนน) 1. แบบฝกหดตอนท 1 เปนค าถามแบบถก-ผด มทงหมด 10 ขอ (10 คะแนน) 2. แบบฝกหดตอนท 2 เปนค าถามแบบปรนย มทงหมด 10 ขอ (10 คะแนน)

ค าชแจง ใหผเรยนกาเครองหมายถก ในขอทคดวาถก และกาเครองหมายผด ในขอทคดวาผด 1. Stepping motor มขอดทส าคญคอการควบคมต าแหนงของการหมนไดอยางแมนย า 2. การท างานของ Stepper motor การบงคบใหแมเหลกถาวรบนแกนโรเตอร หมนไปตามทศการ บงคบของขดลวดทตดตงบนสเตเตอร 3. การบงคบให Stepping motor หมนนนไมไดเปนแคการใสแรงดนคงทไปทขวบวกลบเทานน ตองใสแรงดนใหถกตองจากจงหวะทควรจะเปน 4. ขดลวด Stepping motor ทควบคมการหมนแบบสขว แตละขดหางกน 60 องศา 5. การหมน Stepping motor ท าโดยการจายกระแสเขาไปทขดลวดทละขดเพอท าใหเกด สนามแมเหลก ซงจะไปดดใหแมเหลกถาวะทอยบนสเตเตอรเคลอนท 6. ทศของการหมน Stepping motor ขนกบล าดบการจายกระแสเขาไปทขดลวด 7. การบงคบ Stepping motor ในลกษณะนเรยกวา Single coil excitation หรอการกระตนทละขดลวด 8. การกระตน Stepping motor หรอการจายกระแสเขาขดลวดอย 4 จงหวะตอการหมน 1 รอบ 9. การปอน Stepping motor แบบ Full Step Drive หรอการปอนแบบทละ 2 ขดลวด 10. สามารถควบคมการหมน Stepping motor ไดละเอยดมาก โดยการควบคม 1 Cycle จะท าใหมอเตอรหมนไป 0.9 - 5 องศา

แบบฝกหดหนวยท 8

แบบฝกหดตอนท 1

Page 37: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

37 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

ค าชแจง ใหผเรยนเลอกค าตอบทถกทสดแลวกาเครองหมายกากบาท () ใหครบทกขอ 1. มอเตอรไฟฟาแบงออกตามการใชของกระแสไฟฟาได 2 ชนด คอ

ก. มอเตอรไฟฟากระแสสง / มอเตอรไฟฟากระแสต า ข. มอเตอรไฟฟากระแสสลบ / มอเตอรไฟฟากระแสตรง ค. มอเตอรไฟฟากระแสบวก / มอเตอรไฟฟากระแสลบ ง. มอเตอรไฟฟากระแสบาน / มอเตอรไฟฟากระแสโรงงาน

2. กระแสไฟฟาทไหลเขาไปในมอเตอรไฟฟากระแสตรงจะไหลเขาไปทใด ก. คอมมวเตเตอร / ขดลวดอารมาเจอร ข. ขดลวดอารมาเจอร / ขดลวดสนามแมเหลก ค. แปรงถาน / คอมมวเตเตอร ง. แปรงถาน / ขดลวดอารมาเจอร

3. คณสมบตของเสนแรงแมเหลกเปนอยางไร ก. หกลางกนในทศทางตรงขาม ข. เสรมแรงทศทางเดยวกน ค. หกลางกนในทศทางตรงขาม และ เสรมแรงทศทางเดยวกน เกดแรงบดในตวอารมาเจอร ง. เกดสนามแมเหลก 2 สนาม ในขณะเดยวกน

4. ทนอารมาเจอรคอ ก. สวนทหมน ข. สวนอยกบท

ค. ขดลวดสนามแมเหลก ง. ขดลวด

5. การน ากระแสตรงมาตดผานสนามแมเหลก ท าใหเกดทอรกขนในทศทเหมาะสมเพอ ก. สรางใหเกดการหมนของสเตเตอร ข. สรางใหเกดการหมนของขดลวด ค. สรางใหเกดการหมนของทนอารมาเจอร ง. สรางใหเกดการหมนของขดลวดสนามแมเหลก

แบบฝกหดตอนท 2

Page 38: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

38 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

6. วงจรทใชในการควบคมมอเตอรแบบทนยมใชกนเรยกวา ก. A-Bridge ข. H-Bridge

ค. R-Bridge ง. T-Bridge

7. หลกการแกไขสญญาณรบกวนท าไดหลายแบบ เชนตอกนในลกษณะวงจร ก. วงจร RL อนตเกรเตอร ข. วงจร RLC อนตเกรเตอร

ค. วงจร LC อนตเกรเตอร ง. วงจร RC อนตเกรเตอร

8. หากตองการใหหมนทวนเขม (Conter Clockwise :CCW) ให ก. S1 และ S4 ปดวงจร ข. S2 และ S3 ปดวงจร และ S1 และ S4 เปดวงจร ค. S1 และ S4 ปดวงจร และ S2 และ S3 เปดวงจร ง. S2 และ S3 เปดวงจร

9. พารามเตอรทใชระบรปรางหนาตาของ PWM ทส าคญคอ ก. วงจรบก วงจรบส ข. วงจรบกบส

ค. ความถของคลนพาหะ (Carrier Frequency) และอตราสวนหนาท (Duty Ratio) ง. ฟงกชนชะลอการท างานในหนวยนาโนวนาท

10. PWM (Pulse Width Modulation) คอ ก. การมอดเลตสญญาณตามความถ ข. การมอดเลตสญญาณตามแอมพลจด ค. การมอดเลตสญญาณเฟสเซอร ง. การมอดเลตสญญาณใหมความกวางตามสดสวนทก าหนด

Page 39: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

39 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

*************************************************************************************************** ค าชแจง ใหผเรยนทกคนท าการทดลองตามปฎบตการทดลองหนวยท 8 เรอง การควบคมดซมอเตอรและสเตป มอเตอรดวย Arduino ใชเวลา 180 นาท ( 20 คะแนน) จดประสงคเชงพฤตกรรม

1. สามารถใชฟงกชนไดถกตอง 2. สามารถแกปญหาในการท างานของบอรด Arduino Uno R3 ได 3. สามารถตอใชงานและอพโหลดโปรแกรมใหกบบอรด Arduino Uno R3 ได

อปกรณการทดลอง 1. เครองคอมพวเตอรและโปรแกรม Arduino IDE 1.6.9 1 ชด 2. USB Cable Arduino Uno R3 1 เสน 3. Arduino Uno R3 Board 1 บอรด

4. Hook-up Wires 10 เสน 5. Breadboard 1 แผง 6. A Momentary Switch or Button 1 ตว 7. 9V DC Motor 1 ตว 8. 10k Ohm Potentiometer 1 ตว 9. TIP120 Transistor 1 ตว 10. 1N4001 Diode 1 ตว 11. 9V Battery 1 ตว 12. Stepper Motor 13. U2004 Darlington Array (if using a unipolar stepper) 1 ตว 14. SN754410ne H-Bridge (if using a bipolar stepper) 1 ตว 15. Power Supply Appropriate for your Particular Stepper 1 ตว

ปฏบตการทดลองหนวยท 8 เรอง การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino

Page 40: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

40 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

ขอควรระวง 1. ควรระวงไมวางบอรด Arduino Uno R3 หรอชลตางๆ บนโตะโลหะหรอทวางทเปนโลหะเพราะอาจเกดการลดวงจรของภาคจายไฟได

2. ไมควรตอสายตอวงจรในบอรด Arduino Uno R3 ทงไว ควรถอดสายตอวงจรออกใหหมด เพราะผลการทดลองอาจเกดการผดพลาดไมเปนไปตามทฤษฎได

3. ไมควรถอดสายสายโหลด USB เขาออกตลอดเวลา เพราะอาจท าใหภาคจายไฟของบอรด Arduino Uno R3 เสยหายได

การทดลองท 8.1 การควบคมมอเตอรไฟฟากระแสตรงดวย Arduino

Hardware Required

1. Arduino Board 2. A momentary switch or button 3. 10k ohm resistor 4. breadboard 5. hook-up wire 6. 9V DC motor 7. TIP120 transistor 8. 1N4001 diode 9. 9V battery

Page 41: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

41 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

Circuit

รปท 8. 22 การควบคมมอเตอรไฟฟากระแสตรงดวย Arduino

Schematic

Page 42: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

42 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

Code

/* by Scott Fitzgerald http://www.arduino.cc/en/Tutorial/TransistorMotorControl This example code is in the public domain. */ // give a name to digital pin 2, which has a pushbutton attached int pushButton = 2; // the transistor which controls the motor will be attached to digital pin 9 int motorControl = 9; // the setup routine runs once when you press reset: void setup() // make the pushbutton's pin an input: pinMode(pushButton, INPUT); // make the transistor's pin an output: pinMode(motorControl, OUTPUT); // the loop routine runs over and over again forever: void loop() // read the state of the button and check if it is pressed if(digitalRead(pushButton) == HIGH) // ramp up the motor speed for(int x = 0; x <= 255; x++) analogWrite(motorControl, x); delay(50); // ramp down the motor speed for(int x = 255; x >= 0; x--) analogWrite(motorControl, x); delay(50);

Page 43: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

43 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

delay(1); // delay in between reads for stability ผลการทดลอง

............................................................................................................................. ..............................................

..................................................................................... ......................................................................................

............................................................................................................................. ..............................................

............................................................................................................................. ..............................................

...........................................................................................................................................................................

การทดลองท 8.2 การควบคมสเตปมอเตอรดวย Arduino

Hardware Required

1. Arduino or Genuino Board 2. 10k ohm potentiometer 3. stepper motor 4. U2004 Darlington Array (if using a unipolar stepper) 5. SN754410ne H-Bridge (if using a bipolar stepper) 6. power supply appropriate for your particular stepper 7. hook-up wires 8. breadboard

Page 44: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

44 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

Circuits Bipolar Motor Circuit

รปท 8. 22 การควบคมสเตปมอเตอรดวย Arduino

Schematic

Page 45: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

45 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

Code

/* Stepper Motor Control - speed control Created 30 Nov. 2009 Modified 28 Oct 2010 by Tom Igoe */ #include <Stepper.h> const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution // for your motor // initialize the stepper library on pins 8 through 11: Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); int stepCount = 0; // number of steps the motor has taken void setup() // nothing to do inside the setup void loop() // read the sensor value: int sensorReading = analogRead(A0); // map it to a range from 0 to 100: int motorSpeed = map(sensorReading, 0, 1023, 0, 100); // set the motor speed: if (motorSpeed > 0) myStepper.setSpeed(motorSpeed); // step 1/100 of a revolution: myStepper.step(stepsPerRevolution / 100); ผลการทดลอง ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

Page 46: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

46 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

สรปผลการทดลอง ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ ปญหาอปสรรคหรอขอเสนอแนะ ...................................................................................................................................................................................................................................................................................................................................................... ตารางการประเมนผลคะแนนภาคปฏบต

หวขอการพจารณาภาคปฏบต ระดบคะแนน

การทดลองท 8.1 การควบคมมอเตอรไฟฟากระแสตรงดวย Arduino 10 คะแนน การทดลองท 8.2 การควบคมสเตปมอเตอรดวย Arduino 10 คะแนน

รวมคะแนนภาคปฏบต

…........คะแนน

Page 47: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

47 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

**********************************************************************************

เรอง การควบคมดซและสเตปมอเตอรดวย Arduino ใชเวลา 20 นาท วชา ไมโครคอนโทรลเลอรเบองตน รหสวชา (2127-2107) ระดบชน ประกาศนยบตรวชาชพ (ปวช.) สาขาวชา เมคคาทรอนกส ค าชแจง 1. แบบทดสอบมทงหมด 10 ขอ (10 คะแนน) 2. ใหผเรยนเลอกค าตอบทถกทสดแลวกาเครองหมายกากบาท () ลงในกระดาษค าตอบ 1. มอเตอรมอเตอรไฟฟา (Motor) หมายถง

2. มอเตอรไฟฟากระแสตรงเปนตนก าลงขบเคลอนทส าคญอยางหนงในโรงงานอตสาหกรรมเพราะ

3. กระแสไฟฟาในขดลวดสนามแมเหลก (Field Coil) จะสรางขวแมเหลกแบบใด

4. DC Motor ประกอบดวย 2 สวนหลกๆ ไดแก ก. ทนอารมาเจอร / สเตเตอร ข. ขวแมเหลกเหนอ / ใต ค. ขดลวดอารมาเจอร / ขดลวดสนามแมเหลก ง. มอเตอรไฟฟากระแสสลบ / มอเตอรไฟฟากระแสตรง

ก. เครองกลไฟฟาทเปลยนแปลงพลงงานไฟฟาเปนพลงงานแสง ข. เครองกลไฟฟาทเปลยนแปลงพลงงานกลเปนพลงงานไฟฟา

ค. เครองกลไฟฟาทเปลยนแปลงพลงงานไฟฟาเปนพลงงานกล ง. เครองกลไฟฟาทเปลยนแปลงพลงงานกลเปนพลงงานแสง

ก. ราคาถก ข. ทนทาน

ค. ประหยดไฟฟา ง. ปรบความเรวได

ก. ขวเหนอ-ใต ข. ขวสง-ต า

ค. ขวบน-ลาง ง. ขวซาย-ขวา

แบบทดสอบหลงเรยน หนวยท 8 เรอง การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino

Page 48: หน่วยที่ 8 การควบคุมดีซีมอเตอร์และสเตปมอเตอร์ด้วย ARDUINOsbt.ac.th/new/sites/default/files/TNP_Unit_8.pdf ·

หนวยท 8 การควบคมดซมอเตอรและสเตปมอเตอรดวย Arduino เรยบเรยงโดยครทนพงษ ภรกษ

48 เอกสารประกอบการสอนวชาไมโครคอนโทรลเลอรเบองตน

5. หลกการท างานของ DC Motor คอ ก. กระแสสลบตดผานสนามแมเหลก เกดทอรกขนในทศทเหมาะสม ข. แรงดนสลบตดผานสนามแมเหลก เกดทอรกขนในทศทเหมาะสม ค. กระแสตรงตดผานสนามแมเหลก เกดทอรกขนในทศทเหมาะสม ง. แรงดนสลบตดผานสนามแมเหลก เกดทอรกขนในทศทเหมาะสม

6. วงจร H-Bridge สามารถควบคมมอเตอรไดอยางไร ก. ควบคมทศทางของมอเตอร ข. ควบคมความเรวรอบของมอเตอร ค. ควบคมการเดนหนาและถอยหลงของมอเตอร ง. ควบคมทศทาง และความเรวรอบของมอเตอร 7. หากตองการใหหมนตามเขม (Clockwise :CW) ใหสวตซท างานอยางไร ก. S1 และ S4 ปดวงจร ข. S2 และ S3 ปดวงจร และ S1 และ S4 เปดวงจร ค. S1 และ S4 ปดวงจร และ S2 และ S3 เปดวงจร ง. S2 และ S3 เปดวงจร 8. อปกรณสารกงตวน าทนยมใชในวงจร H-Bridge คอ ก. TRIAC หรอ DIAC ข. DIODE หรอ ZENERDIODE ค. MOSFET หรอ IGBT ง. TRANSISTER 9. หลกการของการท างานของ Stepper Motor คอ ก. การมอดเลตสญญาณตามแอมพลจด ข. การมอดเลตสญญาณเฟสเซอร ค. การจายไฟเขาไปทละขดตามล าดบ ง. การมอดเลตสญญาณตามความถ

10. วงจร Darlington เปน IC ส าเรจรปมชอเรยกวา ก. 7812 ข. L298P

ค. ULN2003AN ง. 1N4001