132
บบบบบ 1 บบบบบ 1.1 บบบบบบบบบบบบบบบบบบบบบบบ (Importance and Background) ใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใ(DC Motor) ใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใ ใ ใ ใ ใใ ใ ใ (Microelectronic) ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ ใ (Microprocessor) ใ ใใ ใ ใ ใใ ใ ใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใ ใใใ ใใใใใใใใใใใใใใใใใใใใ Hydraulic ใใใ ใใใ ใใใใใใใ clutch ใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใ ใใใใใใ ใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใ ใใใ ใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใ ใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใใ ใใใใใใใใ DC motor Position Control using Microcontroller 1

DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

  • Upload
    vonhan

  • View
    220

  • Download
    4

Embed Size (px)

Citation preview

Page 1: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

บทท 1 บทนำ�

1.1 คว�มสำ�คญและคว�มเปนม� (Importance and Background)

ในป จจ บ น การคอนโทรลมอเตอรกระแสตรงหรอด ซ มอเตอร (DC Motor) จะพบได โดยท ว ไป โดยเฉพาะ ในงานอตสาหกรรมสมยใหมสวนมาก ด วยความเจรญกาวหนาของเทคโนโลยทางไมโครอเลคทรอนคส (Microelectronic) และ ไมโครโปรเซสเซอร (Microprocessor) ทำาใหการออกแบบระบบคอนโทรลมอเตอรกระแสตรงและการวเคราะหปญหาเปนสงทนาสนใจและมความสำาคญมาก ระบบการคอนโทรลแบบดงเดมมพลงจกรกลทสำาคญ คอ พวกมอเตอรไฟฟาตางๆ Hydraulic และ พวก เบรกและ clutch เปนตน แตดวยความเจรญของเทคโนโลยการสรางแมเหลกถาวรทมคณภาพสง ทำาใหมอเตอรกระแสตรงกลายเปนพลงจกรกลทสำาคญในระบบคอนโทรลเกอบทกชนดในปจจบนซงพบเหนไดตงแตการใชมอเตอรกระแสตรงในเครองใชไฟฟาภายในบานโดยปกต การใชในรถยนต การใชในเครองคอมพวเตอร การใชในห นยนต ต ลอ ด ถ ง เคร อ ง จ กรกล ท ท ำา ง า นแ บ บ อ ต โ นมต ในอตสาหกรรมต างๆ ฯลฯ บวกก บความก าวหน าของไมโครโปรเซสเซอร สามารถนำามาประยกตใชกบการคอนโทรลมอเตอร กระแสตรงได จงทำาใหไดรบความนยมอยางมากในปจจบน

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

DC motor Position Control using Microcontroller 1

Page 2: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ซ งโครงงานนจะเปนการออกแบบและสรางระบบควบคมตำาแหนงของดซมอเตอรโดยใชไมโครคอนโทรลเลอร ตระกล 8051 โดยความเรว และ ตำาแหนงทตองการจะถกปอนเขาไปใหกบไมโครค อ น โ ท ร เ ล อ ร ท า ง พ อ ร ต อ น ก ร ม โ ด ย จ ะ ใ ช โ ป ร แ ก ร มอนเตอรเฟส(Visual Basic) เปนตวตดตอรบสงคา และ ในการควบคมใหมอเตอรหมนตามความเรว และ ไปยงตำาแหนงทตองการนนจะผ านวงจรขบมอเตอรอ กวงจรในการขบมอเตอรโดยใช 89C2051 ซงจะเปนตวสราง Pulse Width Modulate ในการขบมอเตอร และ ในสวนของการตรวจสอบตำาแหนงจะใชเอนโคดเดอร (Encoder) สงคากลบมายงไมโครคอนโทรเลอร 8051 จากนนจะสงคามาแสดงยงโปรแกรมอนเตอรเฟสทางคอมพวเตอร

1.2 วตถประสงค ของโครงง�น (Objectives) 1. เพอศกษาการควบคมแหลงจายไฟแบบ PWM โดยใชไมโคร

คอนโทรลเลอร2. เพอศกษาการควบคมมอเตอรโดยใชไมโครคอนโทรลเลอร3. เพอศกษาการออกแบบโปรแกรมเพอใชการควบคมตำาแหนง

ของมอเตอร

1.3 ขอบเขตของโครงง�น (Scope of work) 1. จดสรางอปกรณชดควบคมมอเตอร โดย Microcontroller

เปนตวควบคม2. จดทำาโปรแกรมควบคม Motor ทสามารถนำาไปประยกตได

โดยมผลเปรยบเทยบในเงอนไขตางๆและทดสอบการควบคม Motor ใหถงตำาแหนงทตองการ

1.4 ประโยชนทค�ดว�จะไดรบ (Expect Results) เชงปรมาณ

DC motor Position Control using Microcontroller 2

Page 3: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

1. ไดอปกรณชดควบคมตำาแหนงดซมอเตอรเชงคณภาพ1. ไดรบความรเพมเตมเกยวกบการทำางานของอปกรณอเลคทรอ

นกสตางๆ2. ไดรบความรเกยวกบการเขยนโปรแกรมดวยภาษา C เพมขน3. เปนพนฐานความเขาใจในระบบควบคม

บทท 2 ขนตอนก�รทำ�ง�น

2.1 คนคว�ขอมล- รวบรวมเนอหาเอกสารทเกยวกบชนงาน- รวบรวมเอกสารทเกยวของกบวงจร- เรยนรการทำางานของอปกรณทใช

2.2 ก�รออกแบบเครองมอ- ขนตอนออกแบบวงจรอเลกทรอนกส

1. ออกแบบวงจรอเลกทรอนกส2. เลอกจำานวน INPUT/OUTPUT3. เลอกวธการควบคม4. รางตนแบบวงจรไฟฟา

DC motor Position Control using Microcontroller 3

Page 4: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

5. ตรวจสอบกำาลงไฟฟาทใช6. ออกแบบ Power Supply

2.2.1 จดห�อปกรณ2.2.2 สร�งเครองมอและทดสอบ

- ขนตอนออกแบบการทดสอบ1. ออกแบบการทดสอบกบวงจร2. ออกแบบตรวจสอบสญญาณเขาออก3. ออกแบบ เมอมสญญาณรบกวน4. จำาลองสถานะภาพแลวสงเกตความเปลยนแปลง5. กำาหนดวธการทดสอบ

- ขนตอนสรางวงจร1. สรางวงจรตามทไดออกแบบไว

- ขนตอนทดสอบ1. ทดสอบตามทไดออกแบบไว2. ตรวจสอบขอผดพลาด

2.2.3 ก�รออกแบบในท�งโปรแกรม(Software Design)

- รวบรวมเนอหาเอกสารทเกยวของ- ขนตอนออกแบบสรางโปรแกรมในการคำานวณ- ขนตอนออกแบบการทดสอบ- ขนตอนการเขยนโปรแกรม- ขนตอนการทดสอบโปรแกรม- ขนตอนการแกไขปรบปรง- ขนตอนทดสอบอกครง

2.2.4 ทดสอบ และ สรปผล- ขนตอนทดสอบอกครง

DC motor Position Control using Microcontroller 4

Page 5: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

1. ทดสอบเหมอนเดมอกครง2. ทำาซำาเมอเกดความผดพลาดอก

- สรปผลMount –

year step7 - 45

(ก.ค.)

8 – 45

(ส.ค.)

9 – 45

(ก.ย.)

10 – 45

(ต.ค.)

11 – 45

(พ.ย.)

12 – 45

(ธ.ค.)

1 – 46

(ม.ค.)

2 – 46

(ก .พ.)

Step1.Step 2.Step 3.Step 4.Step 5.Step 6.

2.2.5 ต�ร�งแผนง�น

อปกรณในโครงง�น- เครองคอมพวเตอร 1 เครอง- ดซมอเตอร 1 ตว- Microprocessor 8051 2 ตว

DC motor Position Control using Microcontroller

RetailStep 1

คนควาขอมล

Step 2

ออกแบบเครองมอ

Step 3

จดหาอปกรณ

Step 4

สรางเครองมอและทดสอบ

Step 5

ทำาการโปรแกรมและทดสอบ

Step 6

ทดสอบ, แกไขปรบปรง และ สรปผล

5

Page 6: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

- Microprocessor 89C2051 1 ตว- Rotary Encoder 1 ตว- วงจร Reset 1 วงจร

o ตวตานทาน 5 k 1 ตวo ตวเกบประจ 10 F 1 ตวo Switch 1 อน

- วงจร Crystal 3 วงจรo Crystal 11.0592 MHz 1 ตวo ตวเกบประจ 33 pF 2 ตว

- ตวเกบประจ 1F 5 ตว- ตวตานทาน 330 โอหม 8 ตว- MAX232 1 ตว- พอรตอนกรม 1 อน- ทรานซสเตอร TIP 41B 4 ตว- Opto 4n26 4 ตว- DIODE 4 ตว

DC motor Position Control using Microcontroller 6

Page 7: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

บทท 3 มอเตอรกระแสตรง

3.1 หลกก�รทำ�ง�นของมอเตอรกระแสตรงเมอมการผานกระแสไฟฟาเขาไปยงขดลวดในสนามแมเหลกจะ

ทำาใหเกดแรงแมเหลกซงมสดสวนของแรงขนกบกระแสแรงของสนามแมเหลก โดยแรงจะเกดขนเปนมมฉากกบกระแสและสนามแมเหลก ขณะททศทางของแรงกลบตรงกนขามกน ถาหากกระแสของสนามแมเหลกไหลยอนกลบจะทำาใหเกดการเปลยนแปลงของกระแส และ สนามแมเหลกเปนผลทำาใหทศทางของแรงเปลยนไป ดวยคณสมบตนทำาใหมอเตอรกระแสตรงกลบทศทางการหมนได

สนามแมเหลกของมอเตอรสวนหนงเกดขนจากแมเหลกถาวรซงจะถกยดตดกบแผนเหลก หรอ เหลกกลา โดยปกตสวนนจะเปนสวนทยดอยกบท และ ขดลวดเหนยวนำาจะพนอยกบสวนทเปนแกนหมนของมอเตอร

3.2 คณสมบตของมอเตอรกระแสตรงในการอธบายคณสมบตของมอเตอรกระแสตรงใหละเอยดนน

ตองพจารณาแรงดนทปอนและความตานทานของโรเตอรดวย วงจรภายในของมอเตอรเขยนไดดงรปท 3

รปท 1 วงจรภายในของมอเตอรกระแสตรง

DC motor Position Control using Microcontroller 7

Page 8: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

โดยสมมตใหทนโรเตอรไมมความตานทานอยเลย อนกรมกบความตานทานซงในทนกคอความตานทานของขดลวดนนเอง แรงดนทขวตอสายของมอเตอรกคอผลบวกระหวางแรงดนททนโรเตอร (VA) และ แรงดนตกครอมความตานทานขดลวด (VR)

แรงดน VA ถกเรยกวา แรงเคลอนเหนยวนำาปอนกลบ (BACK EMF) ซงเกดขนในโรเตอรขณะทหมนแรงดนทเกดขนนเปนไปตากกฎของการเหนยวนำาแมเหลกไฟฟาจากการเคลอนทของตวนำาในสนามแมเหลก สมพนธก บแรงเคลอนเหนยวน ำาแมเหลก และ ความเรวในการเคลอนทของตวนำา แรงดนทเกดขนจะมขวตรงกนขามกบแรงดนทปอนใหกบมอเตอร และ แปรผนตรงกบความเรวในการหมน ผลบวกของแรงดนททนโรเตอร (VA) และแรงดนตกครอมขดลวด (VR) ตองเทากบแรงดนทปอนใหกบมอเตอร (V)

เมอพจารณาตงแตมอเตอรหยดนง ความเรวมคาเปนศนย ดงนน VA = 0, VR = V กระแสทไหลในมอเตอรหาไดจาก

I = VR / R (A)

เมอมอเตอรเร มหมนจะมความเรว และ VA เพมขนเปนเสนตรงตามความเรว VR ซงมคาเทากบความแตกตางระหวาง VA และ V จะเร มลดลงกระแส I กจะเรมลดลงเชนกนขณะทมอเตอรยงมความเรงอย ความเรวจะเพมขน แรงบดจะลดลงจนกวาจะถงจดซงแรงบดจองมอเตอรรบภาระโหลดไดสมดลพอด ขณะทมอเตอรไมมโหลด และ หมนอยางอสระจะมเพยงคาความฝดของแบรง และ แรงตานอากาศทำาให VA เกอบเทากบคา V

DC motor Position Control using Microcontroller 8

V = VA + VR (V)

Page 9: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

3.3 โมเดลคณตศ�สตรของดซมอเตอรดซมอเตอรทใชรวมกบดซแอมปลไฟลทงในระบบการบงคบ

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

รปท 2 แสดงอนพตและเอาตพตของโมเดลทางคณตศาสตรของมอเตอร

โมเดลอเลคโทรแมคค�นคอล

DC motor Position Control using Microcontroller 9

โมเดลอเลคโทรแมคคานคอลของมอเตอร

อารมาเจอรโวลทเตจ

แรงบดโหลด

ความเรวของเพลามอเตอร

ตำาแหนงของเพลามอเตอร

Page 10: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

สวนสำาคญของดซมอเตอรแบบฟลดแยกกระตนมโมเดลดงแสดงในรป

รปท 3 แสดงโมเดลของดซมอเตอรแบบฟลดแยกกระตน

Ra: ความตานทานของอารเมเจอรLa: อนดคแตนซของอารเมเจอรVg: โวลทเตจกำาเนดในอารเมเจอร(โวลทเตจยอนกลบ)Rf: ความตานทานของฟลดLf: อนดคแตนซของฟลด: ชองวางอากาศของเสนแรงสนามแมเหลก: ความเรวของเพลาอารเมเจอร

Tg: แรงบดทพฒนาขนในมอเตอรTf: แรงบดเสยดทานของมอเตอรTJ: แรงเฉอยของมอเตอรTL: แรงบดโหลดบนเพลาของมอเตอร

ขนแรกเราจะหาสมการพนฐานโมเดลของดซมอเตอรไดจากลฟของอารเมเจอร

Vi(t) = Raia(t) + La + Vg(t) ----- (1)

DC motor Position Control using Microcontroller 10

Page 11: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

เทอมโวลทเตจ Vg(t) ในสมการ (1) คอโวลทเตจยอนกลบของมอเตอรซงเกดขนเมอเสนลวดตวนำาของอารมาเจอรหมนตดเสนแรงแมเหลกซงเกดขนในกระแสของฟลด (if) ตามกฎของฟาราเดยลฟของเสนลวดตวนำาหมนในฟลดแมเหลกคงทจะมการเหนยวนำาโวลทเตจขนในขดลวดนน

Vi(t) = ----- (2)เมอ คอเสนแรงแมเหลกทลงเคจ(linkages) ไปยงขด

ลวดและ t คอเวลาในการหมนของคอมนวเทเตอรของมอเตอร การควบคมวงจรของแตละสวนของตวนำาในโรเตอรจะเกดโวลทเตจขนในสวนของตวนำานนตามสมการ (2) เมอ จะเปนสดสวนตอเสนแรงแมเหลกในชองวางอากาศและความเรวเชงมม เราจะไดวา

Vg(t) = ----- (3)สมมตใหกระแสของฟลดมคาคงทและไมคดถงสวนการ

เปลยนแปลงในเสนแรงฟลดเนองจากอารเมเจอรรแอคชนเสนแรงฟลดกจะมคาคงทดงนนสมการ (3) กจะเปน

Vg(t) = ---- (4)เมอเราสมมตใหเสนแรงของฟลมคาคงท แรงบดของแมเหลก

ไฟฟาซงเกดขนแกโรเตอรของมอเตอรจะเปนสดสวนกบกระแสของอารมาเจอร

Tg(t) = Kt ia(t) ---- (5)เมอ Kt คอ คาคงทของแรงบดของมอเตอร

กำาลงงานเชงกลทเกดขนในโรเตอรคอผลคณของแรงบดทเกดขนและความเรวเชงมม

Pg(t) = Tg(t) ---- (6)กำาลงงานเชงกลทเกดขนในโรเตอรทงหมดนจะจายไปยงโหลด

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

DC motor Position Control using Microcontroller 11

Page 12: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 4 แสดงถงแรงบดตางๆทเกดขนตอโหลดของมอเตอร

Tg(t): แรงบดของมอเตอรTf(t): แรงบดทตองชนะการสญเสยเนองจากการเสยดทานTJ(t): แรงบดเพอใชเพมอตราเรงแกความเฉอยของโหลดTL(t): แรงบดโหลด

ในชวงเวลาใดๆกตาม แรงบดของมอเตอรจะตองเทากบและมทศทางตรงขามกบผลรวมของแรงบด Tf(t) TJ(t) และ TL(t) ดงนน

Tg(t) = Tf(t) + TL(t) + ----- (7)

เมอ J คอผลรวมของโมเมนทแรงเฉอยของโรเตอรและโหลดทตออยทเพาของมอเตอร

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

Tg(t) = Tf(t) + TL(t) + +----- (8)

เมอ B คอสมประสทธของวสคอสฟรคชนของมอเตอรและโหลดทตออยกบเพลาของมอเตอร Tf(t) คอผลรวมของฟรคชนของโหลดและมอเตอรทงหมด มแรงตานของลมและการสญเสยกำาลงในเหลกของเพลามอเตอรยกเวนวสคอสฟรคชน

สมการ (1) (4) (5) และ (8) เปนชดสมการพนฐานของดซมอเตอรโมเดลและสมการเหลานเราสามารถจะหาทรานสเฟอรฟงกช

DC motor Position Control using Microcontroller 12

Page 13: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

นของดซมอเตอรได โดยใสลาปลาสทรานสฟอรมทงสองขางของชดสมการพนฐานไดเปน

Vi(s) – Vg(s) = (Ra+sLa) Ia(s) ----- (9)

Vg(s) = ----- (10)Tg(s) = Kt Ia(s) -----

(11)Tg(s) – Tf(s) – TL(s) = (B + sJ)

----- (12)สามารถเขยนเปนบลอกไดอะแกรมทแสดงสมการพนฐานเหลานไดดงน

รปท 5 แสดงบลอกไดอะแกรมของดซมอเตอรโมเดลขอสงเกต

สมมตวาโวลทเตจทปอนใหกบวงจรอารมาเจอรของมอเตอรมคาคงทดงนนมอเตอรจะหมนดวยความเรวคงทคอทำางานอยทสภาวะสงบนงดวยโหลดทคงท กำาลงงานเชงกลทเกดขนโดยโรเตอรจะหาไดจากสมการ (6) จะได

Pg = Tg = Kt Ia ---- (13)

เมอทกเทอมในสมการสดทายมคาคงทเนองจากมอเตอรทำางานอยทสภาวะสงบนงกำาลงไฟฟาทถกดดกลนโดยอารเมเจอรตองเทากบ

P = Vg Ia = Ke Ia ---- (14)

DC motor Position Control using Microcontroller 13

Page 14: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ดงนนเราจะไดวากำาลงงานเชงกลทเกดขนตองเทากบกำาลงงานไฟฟาทถกดดกลนในโรเดอรคอสรปไดวา Ke = Kt

ทรานสเฟอรฟงกชนของดซมอเตอรบลอกไดอะแกรมของรปท 5 แสดงถงระบบทมสองอนพท และมเอาตพทเปนความเรวเชงมม และการเคลอนทแบบเชงมม(s)จากรปท 5 ความเรวเอาทพทของระบบเขยนไดเปน

---- (15)เมอ

---- (16)---- (17)

G1(s) คอทรานสเฟอรฟงกชนระหวางโวลทเตจและความเรว

= ----- (18)เมอ

สมการ (18) เปนโวลทเตจทรานสเฟอรฟงกชนของดซมอเตอรในเมอสมมตวา Tf และ TL มคาเปนศนย สมการ (18) สามารถเขยนใหมไดเปน

เมอ = ไทมคอนสแตนททางไฟฟา

= ไทมคอนสแตนททางเชงกล

DC motor Position Control using Microcontroller 14

Page 15: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ถาอนดคแตนทของอารมาเจอรมคานอย ไทมคอนสแตนททางไฟฟาสามารถตดทงไดและไดสมการเปน

= ----- (19)เมอ

ในสมการ (19) คาคงท Km อาจเรยกไดวาเปนคาคงทของมอเตอร ทรานสเฟอรฟงกชนแรงบดโหลด G2(s) หาไดเปน

= ----- (20)

ซงถาอนดคแตนทของอารมาเจอรไมนำามาคด จะทำาใหไดสมการ ดงน

ซงจากสมการท (15) เมอใหคาของ วา Tf และ TL มคาเปนศนยจะทำาใหคาทรานสเฟอรฟงกชนมคาดงน

และจากรปท 5 ตำาแหนงเอาทพทของระบบเปนดงนโมเดลคณตศาสตรในการควบคมตำาแหนงของมอเตอร จาก

transfer function ในหวขอท 3.3 โมเดลคณตศาสตรของดซมอเตอร ซงจะได model ของการควบคมความเรวของมอเตอรในรปของสมการอนดบหนงเปนดงน คอ

DC motor Position Control using Microcontroller 15

Page 16: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

จากสมการขางตนดงกลาวนนจะเหนถงความสมพนธระหวางความเรวเชงมม (output) และ คาแรงดนทปอน (input)

และในการควบคมตำาแหนงจะมการผานตว Integrator (1/s) ทำาใหไดเอาทพตคอ Ө(s) ซงจากรปท 5. และ transfer function ทไดจากหวขอท 3.2 ขางตนนนเมอทำาการผาน Integrator (1/s) เขาไปจะทำาใหไดคาของ output เปนมมในการเคลอนทของมอเตอร ซงเขยนในรปของสมการไดดงน

สวนในการหาโมเดลมอเตอรทใชในการทดลองนน เรากำาหนดใหโมเดลของมอเตอรเปนโมเดลมอเตอรอนดบหนง (First Order) ซงเราไดทำาการทดลองเพอหาโมเดลทเปนลกษณะอนดบหนงดงทจะกลาวถงในบทท 5 หวขอท 5.5

บทท 4 หลกก�รควบคม คว�มเรว และ ตำ�แหนง

ของมอเตอรกระแสตรง

หลกก�รควบคมคว�มเรว และ ตำ�แหนงรปท 6 คอ บลอกไดอะแกรมของระบบควบคมความเรวใน

ระบบกลไกแบบเซอรโวนมอเตอรถกเรยกวา มอเตอรแบบเซอรโว

DC motor Position Control using Microcontroller 16

Page 17: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

(servo motor) เครองวดรอบในลปแบบปอนกลบจะวดความเรวของมอเตอรแบบเซอรโว และ สงปอนกลบมาในรปของสญญาณไฟฟา (แรงดน หรอ กรพะแส) ซง แปลตามความเรวเพลาของมอเตอร ในทนลปปอนกลบจะทำาใหความเรวเอาทพทของมอเตอรมคาคงทมากขน

ระบบแบบ closed loop ถกใชรวมอยในระบบเครองมอ เครองจกร หรอ สวานกำาลงเพอชดเชยความแตกตางของโหลดหรอวสดทถกตดหรอถกเจาะ วสดเนอแขงจะหนวงความเรวของสวาน หรอ เครองมอทใชในการตด และ สวานจะมความเรวเพมขนในวสดเนอออน

รปท 6 ระบบควบคมความเรว ทประกอบดวยลปการควบคมปอนกลบเพยงลปเดยวเหมาะสำาหรบอปกรณสวานไฟฟาเคลอนท

ในลปปอนกลบความเรวของมอเตอร ทประกอบดวยเครองวดความเรว ความเรวของเครองมอจะยงคงมคาคงท เนองจากเมอเครองมอทใชในการตดมความเรวลดลง สญญาณปอนกลบจะควบคมมอเตอรใหเพมความเรวขน ในขณะเดยวกน เมอเครองมอตดชนงานทเปนวสดออน ลปปอนกลบจะปองกนไมใหมอเตอรเรงความเรวเกนขนาด

อยางไรกตาม ถาการประยกตใชงานมความตองการ วงจรควบคมเพมเตมสามารถถกเพมขนมาเพอทำาใหมอเตอรมความเรวคอย ๆ เพมขน และ คอย ๆ ลดลงจนกระทงหยด กราฟของความเรวเขยนไดเปนรปของสามเหลยมทประกอบดวยสวนทลาดขน และ สวนทลาดลง หรอ อาจเปนรปแทรปซอยด (Trapezoid) ซงแบงเปน 3

DC motor Position Control using Microcontroller 17

Page 18: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

สวนคอ สวนเพมความเรวขน (Ramp up ) สวนความเรวคงทในชวงเวลาหนง และ สวนความเรวลดลง

รปท 7 คอ บลอกไดอะแกรมของระบบควบคมตำาแหนงนอกจากเครองวดความเรวในลปปอนกลบความเรวแลว ระบบกลไกแบบเซอรโวนจะมลปปอนกลบการกำาหนดตำาแหนง

ตวเซนเซอรในการตรวจจบตำาแหนง และ ความเรว จะรวาเมอใดทเพลาของมอเตอรเซอรโวอยในตำาแหนงมมทตองการโดยการนบสญญาณพลส และ เปรยบเทยบพลสกบสญญาณอนพท กอนทจะหยดเพลาเมอนบไดเทากน ซงกคอ บลอกทชอตวอนทเกรท (Integrator) ในรปท 5 โดยทวไป จะเปนวงจรอเลคทรอนคสควบคมตำาแหนงของเพลา ตวเซนเซอรความเรวในลปปอนกลบของระบบควบคมตำาแหนง ชวยทำาใหระบบเกดเสถยรภาพขน

รปท 7 ระบบควบคมตำาแหนง ประกอบดวยลปการควบคมตำาแหนงปอนกลบ และ ลปควบคมความเรวปอนกลบ

ในระบบควบคมกำาลงบด (Torque control system) กำาลงบดของมอเตอรเซอรโวจะถกรกษาใหมคาคงท เนองจากแรงบดของมอเตอรแปรตามกระแสของมอเตอร ดงนน กระแสทปอนใหกบมอเตอร เพอรกษาคาแรงบดใหคงทเอาไว วธนสามารถทำาไดดวยวงจรททำาการเปรยบเทยบกระแสเอาทพทของมอเตอรกบกระแสอนพทของมอเตอร และ ขยายผลตางเพอใชเปนวงจรควบคมแรงบดปอนกลบ (Torque control feedback circuit )

DC motor Position Control using Microcontroller 18

Page 19: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ระบบควบคมการเคลอนทแบบเพม (Incremental motion control system) ทำาหนาทสบเปลยนโหมดควบคมจากโหมดหนงไปเปนอกโหมดหนง เพอใหเกดสมรรถนะการใชงานทตองการ ตวอยางเชน การควบคมความเรวและตำาแหนง ทำาหนาทควบคมใหไดความเรวทตองการ แตกสามารถปรบเปลยนเปนการควบคมตำาแหนง เพอหยดเพลาใหไดถกตองแมนยำาขน

4.1 ก�รควบคมคว�มเรวของมอเตอรขนพนฐ�น1. การควบคมดวยตวตานทานทปรบคาได

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

DC motor Position Control using Microcontroller 19

Page 20: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 8 วงจรควบคมความเรวของมอเตอรกระแสตรงแบบใชตวตานทานอนกรมและกราฟแสดงคณสมบต

2. การควบคมดวยวธเปลยนคาแรงดนวธการนดกวาวธการแรกแตจะซบซอนกวาตองใชอปกรณอ

เลกทรอนคสททอตราขยายกำาลงสง และ มอเตอรจะถกปอนดวยแรงดนทเปลยนแปลงคาได จากแหลงจายทมอมพแดนซตำา ขอดของการควบคมวธนคอ ถาความเรวลดลงจากผลของแรงบด แรงดนทปอนใหกบมอเตอรจะเพมขนเพอรกษาระดบความเรว สวนขอเสยจากการควบคมวธนคอ เมอมอเตอรมความเรวตำาแรงดนทปอนใหกบมอเตอรจะมคาตำาเชนกน

DC motor Position Control using Microcontroller 20

Page 21: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 9 การควบคมความเรวโดยเปลยนคาแรงดน

3. การควบคมดวยตวตานทานทปรบคาไดการควบคมแบบนสามารถขบดซมอเตอรไดความเรว 10 : 1

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

4. การควบคมแบบ PWM (Pulse Width Modulation)Pulse width modulation (PWM) คอ เทคนคสำาหรบ

ควบคมวงจรทางดานฮารดแวรโดยใชสญญาณเอาทพตแบบดจตอลของไมโครโปรเซสเซอรควบคม

DC motor Position Control using Microcontroller 21

Page 22: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ก�รทำ�ง�นของสญญ�ณ PWM รปท 1 แสดงสญญาณ PWM ทแตกตางกน 3 สญญาณ

- โดย 10a แสดงสญญาณ PWM ท 10% duty cycle คอ สญญาณในการออนจะเปน 10% ของคาบสญญาณ และ จะออฟเปน 90% ของคาบสญญาณ

- โดย 10b แสดงสญญาณ PWM ท 50% duty cycle คอ สญญาณในการออนจะเปน 10% ของคาบสญญาณ และ จะออฟเปน 50% ของคาบสญญาณ

- โดย 10c แสดงสญญาณ PWM ท 90% duty cycle คอ สญญาณในการออนจะเปน 10% ของคาบสญญาณ และ จะออฟเปน 10% ของคาบสญญาณ

เชน ถา Power Supply ม 9V และ duty cycle เปน 10% จะไดเอาทพต 0.9V

รปท 10 แสดงสญญาณ PWM ซงแสดงคา duty cycles ทตางๆกน

DC motor Position Control using Microcontroller 22

รปท 10a

รปท

รปท

Page 23: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ทำ�ไมถงใช PWM ในก�รควบคมคว�มเรวมอเตอร มหลายเหตผลวาทำาไม PWM ถงถกเลอกใชในการควบคมความเรวของมอเตอร เชน :

- PWM งายในการอนเตอรเฟสกบไมโครคอนโทรลเลอร และ ใชเพยงแคเอาทพตสญญาณเดยวในการควบคมความเรว

- PWM มประสทธภาพ คอ Power Supply จะจายกำาลงไดเตมททง ON และ OFF(FULL ON and FULL OFF)

- PWM ทำาใหไดคา ทอรค และ ความเรวสงสดของมอเตอร เปนเพราะ Power Supply จะจายกำาลงไดเตมททง ON และ OFF(FULL ON and FULL OFF)

ซงในโครงงานนทใชทรานซสเตอรเปนตวตดตอวงจร เราสามารถจะควบคมจงหวะในการจายกระแสได การ on และ off ในสดสวนตางๆกน ดวยความถทเหมาะสมกจะทำาให motor หมนทความเรวตางๆ กนตามความตองการได ถาความถตำาไป motor ก จะหมนแบบกระตกๆ ไมเรยบ และ อาจจะไดยนเสยง จากการสนของ ขดลวดทองแดง ถาความถสงกวา 20 kHz หเรากจะไมไดยนเสยงขดลวดสนอกตอไป และ ทความถสงขนไป มากๆ กจะเกดการสญเสย พลงงาน ในวงจรมากเกนความจำาเปน

DC motor Position Control using Microcontroller 23

Page 24: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

4.2 ก�รควบคมตำ�แหนงของมอเตอร ในโครงงานนไดนำาเอา Rotary Encoder เขามาใช และ อานคาออกมาเพอตรวจสอบทศทาง และ ตำาแหนงของการเคลอนท เพอนำามาทำาการเปรยบเทยบตำาแหนงการเคลอนทกบคา input โดยหลกการทำางานของ Encoder มดงน

เอนโคดเดอรRotary Encoder มลกษณะเปนแผนกลมมแกนอยตรง

กลาง และ ทแผนกลม จะมชองเลก ทแสงสามารถ สองผานได เปนจำานวนมากเราเรยกชองนวา ชอง slit ซงทดานหนงของ แผนกลม น จะมตวสงแสง infrared ไปยงตวรบสญญาณแสง infrared ซงจะอยในดานตรงกนขาม ดงรปท 11

รปท 11 แสดง Rotary Encoder

เมอหมนแกนหมนทำาใหแผนกลมหมนไปตดลำาแสง Infrared ดงนนชดรบแสง infrared จงมแสงมากระทบเปนชวงๆ (เปน

DC motor Position Control using Microcontroller 24

Page 25: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

pulse) ตามจงหวะทแสงผานชอง slit จงทำาให สญญาณ out put ของ ชดรบแสง infrared มลกษณะเปน plus ดงรปท 12

รปท 12 แสดงการสราง pulse ของ Rotary Encoder

จำานวน pulse ทไดออกมาน จะเปนตวทชบงวา motor หมนไปกองศา หรอกรอบ ซงเราสามารถคำานวณไดจาก สตร จำานวนรอบท motor หมนไป = จำานวน plus คาความละเอยดของ rotary encoder โดยท คาความละเอยดของ rotary encoder นนนยมใชหนวยเปน plus/ round หรอ ppr เชน 1000 ppr กหมายถงวาเมอ motor หมนไป 1 รอบจะม plus ออกมา 1000 plus เปนตน สวนในเรองทวาเราจะทราบไดอยางไรวา motor หมนไปทศทางใดนน สวนใหญแลวจะใชวธสราง ชอง slit เปน 2 ชดเหลอมกน 90 องศา ดงรปท

รปท 13 แสดง Pulse ของ Rotary แบบสองเฟส

DC motor Position Control using Microcontroller 25

Page 26: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

หรออาจจะใชชอง Slit เพยง 1 ชดแตมการจดวางชดรบสญญาณแสงดงรปขางลางแตขอสำาคญคอจะตองม phase ตางกน 90 องศา

รปท 14 แสดงการตรวจเชคสญญาณ pulse ของ Rotary Encoder

ดงนนสญญาณ output จาก motor จงม 2 ชด คอ A และ B โดยทสญญาณ pulse จาก A และ B กจะเหลอมกน 90 องศาดวย  อาจกลาว ไดวาสญญาณ output จาก motor มคาเทากบ 2 bit คอหนง bit มาจาก A และอกหนง bit มาจาก B ดงรปท 15

รปท 15 ลกษณะ pulse ของ Rotary Encoder ทง สองเฟส

ถาเราให Pulse ในชวง high มคาเปน “1” และ pulse ในชวง low มคาเปน “0” เราสามารถใชคาดงกลาวมาคำานวณหา

DC motor Position Control using Microcontroller 26

Page 27: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ทศท�งท motor หมนไดดวยใชวธการทาง digital คอการนำาคาทอานไดมาทำาการ exclusive OR (XOR) กนโดยการนำา bit ทางขวาของคาเกามา XOR กบ bit ทางซายของคาใหมทอานไดตามตวอยางขางลาง

รปท 16 แสดงความละเอยดของ pluse

สมมตในตอนแรก motor อยทตำาแหนง P1 เพราะฉะนนคาของตวเลข binary ทอานไดจาก encoder จะมคาเปน 11 ถา servo motor หมนไปท ต ำาแหน ง P3 จะท ำา ใหค าของต วเลข binary ทอานไดจาก encoder จะมคาเปน 10 ดงนนถาเรานำาเอาคาทางขวา จากคาทอานไดในครงแรก ( 11 ) ซงกคอ 1 มา XOR กบคาทางซายทอานไดในครงตอมา ( 10 ) ซงกคอ 1 จะไดผลลพธเทากบ 0 เพราะฉะนนคา 0 จงเปนคาทบอกวา motor หมนไปทางขวา ในทางกลบกนถาในตอนแรก motor อยทตำาแหนง P1 และตอมา motor หมนไปทตำาแหนง P2 ถาเรานำาเอา คาทางขวา จากคาทอานไดในครงแรก ( 11 ) ซงกคอ 1 มา XOR กบคาทางซายทอานไดในคร งตอมา ( 01 ) ซงกคอ 0 จะไดผลลพธเทากบ 1 เพราะฉะนนคา 1 จงเปนคาทบอกวา motor หมนไปทางซาย และการ XOR คาตางๆไดแสดงไวดงตารางดานลาง

ต�ร�งท 1 แสดงการ XOR ดวยคาตางๆ

A B A X OR B

DC motor Position Control using Microcontroller 27

Page 28: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

0 0 00 1 11 0 11 1 0

Pulse ทไดจาก rotary encoder จะถกนำาไปเชอมตอเขากบวงจรนบ pulse

หรอวงจรคำานวณเพอทจะตรวจสอบวา motor หมนไปทศทางใดและอย ท ตำาแหนงใด ตามวธทไดกลาวไวขางตน โดยสวนมากแลว motor ทใช rotary

encoder แบบน จะมจำานวนรอบ ของการหมน ทไมจำากด โดยจะหมนไปกรอบ กได ขนอย กบ ความสามารถของวงจรนบ plus และ วงจรคำานวณ

ดงนนเราอาจจะกลาวไดวา encoder ทใชกนอยโดยทวไปนนมอย 2 แบบใหญๆคอเปนแบบมคา output ทไมจ ำากด(incremental encoder) และแบบทมคา output ทจำากด( absolute encoder)

Incremental encoder มกจะเปน encoder แบบ rotary encoder ดงทไดกลาวไวในตอนตนแลววาขนาดของ output ของ encoder แบบนขนอยกบการออกแบบวงจรนบและวงจรคำานวณ

Absolute encoder ทพบเหนสวนใหญจะเปนแบบ potentiometer แตในบางครงกอาจเปนแบบ rotary encoder กไดแตจะมการออกแบบลกษณะของชอง slit

ทตางไปจาก rotary encoder ทไดไวในตอนตนโดยอาจจะมคาของ output ตงแต 4

bit ถง 16 bit

    ในแงของการใชงานแลว motor ทม encoder แบบ incremental encoder นนจะใชงานยงยากกวา motor ทม encoder แบบ absolute encoder เพราะ output ของ increment encoder นนไมสามารถเชอมตอกบชดควบคม motor (controller) ไดทนทโดยตองตอผานวงจรนบ plus และวงจรคำานวณทยงยากซบซอนกอน ถงจะตอเขากบกบ controller ได แตอยางไรกตาม ในปจจบนเราม microprocessor

เชน microcontroller ตระกล PIC เปนตน ดงนนเราจงสามารถนำามาใชแทนวงจรนบ pulse และวงจรคำานวณไดจงทำาใหการใชงานมความงายขน ดงรปทแสดงไวขางลาง

DC motor Position Control using Microcontroller 28

Page 29: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 17 แสดง Block Diagram ของ Rotary Encoder

ในโครงงานอาศยการตรวจจบขอบขาขนและขาลงของทงเฟส A และเฟส B ทำาใหสามารถแบง 1 Pulse เปน 4 สวน

รปท 18 รปแสดงการตรวจจบขอบขาขน และขอบขาลงของทง 2

เฟสรปท 19 รปแสดงวธการตรวจจบทศทางการหมนของ Rotary

Encoder โดยอานคาเขามาทาง Port 1- ในการนบจำานวน Pulse จะทำาการนบขอบขาขนของ Pulse

A วาเทาไร- ในการหาความกวางของ Pulse จะทำาการเชคขอบขาขน

ของ A กบขอบขาลงของ A วามระยะหางระหวางกนเทาไร โดยใช Timer เปนตวจบ

DC motor Position Control using Microcontroller 29

Page 30: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 20 แสดงการเชคความกวางของ Pulse

บทท 5 ร�ยละเอยดและสวนประกอบของโครงง�น

ในโครงงานนมสวนประกอบของระบบการควบคมดซมอเตอร ตามบลอกไดอะแกรมของรปท 5 ซงแบงเปน 5 สวนคอ

1. สวนอนเตอรเฟส บนคอมพวเตอร2. สวน Main CPU 3. สวน Drive Motor4. สวน Sampling5. สวน Motor

DC motor Position Control using Microcontroller 30

Page 31: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 21 บลอกไดอะแกรมการควบคมดซมอเตอร

5.1 อนเตอรเฟส บนคอมพวเตอรในสวนนจะประกอบดวย โปรแกรมอนเตอรเฟส โดยใชภาษา

Visual Basic จะมการรบ และ สงคา ทศทาง, ความเรว และ ตำาแหนง กบไมโครคอนโทรลเลอร 89C51 ทางพอรตอนกรม

การกำาหนดคณสมบตของ MSComm Control ใหสามารถตดตอกบ Microcontroller ทาง Serial Port ได

1. Property ชอ CommPort คอ เลอกคอมพอรตทเราจะตอใชงาน มาดการเขยนโคดกน ตวอยาง

DC motor Position Control using Microcontroller 31

Page 32: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

MSComm1.CommPort=1 ในทนเลอกจะใช Com1 อยทดานหลงเครองคอมฯ

2. Property ชอ Settings คอ การตงคาของการรบสงขอมล ซงจะตองรดวยวาอตราบอดการรบสงขอมล ของอปกรณทจะตดตอดวยเปนเทาไร โดยมรายละเอยดการใสตางๆคาดงนMSComm1.Settings = "Baud(อตราการรบสงขอมล),Parity(ถาไมใชใส N,จำานวนบตขอมล,บตสตอบ" มาดการเขยนโคดกนตวอยาง MSComm1.Settings="1200,N,8,1"

3. Property ชอ InputLen คอ กำาหนดขนาดขณะทมขอมลเขามาใหไปอานขอมลทงหมดทอยในบพเฟอร มาดการเขยนโคดกน

ตวอยาง MSComm1.InputLen=14. Property ชอ PortOpen คอ จะเปดใหพอรตใชงานหรอไม

ถาเปด =True ถาปด =False มาดการเขยนโคดกนตวอยาง MSComm1.PortOpen=True

5. Property ชอ Rthreshold คอ ทำาใหเกดการกระตนดวย Event-driven เมอมขอมลในบฟเฟอรรบขอมล(Comport)มนทำาใหเกด CommEvent ใน OnComm Event มาดการเขยนโคดกน

ตวอยาง MSComm1.Rthreshold =1

ในการรบสงคามอยสอง Form

DC motor Position Control using Microcontroller 32

Page 33: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

1. Form สวนของการ Set property การตดตอPrivate Sub Prise_Compte_Paramètres() Choix_Vitesse = Combo1.ListIndex Choix_Parite = Combo2.ListIndex Choix_Bit_Donnee = Combo3.ListIndex Choix_Bit_Arret = Combo4.ListIndex Choix_Flux = Combo5.ListIndex If (Option1.Value = True) Then Choix_Port = 1 Else Choix_Port = 2 End If Time_Out_Debut = Int(Val(Text1.Text)) Time_Out_Fin = Int(Val(Text2.Text))End Sub

รปท 22 แสดง Form ในสวนของการตงคาการตดตอไปยงอก Form หนง

2. Form สวนของการรบ และ สงคา

DC motor Position Control using Microcontroller 33

Page 34: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 23 แสดง Form ในสวนของการสงคาไปยง Microcontroller รบคาทไดจากอก Form หนง

รปแบบการตดตอการรบสงระหวาง คอมพวเตอรกบ Microcontroller ตวหลก จะสงอยในรปแบบรหส Ascii โดยคาตำาแหนงทปอนจะอยในชวย 0-360 องศา แตคาทสงจรงจะคำานวณเปนคา 0- 400 pluse และ ในการสงมจำานวน 2 Byte โดย Byte แรกเปนคาตำาแหนง สวน Byte สองเปนคาทศทางกบ 1 บต MSB ของคาตำาแหนง เพอใหไดคาตำาแหนง 400 pulseแสดง Code ของ Form ในสวนของการแสดงคาการตดตอ

DC motor Position Control using Microcontroller 34

Form ในการรบคาจาก 89C51

Form ในการสงคาไปยง 89C51

Page 35: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

MSComm1.CommPort = Choix_PortMSComm1.Settings = Vitesse(Choix_Vitesse) + "," +

Parite(Choix_Parite) + "," + Bit_Donnee(Choix_Bit_Donnee) + "," + Bit_Arret(Choix_Bit_Arret) MSComm1.Handshaking = Choix_Flux MSComm1.InputLen = 0 MSComm1.PortOpen = True

5.1.1 การสงคา ตำาแหนง ไปยงไมโครคอนโทรลเลอร 89C51แสดง Code ของการสงคาออกทางพอรตอนกรม

Private Sub Command2_Click()Dim direct_send As IntegerDim out As StringDim a, b, c, d, i As IntegerIf Combo1.ListIndex = 0 Thendirect_send = 240Elsedirect_send = 224End Ifd = Int(Text17.Text)a = (d * 40) / 36If a > 255 Thendirect_send = direct_send + 1a = a - 255End IfMSComm1.PortOpen = FalseMSComm1.PortOpen = TrueMSComm1.Output = Chr(a)MSComm1.PortOpen = FalseMSComm1.PortOpen = TrueMSComm1.Output = Chr(direct_send)End Sub

5.1.2 การรบคา ความเรว จากไมโครคอนโทรลเลอร 89C51ในการรบคาจากไมโครคอนโทรลเลอรนนตองรบขอมลตรงกบ

ไมโครคอนโทรลเลอรในโครงงานนจะสงคาความเรวในการเขาถงตำาแหนงเพยง 1 ไบตแสดง Code ของการรบคาความเรวทางพอรตอนกรม

DC motor Position Control using Microcontroller 35

Page 36: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

If (MSComm1.InBufferCount > 0) Then Chaine = MSComm1.Input End If For i = 1 To Len(Chaine) Caractere = Mid(Chaine, i, 1) CodeCaractere = Asc(Caractere) Text1.Text = Chaine Text2.Text = CodeCaractere Text3.Text = Int(CodeCaractere) Next

5.2 สวน Main CPU เปนสวนประมวลผลหลก ซงมการทำางานประสานงานกบสวน

อน ๆ อนไดแก การรบค า ต ำาแหน ง และ ท ศทางจาก program

Interface บน computer เพอทำาการประมวลผลและ สงตอการควบคมเพอควบคมตำาแหนง ไปยงสวนตาง ๆ รวมทงรบขอมลดบเขามาประมวลผล

สงคาความเรว และ ทศทางทเหมาะสม ใหกบ Power CPU ดำาเนนการควบคมความเรว และ ทศทางในการหมนของ motor ตอในรปแบบของ PWM

รบคาจำานวน step ของการหมน และ คา duty ซงเปนข อ ม ล ด บ ท ใ ช ใ น ก า ร ค ำา น ว ณ ค า ค ว า ม เ ร ว จ า ก Sampling CPU ซ ง เป น CPU ท ท ำาหน าท น บค า step,ทศทาง และ ความเรวของ motor ณ เวลา นน ๆ ซงคาของ step นนจะเปนตวบอกวา motor หมนมาก step และ ใชในการเปรยบเทยบวาในเวลานน ๆ ตำาแหนงทหมนมามคาเปนอยางไรเมอเทยบกบตำาแหนงเปาหมาย

5.2.1 สวนในการรบคาจากคอมพวเตอรสวนของการรบคาจากคอมพวเตอรทางพอรตอนกรมนนจะทำาการรบคาเขามาดงนคอ

DC motor Position Control using Microcontroller 36

Page 37: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

- ขอมลทศทาง 8 bit โดยจะม bit MSB ของตำาแหนงเพมเขามาท LSB ของขอมลทศทาง เนองจากขอมลตำาแหนงตองการใหมขนาด 9 bit เพอใหความละเอยดสงพอ (400 step )

- ขอมลตำาแหนง 8 bit ซงจะถกสงมาในรปของรหส ASCII

5.2.2 สวนทสงคาไปยงไมโครคอนโทรลเลอร 89C2051- มการสงขอมลทศทางขนาด 1 bit และ ความเรวขนาด 8 bit

5.2.3 สวนในรบคาจากสวน Sampling - การรบคาจากสวน sampling นนจะมการรบคาดงนคอ

ทศทาง 1 bit ตำาแหนง 9 bit ความเรว 8 bit ในรปของคาบเวลา

5.2.4 สวนสงคาความเรวในการเขาถงไปยงคอมพวเตอรมการสงคาของเวลาในการเขาถงจากจดเรมตน ไปยงจดเปาหมาย

เพอใชในการเปรยบเทยบเวลา และ ความเรวในการเขาถงเปาหมาย

5.3 สวน Drive Motorเปนสวนททำาหนาทในการประมวลผลทางดานการควบคมความเรว และ ทศทาง เพยงอยางเดยว ซงมการทำางานหลก ๆ ดงน

รบคาสญญาณควบคมจาก Main CPU และ ทำาการแปลงคาทรบมาเพอประมวลผล

เปรยบเทยบคาสญญาณควบคมทรบมาเพอแยก case ของความเรว และ ทศทางในการควบคม

การควบคมทศทาง และ ความเรว ซง ความเรวนนใชหลกการ Pulse Width Modulate ซง จะไดกลาว

DC motor Position Control using Microcontroller 37

Page 38: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ตอไปในสวนของ Algorithm ของ code program : Algorithm code – Power CPU

5.4 สวน Samplingเปนสวนททำาหนาทในการประมวลผลทางดานการสมเพอการตรวจจบคา ความเรว ทศทาง และ ตำาแหนง ซงมการทำางานหลก ๆ ดงน

sampling เพอการตรวจจบคาความเรว ตำาแหนง และ ทศทาง ของ motor

สงคาขอมลดบทไดใหกบ Main CPU ประมวลผลตอไป

5.5 มอเตอร5.5.1 มอเตอรBlock diagram ในก�รควบคมตำ�แหนงและคว�มเรวของ มอเตอร

DC motor Position Control using Microcontroller 38

Page 39: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

จาก block diagram ดงกลาวขางตนจะใช model ทางคณตศาสตรของมอเตอรเปนดงน

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

ก�รห�ค�คณลกษณะของมอเตอรทใชในโครงง�นในการควบคมมอเตอรกระแสตรงนนเราจำาเปนตองรความ

สมพนธระหวางคาของแรงดนทปอนใหกบมอเตอรและผลลพธทได เชนการควบคมความเรวของมอเตอร เราจ ำาเปนตองทราบความสมพนธระหวางคาแรงดนทปอนกบคาความเรวรอบตอนาทของมอเตอรรวมทงจำานวน pulse / รอบ ของ encoder ทใชเพอการควบคมและตรวจสอบความถกตอง

ในโครงงานนไดทำาการทดลองวดคาความเรวรอบของมอเตอรโดยใชเคร องมอวดรอบ ซ ง ใชหลกการของแสง และ ท ำาการตอผลลพธจาก encoder เขากบ oscilloscope เพอดค า pulse ของ encoder และ ค ำานวณ pulse ของ encoder โดยคาท ปรากฏบน oscilloscope นนจะมลกษณะเปน pulse ดงนนเราจงอานคาความถจาก oscilloscope ออกมาเพอใชในการคำานวณดงน

P : คอ pulse / รอบ ของ encoderS : คอ ความเรว (รอบ / นาท ) ของมอเตอร

DC motor Position Control using Microcontroller

G(s)r(s) c(s)E(s)

R(s)+

-

1/s C(s)(s)

-

39

G(s) = K/(s+a)

Page 40: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

F : คอ ความถของ encoder ทอานไดจาก oscilloscope (pulse / วนาท)ดงนนจะได pulse /รอบ ของ encoder ตามสมการ

ต�ร�งแสดง ค�ต�งๆ ของ แรงดน แตละค�

แรงดนความเรว

(รอบ/นาท )ความถทวด

(Hz)pulse /

รอบความชน a =

outpu / input

1 94310 197.87

23 942 246 820 200 123

3 3991350 203.00

75 133

4 5541859 201.33

57 138.5

5 7062350 199.71

67 141.2

6 8872950 199.54

9 147.8333

7 10473470 198.85

39 149.5714

8 12114050 200.66

06 151.375

9 13674560 200.14

63 151.8889

10 15225070 199.86

86 152.2

11 16695610 201.67

77 151.7273

12 18206055 199.61

54 151.6667

13 19836600 199.69

74 152.5385

14 21477160 200.09

32 153.3571

15 23057700 200.43

38 153.6667

16 24408145 200.28

69 152.5

17 26138750 200.91

85 153.7059

18 27789270 200.21

6 154.333319 2947 9840 200.33 155.1053

DC motor Position Control using Microcontroller 40

P = F*60 / S

Page 41: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

93

20 313010450 200.31

95 156.5

Mean200.2

304 145.8835

F : ความถ pulse ทวดได หนวย pulse / วนาทS : ความเรวในการหมนของ motor หนวย รอบ / นาทP : จำานวน pulse / รอบ ของ encoder ทตองการหา

P = [ 60 x F ] / S

จากตารางจะได pulse / รอบ เฉลย = 200 pulse / รอบ

กร�ฟแสดงคว�มสมพนธระหว�งคว�มเรวกบแรงดน

0

5001000

15002000

25003000

3500

1 3 5 7 9 11 13 15 17 19 21

ชดขอมล1

รปท 24 กราฟแสดงความสมพนธระหวางความเรวกบแรงดน

ก�รสมวดคว�มเรวของ motor ในการควบคมการทำางาน ความเรว และ ตำาแหนง ของมอเตอร

ใหมประสทธภาพนน ไมเพยงแครความสมพนธระหวาง input และ

DC motor Position Control using Microcontroller 41

แรงดน V

ความเรว (rpm)

Page 42: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

output เทานน เรายงจำาเปนจะตองรคณลกษณะของของมอเตอรดวยเนองจากมอเตอรแตละตวมความเรวในการเขาสสภาวะ steady ตาง ๆ กน ซง คาเวลานมผลตอการควบคม โดยในโครงงานนไดท ำาการเขยน program ข นมาเพ อท ำาการวดค าความเรวของมอเตอรทเวลาตาง ๆ สำาหรบแรงดนคาหนงเพอศกษาถงการเขาสสภาวะ steady ของมอเตอร

หลกการสมเพอตรวจจบความเรวของ motor ทเวลาตาง ๆ ใชหลกการ interrupt ของ timer โดยการรบคาสญญาณ

encoder จาก P11 และทำาการสมตรวจวามคาเปน 0 หรอ 1 หากเปน 1 ใหทำาการบวกคาใหกบ duty อก 1 ดำาเนนการเชนนไปเรอย ๆ จนกวา P11 (รบคา pulse จาก encoder เขามา ) เปน 0 จงทำาการสงคา duty สดทายเพอมาแสดงผลท computer โดยรบเขามาทาง serial port แสดงท VB ซง VB จะสมรบคาทก ๆ 1 ms โดยคาทสงมานนจะเกบและเขยนซำาลงใน buffer เดมหากไมมการอานจาก program interface VB กจะมการเขยนซำาไปเร อย ๆ ดงนนเมอทำาการอานจะไดคาสดทายทเขยนลง buffer ซง อธบายตามรปขางลางน

รปท 25 ตวอยางแสดงการ samplingจากรปจะเหนไดวาจะมการสมในชวงเวลาทเทา ๆ กนตลอด โดย

ในโครงงานนจะสมทก ๆ 25 us และกำาหนดคาเร มตนใหกบตวนบเปน 0 เมอสมคาจาก port ตามเวลาทกำาหนดแลวตรวจพบวามคาเปน logic 1 กจะทำาการเพมคาใหตวนบครงละ 1 จนกวาจะสมไดคา

DC motor Position Control using Microcontroller 42

Page 43: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

logic 0 จะทำาการสงคาทนบไดออกทาง port ไปยง program interface เพ อแสดงคา และ ท ำาการ set คาตวนบเป น 0 ซ งจำานวนครงทนบไดนไมใชคาทใชจรง แตจะนำาไปคำานวณเปนคา คาบ และ ความถ ตอไป

สวนของ program ทอยบน micro controller 89c51 ทใชในการ sampling คาในชวงทเปน logic ‘1’ เพอนำามาคำานวณคาบ และ ความถ ตอไป

ตารางดานลางนแสดงถงคาทนบไดในการ sampling คาความเรวรอบของมอเตอรทคาแรงดนตาง ๆ ทก ๆ เวลา 1 ms โดยแตละคาแรงดนจะทำาการทดลอง 3 ครง แลวนำาคาทเวลาเดยวกน ของ แตละแรงดนทปอนมาทำาการเฉลย

ต�ร�ง ท 2 แสดงค�ต�ง ๆ ทไดจ�กก�รสม เวล�\แรงดน

3 V 6 V 9 V 12 V

1 ms 145.67 108.67 77 75

2 ms 28 20 11.67 27.34

3 ms 22 9.34 7.34 8

4 ms 22 7.34 6.34 5.67

DC motor Position Control using Microcontroller 43

while(1){

while(P11 == 1){

duty++;flag = 1;TR0 = 1;

}TR0 = 0;TI = 1;if(flag == 1)

sendCharacter (); }//end of while(1)

Page 44: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

5 ms 21.334 6.34 6.34 3.67

6 ms 20.67 6.67 5.34 3.67

7 ms 20.34 6.67 5.67 3.34

8 ms 20 6.34 5.67 3.67

9 ms 20.34 6.34 6 3.34

10 ms 20.34 6.34 5.67 3.34

11 ms 20.34 6.34 6 3.34

12 ms 20 5.67 5.34 3

13 ms 20 6 6 3.34

14 ms 20 6.34 5.34 3.34

15 ms 20 6.334 5.67 3.34

16 ms 20.34 6.67 6 3.34

17 ms 20.34 5.67 5.67 3.34

18 ms 20 6.34 5.67 3.34

19 ms 20 6.67 5.67 3.34

** จำานวนครงท sampling เปน 1 (แตละครง 20 us) เฉลย

เนองจากทำาการสมทก ๆ 20 us ดงนนคา คาบ = จำานวนครง*2*20 us เนองจากในการสมนนทำาเฉพาะ logic 1 ดงนนทงเวลาทงคาบจงตองคณดวย 2 และคาความถหาไดจากคา 1/คาบ

ความถ = 1/จำานวน

ต�ร�ง ท 3 แสดงค�คว�มถของมอเตอรทเวล�ต�ง ๆ ของแตละ ค�แรงดน

เวล�\แรงดน

3 V 6 V 9 v 12 v

1 ms 0.000172 0.00023 0.000325 0.000333

2 ms 0.000893 0.00125 0.002143 0.000915

DC motor Position Control using Microcontroller 44

Page 45: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

3 ms 0.001136 0.002679 0.003409 0.003125

4 ms 0.001136 0.003409 0.003947 0.004412

5 ms 0.001172 0.003947 0.003947 0.006818

6 ms 0.00121 0.00375 0.004688 0.006818

7 ms 0.00123 0.00375 0.004412 0.0075

8 ms 0.00125 0.003947 0.004412 0.006818

9 ms 0.00123 0.003947 0.004167 0.0075

10 ms 0.00123 0.003947 0.004412 0.0075

11 ms 0.00123 0.003947 0.004167 0.0075

12 ms 0.00125 0.004412 0.004688 0.008333

13 ms 0.00125 0.004167 0.004167 0.0075

14 ms 0.00125 0.003947 0.004688 0.0075

15 ms 0.00125 0.003947 0.004412 0.0075

16 ms 0.00123 0.00375 0.004167 0.0075

17 ms 0.00123 0.004412 0.004412 0.0075

18 ms 0.00125 0.003947 0.004412 0.0075

19 ms 0.00125 0.00375 0.004412 0.0075

เมอเราไดคาของความถมาแลวเราสามารถทำาการคำานวณคาความเรวไดจาก เมอ F : คอ ความถ pulse / วนาทP : คอ pulse / รอบ ของ encoderS : คอ ความเรวรอบของมอเตอร (รอบ / นาท )

S = F*60 / P

ต�ร�ง ท 4 แสดงค�คว�มเรวของมอเตอรทเวล�ต�ง ๆ ของ แตละแรงดน

เวล�\แรงดน

3 v 6 v 9 v 12 v

DC motor Position Control using Microcontroller 45

Page 46: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

1 ms 51.48741 69.0184 97.4026 100

2 ms 267.8571 375 642.8571 274.3902

3 ms 340.9091 803.5714 1022.727 937.5

4 ms 340.9091 1022.727 1184.211 1323.529

5 ms 351.5625 1184.211 1184.211 2045.455

6 ms 362.9032 1125 1406.25 2045.455

7 ms 368.8525 1125 1323.529 2250

8 ms 375 1184.211 1323.529 2045.455

9 ms 368.8525 1184.211 1250 2250

10 ms 368.8525 1184.211 1323.529 2250

11 ms 368.8525 1184.211 1250 2250

12 ms 375 1323.529 1406.25 2500

13 ms 375 1250 1250 2250

14 ms 375 1184.211 1406.25 2250

15 ms 375 1184.211 1323.529 2250

16 ms 368.8525 1125 1250 2250

17 ms 368.8525 1323.529 1323.529 2250

18 ms 375 1184.211 1323.529 2250

19 ms 375 1125 1323.529 2250

จะไดกราฟดงนคอกร�ฟแสดงคว�มสมพนธระหว�งคว�มเรว (rpm) กบเวล� (s)

0

500

1000

1500

2000

2500

3000

1 3 5 7 9 11 13 15 17 19

ชดขอมล1ชดขอมล2ชดขอมล3ชดขอมล4

รปท 26 กราฟแสดงความสมพนธระหวางความเรว (rpm) กบเวลา (s)

DC motor Position Control using Microcontroller 46

ความเรว (rpm)

เวลา (s)

Page 47: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 2 7 กราฟแสดงความสมพนธระหวางความเรวกบเวลา แบบคราว ๆ

รปท 2 8 กราฟแสดงความสมพนธระหวางความเรวกบเวลา เทยบอตราสวน 1

DC motor Position Control using Microcontroller 47

Page 48: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

จะไดคา time constant = 4.2 msa = 1/0.0042 = 238.1ในระบบควบคมท เขยนอย ในร ปของความสมพนธของ

output กบ input ซงเขยนในรปของ transfer function นน เม อพจารณาในร ปแบบของหลกความเป นจรงในการควบคมสญญาณ input ทเราปอนเขาไปกบสญญาณ output ทออกมานนอาจจะไมใชขอมลรปแบบเดยวกน แตถงอยางไรในการปอนกลบคาของ output มาทำาการเปรยบเทยบนนจะตองผานกระบวนการแปลงขอมลใหอยในรปแบบเดยวกนเพอใหงายตอการเปรยบเทยบ และ เปนมาตรฐานเดยวกน ซ ง กแนนอนวาสญญาณ output ททำาการแปลงมานนจะตองมการคณดวยคาคงทคาหนงเพอปรบคาดงกลาวเพอนำามาใชเปรยบเทยบ ซง ในสมการของการควบคมของ transfer function นนกคอ คา K นนเองดงนนเราจงมความจำาเปนตองทราบคา K (อตราขยาย) เพอใหไดคาความสมพนธทถกตองระหวางคา input และ output ในการเปรยบเทยบ

ก�รห�ค� K จาก transfer function ของ DC motor

G(s) = K/(s+a)จากคา a และ time constant ทได มาในตอนตนเราจะ

ท ำาการหาค าอ ตราขยายหรอค า K โดยการท ำาการ transfer function ในรปของ 1/(s+a) จากนนทำาการปอน input ซงกคอค าแรงด น input น น เอง โดยการเอาค า input คณเขาก บ transfer function แ ล ว ท ำา ก า ร แ ป ล ง เ ป น close loop transfer function แล ว ท ำา กา ร plot กรา ฟขอ ง transfer function โดยปอน input แบบ step input

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

DC motor Position Control using Microcontroller 48

Page 49: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

K : คอ อตราขยายt : คอ คา time constant ซงเทากบเวลาท output = 63 % ของคาท steady statea : คอ คาคงท ซงเทากบ 1/ts : คอ คา output ท steady state ซง กคอทเวลาเขาใกล infinity หรอ คา s เขาใกล 0Input : คอ คาแรงดน input ทปอนดงนนจาก

G(s) = Input*K/(s+a)เมอ s-->0 จะไดวา

s = K*Input/aดงนนเราสามารถหาคา K ไดจาก

K = s*a/Input

ห�ค� K ท input เท�กบ 3 Volt //code simulate with scilab 2.7s = poly(0,'s');t = 0:0.01:0.2;input = 3;trans = 1/(s+238.1);trans1 = trans*input;close_loop = trans1/(1+trans1);lin = syslin('c',close_loop);plot(t,csim('step',t,lin))

DC motor Position Control using Microcontroller 49

Page 50: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รป ท 29 แสดง transfer function ท input = 3 voltt = 0.008a = 1/0.008 = 1253K/a = 0.0125K = (0.0125*a)/ 3 = 0.5208

ห�ค� K ท input เท�กบ 6 Volt //code simulate with scilab 2.7s = poly(0,'s');t = 0:0.01:0.2;input = 6;trans = 1/(s+238.1);trans1 = trans*input;close_loop = trans1/(1+trans1);lin = syslin('c',close_loop);plot(t,csim('step',t,lin))

DC motor Position Control using Microcontroller 50

Page 51: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รป ท 30 แสดง transfer function ท input = 6 voltt = 0.008a = 1/0.008 = 1256K/a = 0.0245K = (0. 0245 * a) /6 = 0.5104

ห�ค� K ท input เท�กบ 9 Volt //code simulate with scilab 2.7s = poly(0,'s');t = 0:0.01:0.2;input = 9;trans = 1/(s+238.1);trans1 = trans*input;close_loop = trans1/(1+trans1);lin = syslin('c',close_loop);plot(t,csim('step',t,lin))

DC motor Position Control using Microcontroller 51

Page 52: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รป ท 31 แสดง transfer function ท input = 9 volt

t = 0.008a = 1/0.008 = 1259K/a = 0.0370K = (0.0370* a)/9 = 0.5139

ห�ค� K ท input เท�กบ 12 Volt //code simulate with scilab 2.7s = poly(0,'s');t = 0:0.01:0.2;input = 12;trans = 1/(s+238.1);trans1 = trans*input;close_loop = trans1/(1+trans1);lin = syslin('c',close_loop);plot(t,csim('step',t,lin))

DC motor Position Control using Microcontroller 52

Page 53: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รป ท 32 แสดง transfer function ท input = 12 voltt = 0.008a = 1/0.008 = 12512K/a = 0.048K = (0.048*a) / 12 = 0.500ต�ร�ง ท 5 สรปของค� K

Input (v) K3 0.52086 0.51049 0.5139

12 0.500เฉลย 0.5113

เพราะฉะนน transfer function ของ motor เปนดงน K = 0.58, a = 238.1

DC motor Position Control using Microcontroller

G(s)r(s) c(s)E(s)

R(s)+

-

1/s C(s)(s)

53

Page 54: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

G(s) = 0.51/(s+238.1)เม อเราทราบคาตาง ๆ ของ transfer function แลว ก

ทำาการ plot กราฟความสมพนธระหวาง output () กบ เวลา (t (s)) ทงนเพอใชขอมลจากกราฟเพอทำาการเปรยบเทยบกบคาทไดจากการทดลองวดคาจรงวามความใกลเคยงกน หรอ ไม และ มความผดพลาดอยในชวงทยอมรบไดหรอไม โดยทำาการ plot ทคา input ตาง ๆ ดงนInput 3 volt

//code simulate with scilab 2.7s = poly(0,'s');t = 0:0.01:0.1;input = 3;trans = 0.51/(s+238.1);trans1 = trans*input;close_loop = trans1/(1+trans1);lin = syslin('c',close_loop);plot(t,csim('step',t,lin),"t(s)","w(r/s)")

รป ท 33 แสดง transfer function ท input = 3 voltInput 6 volt

DC motor Position Control using Microcontroller 54

Page 55: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

//code simulate with scilab 2.7s = poly(0,'s');t = 0:0.01:0.1input = 6;trans = 0.51/(s+238.1);trans1 = trans*input;close_loop = trans1/(1+trans1);lin = syslin('c',close_loop);plot(t,csim('step',t,lin),"t(s)","w(r/s)")

รป ท 34 แสดง transfer function ท input = 6 volt

Input 9 volt

DC motor Position Control using Microcontroller 55

Page 56: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

//code simulate with scilab 2.7s = poly(0,'s');t = 0:0.01:0.1input = 9;trans = 0.51/(s+238.1);trans1 = trans*input;close_loop = trans1/(1+trans1);lin = syslin('c',close_loop);plot(t,csim('step',t,lin),"t(s)","w(r/s)")

รป ท 35 แสดง transfer function ท input = 9 volt

Input 12 volt

DC motor Position Control using Microcontroller 56

Page 57: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

//code simulate with scilab 2.7s = poly(0,'s');t = 0:0.01:0.1input = 12;trans = 0.51/(s+238.1);trans1 = trans*input;close_loop = trans1/(1+trans1);lin = syslin('c',close_loop);plot(t,csim('step',t,lin),"t(s)","w(r/s)")

รป ท 36 แสดง transfer function ท input = 12 volt

DC motor Position Control using Microcontroller 57

Page 58: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

จากกราฟทไดนนจะเหนวา w มคาไมเกน 1 ทงนเนองจาก input ทป อนนนเปน step input (0,1) ดงนน ดงกลาวจงไมใชคาความเรวจรงในทางปฏบต แตเราตองทำาการหาคาอางอง เพอ อางอง และ หาอตราสวนตอหนวยของ ในกราฟ เพอเทยบใหอยในรปของคาความเรวจรงของมอเตอรในเวลานน ๆ ซ ง การพจารณาคาอางองสามารถพจารณาได 4 กรณ ดงน

กรณท 1 ให input ท 3 volt เปนตวอางอง (input reference)คาสงสดทไดคอ 0.0065 ใหเปนความเรวท 375 รอบ/นาท เพราะฉะนนท 3 v คาสงสดทไดคอ 0.0065 จะไดความเรวเทากบ (0.0065 *375)/0.0065 = 375 รอบ/นาทท 6 v คาสงสดทไดคอ 0.0125 จะไดความเรวเทากบ (0.0125 *375)/0.0065 = 721 รอบ/นาทท 9 v คาสงสดทไดคอ 0.0190 จะไดความเรวเทากบ (0.0190 *375)/0.0065 = 1096 รอบ/นาทท 12 v คาสงสดทไดคอ 0.0250 จะไดความเรวเทากบ (0.0250 *375)/0.0065 = 1442 รอบ/นาท

กรณท 2 ให input ท 6 volt เปนตวอางอง (input reference)คาสงสดทไดคอ 0.0125 ใหเปนความเรวท 1125 รอบ/นาท เพราะฉะนนท 3 v คาสงสดทไดคอ 0.0065 จะไดความเรวเทากบ (0.0065 *1125)/0.0125 = 585 รอบ/นาทท 6 v คาสงสดทไดคอ 0.0125 จะไดความเรวเทากบ (0.0125 *1125)/0.0125 = 1125 รอบ/นาท

DC motor Position Control using Microcontroller 58

Page 59: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ท 9 v คาสงสดทไดคอ 0.0190 จะไดความเรวเทากบ (0.0190 *1125)/0.0125 = 1710 รอบ/นาทท 12 v คาสงสดทไดคอ 0.0250 จะไดความเรวเทากบ (0.0250 *1125)/0.0125 = 2250 รอบ/นาท

กรณท 3 ให input ท 9 volt เปนตวอางอง (input reference)คาสงสดทไดคอ 0.0190 ใหเปนความเรวท 1324 รอบ/นาท เพราะฉะนนท 3 v คาสงสดทไดคอ 0.0065 จะไดความเรวเทากบ (0.0065 *1324)/0.0190 = 452 รอบ/นาทท 6 v คาสงสดทไดคอ 0.0125 จะไดความเรวเทากบ (0.0125 *1324)/0.0190 = 871 รอบ/นาทท 9 v คาสงสดทไดคอ 0.0190 จะไดความเรวเทากบ (0.0190 *1324)/0.0190 = 1324 รอบ/นาทท 12 v คาสงสดทไดคอ 0.0250 จะไดความเรวเทากบ (0.0250 *1324)/0.0190 = 1742 รอบ/นาท

กรณท 4 ให input ท 12 volt เปนตวอางอง (input reference)คาสงสดทไดคอ 0.0250 ใหเปนความเรวท 2250 รอบ/นาท เพราะฉะนนท 3 v คาสงสดทไดคอ 0.0065 จะไดความเรวเทากบ (0.0065 *2250)/0.0250 = 585 รอบ/นาทท 6 v คาสงสดทไดคอ 0.0125 จะไดความเรวเทากบ (0.0125 *2250)/0.0250 = 1125 รอบ/นาท

DC motor Position Control using Microcontroller 59

Page 60: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ท 9 v คาสงสดทไดคอ 0.0190 จะไดความเรวเทากบ (0.0190 *2250)/0.0250 = 1710 รอบ/นาทท 12 v คาสงสดทไดคอ 0.0250 จะไดความเรวเทากบ (0.0250 *2250)/0.0250 = 2250 รอบ/นาท

สรป ก�รประม�ณคว�มเรว คาทมคาใกลเคยงกบคาทวดไดทสดคอ กรณท 3 คอ ให input ท 9 volt เปน Referenceต�ร�งท 6 แสดงการเปรยบเทยบความเรวของมอเตอรทไดจากการทดลอง

Input คว�มเรวทวดไดจรง (รอบ/นาท)

คว�มเรวทไดจ�กก�ร simulate (อ�งองท 9 V)

(รอบ/นาท)3 V. 399 4526 V. 887 8719 V. 1367 1324

12 V. 1820 1742

จากคาสงสดทไดคอ 0.0190 ใหเปนความเรวท 1324 รอบ/นาท เพราะฉะนน ทแตละชวง 0.001 บนแกน w จะมความเรวเทากบ (0.001*1324)/0.0190 = 69.68 รอบ/นาท

การพจารณาคาทไดจากการเกบคา output ของ transfer function ของแตละคา input (แรงดน) ทเวลาตาง ๆ โดยการใช function csim ใน scilab เพอทำาการ simulation ผลในรปของชดขอมลทตอเนองทก ๆ ชวงเวลาทกำาหนด โดยสามารถ เขยนคำาสงในการดำาเนนการไดดงน

//code simulate with scilab 2.7s = poly(0,'s');t = 0:0.001:0.04;input = 12;trans = 0.51/(s+238.1);trans1 = trans*input;close_loop = trans1/(1+trans1);lin = syslin('c',close_loop);c = csim('step',t,lin)

DC motor Position Control using Microcontroller 60

Page 61: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ซงจากตวอยางของชดคำาสงดงกลาวเปนการ simulation คาท input 12 v สวนคา input ทแรงดนอน ๆ สามารถท ำาได เชนเดยวกนนโดยการเปลยนคา input เปนคาแรงดนนน ๆ

เมอไดคา output ของแตละคาแรงดนออกมาแลวกทำาการหารดวยคาสงสดของ output ทไดของแตละคาแรงดนนน ๆ เพอท ำาใหอ ตราสวนเป น 1 แลวน ำาค าน น ๆ มาท ำาการ plot เพ อด คณลกษณะของ output กบ เวลา ซงเมอเปนอตราสวนเดยวกน (1) แลว กราฟท plot ได ในทางทฤษฎแลวน นควรจะเป นเสนเดยวกน หรอ ทบกนสนท แต เนองจากอาจมคา error อยบางอาจจะทำาใหกราฟทบกนไมสนท แตถงอยางไร กนาจะหางกนไมมาก

ต�ร�งท 7 แสดงค�ทไดจรง และ ค�ทเทยบเปน 1 ของค� ใน เวล�ต�งๆ ทกๆ 1 ms

เวลา

1 v 3 v 6 v 9 v 12 vวดไดจรง

เทยบเปน 1

วดไดจรง

เทยบเปน 1

วดไดจรง

เทยบเปน 1

วดไดจรง

เทยบเปน 1

วดไดจรง

เทยบเปน 1

0 ms 0 0 0 0 0 0 0 0 0 0

1 ms 0.0004537

0.212287

0.0013605

0.213098

0.002719

0.214299

0.0040755

0.215499

0.00543

0.216698

2 ms 0.0008111

0.379515

0.0024311

0.380788

0.0048553

0.382672

0.0072727

0.384557

0.0096834

0.386441

3 ms 0.0010927

0.511276

0.0032736

0.51275

0.0065339

0.514971

0.009781

0.517188

0.0130151

0.519401

4 ms 0.0013144

0.61501

0.0039365

0.616581

0.0078528

0.61892

0.0117489

0.621244

0.0156249

0.623552

5 ms 0.0014891

0.696753

0.0044582

0.698296

0.008889

0.700589

0.0132926

0.70287

0.0176692

0.705135

6 ms 0.0016267

0.761136

0.0048687

0.762593

0.0097032

0.76476

0.0145037

0.766909

0.0192706

0.769043

7 ms 0.0017351

0.811857

0.0051918

0.813201

0.010343

0.815186

0.0154539

0.817152

0.0205249

0.819099

8 ms 0.0018205

0.851815

0.005446

0.853017

0.0108456

0.854799

0.0161993

0.856567

0.0215075

0.858312

9 ms 0.0018878

0.883305

0.005646

0.884343

0.0112405

0.885923

0.016784

0.887484

0.0222771

0.889025

10 ms 0.001

94080.9081

040.0058

0350.9090

130.0115

5090.9103

870.0172

4280.9117

430.0228

80.9130

8511 ms 0.001

98250.9276

160.0059

2730.9284

040.0117

9470.9296

020.0176

0270.9307

740.0233

5220.9319

312 ms 0.002

01540.9430

10.0060

2480.9436

750.0119

8620.9446

950.0178

8510.9457

060.0237

2210.9466

9113 0.002 0.9551 0.0061 0.9556 0.0121 0.9565 0.0181 0.9574 0.0240 0.9582

DC motor Position Control using Microcontroller 61

Page 62: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ms 0413 28 015 89 368 65 066 18 119 5714 ms 0.002

06170.9646

730.0061

6190.9651

490.0122

550.9658

810.0182

8040.9666

080.0242

3890.9673

1615 ms 0.002

07770.9721

60.0062

0940.9725

890.0123

480.9732

110.0184

1670.9738

150.0244

1670.9744

1116 ms 0.002

09040.9781

020.0062

4680.9784

470.0124

210.9789

640.0185

2360.9794

680.0245

5590.9799

6617 ms 0.002

10040.9827

810.0062

7620.9830

520.0124

7830.9834

80.0186

0750.9839

040.0246

650.9843

218 ms 0.002

10820.9864

310.0062

9940.9866

860.0125

2340.9870

350.0186

7340.9873

890.0247

5050.9877

3219 ms 0.002

11440.9893

320.0063

1760.9895

370.0125

5880.9898

250.0187

250.9901

170.0248

1740.9904

0220 ms 0.002

11930.9916

250.0063

3190.9917

770.0125

8660.9920

160.0187

6550.9922

590.0248

6980.9924

9321 ms 0.002

12310.9934

030.0063

4320.9935

470.0126

0850.9937

420.0187

9730.9939

40.0249

1090.9941

3422 ms 0.002

12620.9948

530.0063

5210.9949

410.0126

2570.9950

980.0188

2220.9952

570.0249

4310.9954

1923 ms 0.002

12850.9959

290.0063

590.9960

220.0126

3920.9961

620.0188

4180.9962

930.0249

6830.9964

2424 ms 0.002

13040.9968

180.0063

6450.9968

830.0126

4980.9969

970.0188

5720.9971

080.0249

880.9972

125 ms 0.002

13190.9975

20.0063

6890.9975

720.0126

5810.9976

510.0188

6920.9977

420.0250

0350.9978

2926 ms 0.002

13310.9980

820.0063

7230.9981

050.0126

6470.9981

710.0188

7860.9982

390.0250

1560.9983

1227 ms 0.002

1340.9985

030.0063

7490.9985

120.0126

6980.9985

730.0188

860.9986

30.0250

2510.9986

9128 ms 0.002

13470.9988

30.0063

7710.9988

570.0126

7390.9988

970.0188

9190.9989

420.0250

3250.9989

8629 ms 0.002

13530.9991

110.0063

7870.9991

070.0126

770.9991

410.0188

9640.9991

80.0250

3830.9992

1830 ms 0.002

13570.9992

980.0063

80.9993

110.0126

7950.9993

38 0.01890.9993

710.0250

4290.9994

0131 ms 0.002

13610.9994

850.0063

8110.9994

830.0126

8150.9994

960.0189

0280.9995

190.0250

4650.9995

4532 ms 0.002

13630.9995

790.0063

8190.9996

080.0126

830.9996

140.0189

050.9996

350.0250

4930.9996

5733 ms 0.002

13660.9997

190.0063

8250.9997

020.0126

8420.9997

080.0189

0670.9997

250.0250

5150.9997

4534 ms 0.002

13670.9997

660.0063

830.9997

810.0126

8520.9997

870.0189

0810.9997

990.0250

5320.9998

1235 ms 0.002

13690.9998

60.0063

8340.9998

430.0126

8590.9998

420.0189

0910.9998

520.0250

5450.9998

6436 ms 0.002

1370.9999

060.0063

8370.9998

90.0126

8650.9998

90.0189

1 0.99990.0250

5560.9999

0837 0.002 0.9999 0.0063 0.9999 0.0126 0.9999 0.0189 0.9999 0.0250 0.9999

DC motor Position Control using Microcontroller 62

Page 63: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ms 1371 53 839 22 87 29 106 31 564 438 ms 0.002

13710.9999

530.0063

8410.9999

530.0126

8730.9999

530.0189

1110.9999

580.0250

570.9999

6439 ms 0.002

1372 10.0063

8430.9999

840.0126

8760.9999

760.0189

1160.9999

840.0250

5750.9999

8440 ms 0.002

1372 10.0063

844 10.0126

879 10.0189

119 10.0250

579 1

กร�ฟแสดงคว�มสมพนธระหว�ง กบ t โดยเทยบ อตร�สวนเท�กบ 1 กร�ฟทไดจ�กค�ททดลองจรง

DC motor Position Control using Microcontroller 63

Page 64: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 37 กราฟทไดจากคาททดลองจรง

กร�ฟทไดจ�กก�ร simulate ในโปรแกรม scilab 2.7

รปท 38 กราฟทไดจากการ simulate ในโปรแกรม scilab 2.7

DC motor Position Control using Microcontroller 64

Page 65: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 39 กราฟแสดงความสมพนธระหวาง กบ t เทยบอตราสวน 1

สรปจากกราฟแสดงความสมพนธระหวาง กบ t ทไดจากการปอน input เขาส transfer function แลวเทยบอตราสวนเปน 1 แลวจะเหนไดวาคา time constant อยทประมาณ 4 ms ซงมคาใกลเคยงกบกราฟทไดจากการทดลองจรง แสดงวาคาทไดมความสอดคลองกน

DC motor Position Control using Microcontroller 65

Page 66: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

บทท 6 ก�รทำ�ง�นของโปรแกรมควบคม

6.1 วธก�รควบคมใหเข�สตำ�แหนงa. เปาหมายหลกในการดำาเนนการคออะไร

วตถประสงคหลกของโครงงานนคอ การควบคมการหมนของ motor ใหเขาสตำาแหนงทตองการ (position) ซง ตองการความแมนยำา และ ความเรยบในการเขาสตำาแหนง ซง ความเรว ในการเขาสตำาแหนงนนควรจะมความรวดเรวพอสมควร

b. กระบวนวธ และ แนวคด ในการควบคม ทำาไมตองใชวธการเหลาน

ในการเขาสตำาแหนงใหเรว แมนยำา และ เรยบทสดนน แนนอนวาจะตองประกอบดวยองคประกอบทเหมาะสมดงนคอo ความเรวเรมตนทเหมาะสมเพอใหการเรมหมนใชเวลา

นอยทสดo ความเรวปลายกอนการหยดเพอใหการเขาสตำาแหนง

มความนงซงวธในการควบคมนน จะเปนแบบความเรวในการหมนสามารถเปลยนแปลงไดขนกบระยะทางของตำาแหนงเปาหมาย ซงแสดงดงรปท 1 และ รปท 2

DC motor Position Control using Microcontroller 66

Page 67: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 40 แสดงการปรบเปลยนวามเรวโดยเรมจากคาความเรวตำา

จากรปท 40 เปนการเรมหมนจากคาความเรวตำา และ ทำาการปรบความเรวสงขนหากระยะทางยงไกลอย และ ปรบลงอกครงเมอเขาใกลเปาหมาย

รปท 41 แสดงการปรบเปลยนวามเรวโดยเรมจากคาความเรวสง

จากรปท 41 เปนการเรมหมนจากคาความเรวสง (ระยะไกล)และ ทำาการปรบความเรวลงเรอย ๆ เมอเขาใกลเปาหมาย

Algorithm ของก�รควบใหเข�สตำ�แหนง Algorithm ในการเขาสตำาแหนงอยางแมนยำา และ เรยบทสด

เทาทจะทำาได คาจากการทดลอง ระดบคาแรงดนตาง ๆ ในการเขาสตำาแหนง

จากระยะตาง ๆ กน

DC motor Position Control using Microcontroller 67

Page 68: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

จากการดำาเนนการทดลองจรงนนพบวาคาความเรวแตละคาจะมความแมนนำาในการเขาสตำาแหนงทตางกน และ ความเรวในการตอบสนองตางกนดวย ซงในโดรงงานนใชการควบคมแบบการปรบเปลยนวามเรวโดยเรมจากคาความเรวสงไปสคาความเรวตำาดงแสดงในรปท 2. ซ งในการเปลยนความเรวนนจะเปนการเปลยนคาแรงดนทปอนเขาส motor ซง จะใชหลกการ pulse width modulate ในการควบคม ซงคาความเรวในการควบคมจรงนนไมไดเปลยนแปลงอยในรปของเสนตรงตามรปท 2. แตจะเปนการควบคมความเรวแบบขนบนได โดยทระยะทางชวงหนง ๆ จะมการควบคมความเรวเปนคา ๆ หนง และ มการปรบเปลยนความเรวตามชวงของระยะทางในการเขาสเปาหมายดงรปท 42

ในการด ำา เน นการควบคมจรงน น ได ท ำาการแบง case ความเรวออกเปนหลาย ๆ case ซงแตละ case นนจะมการสราง PWM ททำาใหจายแรงดนตางกน ทำาใหมความเรวตางกนดวย ซงวธการนนจะไดกลาวถงตอไปในสวนของ Algorithm ของ code program : Algorithm code – Power CPU

รปท 42 แสดงการปรบเปลยนวามเรวทดำาเนนการจรงในรปแบบของลำาดบขน

6.2 ก�รควบคมแบบปอนกลบทงคว�มเรว และ ตำ�แหนง

DC motor Position Control using Microcontroller 68

Page 69: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ในการควบคมของโครงงานนนนวตถประสงคหลก คอ การควบคมการหมนของมอเตอรใหเขาสตำาแหนงทตองการอยางแมนยำา และ มความนงในการเขาสตำาแหนง ซง การควบคมการเขาสตำาแหนงนนทำาไดโดยการทำาการปอนกลบคาตำาแหนงในการเคลอนทมาเทยบกบคา input ซงทางอดมคต เมอ คาปอนกลบมคาเทากบคา input แลว การหมนของมอเตอรจะหยด และ คา error ในการหมนจะมคาเทากบ 0 แตในการควบคมจรงนนไมเปนเชนนน เนองจากในการหมน และ การหยดของมอเตอรนนจะมคาความเฉอยในการหมนอยดวยทำาใหการเคลอนทเขาส ต ำาแหนงในความเปนจรงนนจะมค าความคลาดเคลอนสง ดงนนในการควบคมเพอใหมการเขาสตำาแหนงทแมนยำาในการดำาเนนการจรงจะตองทำาการปอนกลบความเรวดวยเพอควบคมความเรวในการหมนของแตละชวงของระยะทาง ซง จะมการพจารณาตามระยะทางโดยหากระยะทางในการเขาถงมคามากกจะใชความเรวสง และ ลดลง เมอเขาใกลเปาหมายมากขน

DC motor Position Control using Microcontroller

G(s)r(s) c(s)E(s)

R(s)+

-

1/s C(s)(s)

69

Page 70: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

6.3 Flow Chart ของ โปรแกรมควบคมในโครงงานนมหลกการทำางานของโปรแกรมควบคมอย 3 สวน ดงน

1. Flow chart Main CPU

รรรรรร 43รรรรFlow chart Main CPU จะทำาการรบคา จำานวน pulse และ ทศทาง จากคอมพวเตอร

ทางพอรตอนกรมตอเมอมขอมลมาทางพอรตอนกรม

DC motor Position Control using Microcontroller 70

Page 71: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

จะทำาการเชครบคา จำานวน pulse ทไดจากการ Sampling แบบ วนลป

ตรวจสอบ Error ของจำานวน pulse วาอยในกรณใด กจะสงใหสวนขบมอเตอร ขบมอเตอรตามกรณ Error ทได

2. Flow chart Sampling CPU

DC motor Position Control using Microcontroller 71

Page 72: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รรรรรร 44 Flow chart Sampling CPU* ทำาการรบคาจาก Encoder ทกๆ 20 ไมโครวนาท

3. Flow chart Power CPU

DC motor Position Control using Microcontroller 72

Page 73: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รรรรรร 45 Flow chart Power CPUก�รทำ�ง�นของสญญ�ณ PWM รปท 1 แสดงสญญาณ PWM ทแตกตางกน 3 สญญาณ

- โดย 10a แสดงสญญาณ PWM ท 10% duty cycle คอ สญญาณในการออนจะเปน 10% ของคาบสญญาณ และ จะออฟเปน 90% ของคาบสญญาณ

- โดย 10b แสดงสญญาณ PWM ท 50% duty cycle คอ สญญาณในการออนจะเปน 10% ของคาบสญญาณ และ จะออฟเปน 50% ของคาบสญญาณ

- โดย 10c แสดงสญญาณ PWM ท 90% duty cycle คอ สญญาณในการออนจะเปน 10% ของคาบสญญาณ และ จะออฟเปน 10% ของคาบสญญาณ

เชน ถา Power Supply ม 9V และ duty cycle เปน 10% จะไดเอาทพต 0.9V

DC motor Position Control using Microcontroller 73

Page 74: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 46 แสดงสญญาณ PWM ซงแสดงคา duty cycles ทตางๆกน

4. Flow Chart การควบคมทศทาง

รปท 47 แสดง Flow Chart การควบคมทศทาง

DC motor Position Control using Microcontroller 74

รปท 10a

รปท

รปท

Page 75: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

5. Flow Chart การควบคมตำาแหนง

รปท 48 แสดง Flow Chart การควบคมตำาแหนง

DC motor Position Control using Microcontroller 75

Page 76: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

6. Flow Chart การควบคมทงโครงงาน

รปท 49 แสดง Flow Chart การควบคมทงโครงงาน

DC motor Position Control using Microcontroller 76

Page 77: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

บทท 7 ก�รทดสอบและบทสรป

ก�รทดสอบคว�มคล�ดเคลอนในก�รเคลอนทจากทเราทราบวาโครงงานนทำาการควบคมตำาแหนง และ

ความเรวของมอเตอรโดยม parameter ควบคมดงน Motor

o แรงดนสงสด 14.8 vo กำาลงสงสด 25.9 wo Encoder 200 pulse / รอบo เรมหมนทแรงดน1 v.

power supplyo ปมปรบแรงดน fixed +15 v,+12 v, +5 v , -15

v, -12 v, 0 vo ปมปรบแรงดนสามารถปรบแรงดนไดในชวง 0 – 30 v

ก�รทดสอบในการทดสอบในสวนของความคลาดเคลอนในการเคลอนทนน

จะใชหลกการในการสมทดสอบเปนกรณ ๆ ไป โดยจะเปรยบเทยบคาทไดจรง กบ ตำาแหนงทตองการทปอนเขามา ซ งในโครงงานน encoder ทตออยก บ motor นนมความละเอยด 200 pulse / รอบ และเปนแบบ 2 phase ซงจะทำาใหสามารถปรบความละเอยดไดสงสด 4 เทาคอ 800 pulse / รอบ และ สามารถตรวจสอบทศทางการหมนไดดวย แต เนองจากความละเอยด 800 pulse / รอบ ม

DC motor Position Control using Microcontroller 77

Page 78: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ความละเอยดสงเกนไป ซง อาจจะทำาใหมความคลาดเคลอนสง และ การทำางานอาจจะไมทนในเวลาเนองจากมความเรวสงมาก จงเลอกใชความละเอยดท 400 pulse / รอบ

การทดสอบนนจะทำาการทดลองการหมนในแตละทศทาง และ แตละกรณของ pulse เป าหมายท ป อนตาง ๆ แยกกน ท งน เนองจากความเรวของทศทางตามเขมนาฬกา เรวกวา ทศทางทวนเขมนาฬกาเลกนอย (จากการทดลอง) ทำาใหคา ความเรวในการเขาถงตำาแหนง และ คา error ของ 2 ทศทางในแตละ case ของแรงดนเดยวกน มคาตางกน

ต�ร�ง ท 8 ผล ก�รทดสอบ Input Output

จำานวน pulse

หมนตามเขม

 

หมนทวนเขมครงท

1ครงท

2ครงท

3Pulse เฉลย

Error (pulse)

ครงท 1

ครงท 2

ครงท 3

Pulse เฉลย

Error (pulse)

1 1 1 1 1.00 0.00 1 1 1 1.00 0.005 4 5 4 4.33 0.67 5 4 5 4.67 0.33

10 12 10 8 10.00 0.00 8 10 9 9.00 1.0020 19 20 18 19.00 1.00 20 19 20 19.67 0.3330 32 30 31 31.00 -1.00 30 29 30 29.67 0.3340 39 38 40 39.00 1.00 40 39 39 39.33 0.6750 49 48 50 49.00 1.00 48 49 49 48.67 1.3360 60 60 60 60.00 0.00 60 60 60 60.00 0.0080 78 80 82 80.00 0.00 82 81 80 81.00 -1.00

100 100 100 100 100.00 0.00 96 98 98 97.33 2.67120 119 118 120 119.00 1.00 119 119 120 119.33 0.67140 139 140 138 139.00 1.00 140 139 140 139.67 0.33160 159 160 158 159.00 1.00 160 158 160 159.33 0.67180 182 180 180 180.67 -0.67 182 182 180 181.33 -1.33200 196 198 198 197.33 2.67 200 202 200 200.67 -0.67220 222 222 220 221.33 -1.33 218 219 220 219.00 1.00240 242 240 242 241.33 -1.33 244 240 242 242.00 -2.00260 256 258 259 257.67 2.33 264 262 262 262.67 -2.67280 284 282 280 282.00 -2.00 282 280 281 281.00 -1.00300 306 306 304 305.33 -5.33 301 300 302 301.00 -1.00320 324 322 322 322.67 -2.67 320 319 320 319.67 0.33340 340 342 340 340.67 -0.67 339 339 340 339.33 0.67360 366 362 362 363.33 -3.33 366 363 364 364.33 -4.33380 386 386 386 386.00 -6.00 386 386 386 386.00 -6.00

DC motor Position Control using Microcontroller 78

Page 79: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

400 406 404 404 404.67 -4.67 404 406 404 404.67 -4.67

วเคร�ะหผลก�รทดสอบ ทศตามเขมนาฬกาจากผลการทดสอบการหมนในชวง input ในชวง 1-180 pulse

จะเหนไดวามคา error เฉลยสงสดในการเคลอนทไมเกน 1 pulse และ ในชวง input 180 – 280 pulse นนจะมคา error สงสดไมเกน 5.33 pulse และ ในชวง input 280-400 pulse มคา error สงสดไมเกน 6.00 pulse

ทศทวนเขมนาฬกาจากผลการทดสอบการหมนในชวง input ในชวง 1-180 pulse

จะเหนไดวามคา error เฉลยสงสดในการเคลอนทไมเกน 2.67 pulse และ ในชวง input 180 – 280 pulse นนจะมคา error สงสดไมเกน 2.67 pulse และ ในชวง input 280-400 pulse มคา error สงสดไมเกน 6.00 pulse

จากผลการทดสอบดงกลาวจะเหนไดวาการหมนในชวง input 1 – 180 ของทศทางตามเขมจะมความแมนยำาสงกวาทศทางทวนเขม คอ ม error อยในชวงไมเกน 1 pulse เทานน สวนการหมนในชวง 180 -280 pulse นนการหมนในทศทางทวนเขมนาฬกาจะมความแมนยำาสงกวา คอ คา error อยในชวงไมเกนบวกลบ 2.7 pulse

DC motor Position Control using Microcontroller 79

Page 80: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

และ ในชวง 280 – 400 pulse นนทงสองทศทางในการหมนมคา error เฉลยใกลเคยงกนคอ 6.00 pulse

สรปผลก�รทดสอบจากผลการทดลองเหนไดวาทงการหมนทวนเขมนาฬกา และ

ตามเขมนาฬกานนในชวงของ 1 – 180 pulse แรกนนจะมความแมนยำาสง สวนคา input ทสงกวานนจะเรมมคา error สงขนทงนเนองจากกระบวนการควบคมความเรว เมอระยะทางยงไกลจะมการใชความเรวสงในการเขาถงทำาใหเกด error เนองจากแรงเฉอยในการเคลอนทบาง ดงนนระยะทางตาง ๆ จะมความเรวชวงหนงทเหมาะสมในการเขาถงโดยระยะทางทไกล ๆ จะตองมการปรบลดความเรวในชวงสดทายใหเรวกวาการเคลอนทระยะทางใกล ๆ เพอใหการเขาถงตำาแหนงมความแมน

แนวคดในก�รดำ�เนนง�น และ ปรบปรงตอไปจากการทำาโครงงานการควบคมตำาแหนง และ ความเรวของดซ

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

ดาน Hardwareo ในโครงงานมการใชไมโครคอนโทรลเลอร 3 ตวในการ

ทำางานในแตละสวนแยกกน ซ ง ทำาใหการทำางานของแตละสวนรวดเรว และเปนอสระตอกน แตกทำาใหเกด

DC motor Position Control using Microcontroller 80

Page 81: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ปญหาเรองของความไมพอเพยงของพอรตใชงานไดหากตองการใหการสงคาตำาแหนงและทศทางมความละเอยดสงขน แตกวามารถแกไขไดโดยการแกไขในสวนของ Software ในการรบสงคาแทนได

o การกำาหนดจดเรมตนของการเคลอนทยงไมมจดเรมตนทแนนอนเพราะใชมอเลอนมายงจดเร มตนเอง ซงอาจแกไขโดยเพมวงจร Hardware ใหมอเตอรหมนไปยงจดเรมตนทกครงทเรมการควบคม

ดาน Softwareo ในสวนของ software นนพบวาสามารถทำางานไดตาม

ทตองการโดยสามารถทำาการควบคมการหมน การหยดของมอเตอรไดแมนย ำาพอสมควร ท งน ในสวนของ software ในการ sampling ตำาแหนงการหมนของมอเตอรในสวนของการอานคาจาก Encoder ซ งม ขนาด 200 pulse / รอบ แบบ 2 phase นนสามารถทำาใหมความละเอยดไดสงสดท 800 pulse / รอบ โดยการโปรแกรมใหอานคาใน 1 ชวงคาบเปน 4 step ได ซงจะทำาใหไดตำาแหนงทมความละเอยดสงขน

DC motor Position Control using Microcontroller 81

Page 82: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

บรรณ�นกรม1. E.H. Werninck. 1978, Electric Motor Handbook,

McGraw – Hill Book Company United states.2. Electro Craft Corpn, DC Motor Speed Control and

Servo Systems, Engineering Handbook, 3rd ed., 1975.

3. Schwarzenbach, J. and Gill, K.F. , System modeling and Control, Second Edition, Routledge, Chapman and Hall, Inc, New York: 1984.

4. Robotics and automation , Proceedings., 1988 IEEE International conference on, 24-29 Apr. 1988, Page: 1511-1519 vol.3

5. โยธน เปรมปราณรชต. 2526. วเคราะหและออกแบบระบบควบคมมอเตอร . กรงเทพฯ : สถาบนเทคโนโลยพระจอมเกลา วทยาเขตเจาคณทหารลาดกระบง

6. ศภชย สรนทรวงศ. 2535. มอเตอรไฟฟากระแสตรง . กรงเทพฯ: สมาคมสงเสรมเทคโนโลย(ไทย-ญปน)

7. สนทร วทสรพจน. 2537, การใชงานไมโครคอนโทรลเลอร ตระกล 8051 . กรงเทพฯ : พมพท บรษท เอช.เอน. กรป จำากด โทร.2953544-46

8. ประมวล หนราช. 2534, มอเตอรกระแสตรง . เซมคอนดกเตอรอเลกทรอนกส ฉ.104 (ม.ค. 2534 – ก.พ. 2534): 265-271.

9. ไชยนต สวรรณชวะศร. 2535, เจาะกน ... หนยนต ตอน ควบคม ความเรว DC มอเตอร ดวยระบบดจตอล . เซมคอนดกเตอรอเลกทรอนกส ฉ.114 (ก.พ. 2535): 143-148.

10. MCS 51 . (online) Available : http://www.kmitl.ac.th/~s2015401/index1.html

11. Motion Control. (online) Available: http://www.panmanee.com/step_article3.htm

12. Visual Basic Programming Interface Hardware(online) Available: http://www.thaiio.com/Programing/Vbpage.htm

DC motor Position Control using Microcontroller 82

Page 83: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

13. โครงงานการใช Visual Basic ตดตอควบคม MicroController 8051(online) Available: http://www.thaiio.com/Project/MCU51C.htm

14. Available: http://www.keil.com/download/c51.asp

15. MCS-51 Processor Application (online) Available: http://home.postech.ac.kr/~oyz/mcs51/

16. Robots:Stepper Motors (online) Available: http://www.cctc.demon.co.uk/stepper.htm

17. Increased benefit/cost ratio for motor control (online) Available: www.embedded-control-europe.com/pdf/

18. Pulse Width Modulate Available: http://www.thewindmill.freeserve.co.uk/bugbot/pulse_width_modulation.htm

19. Pulse Width Modulate Available: http://www.cpemma.co.uk/pwm.html

ภาคผนวก กรายละเอยดเกยวกบวงจรทางดานฮารดแวร

DC motor Position Control using Microcontroller 83

Page 84: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

DC motor Position Control using Microcontroller 84

Page 85: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

DC motor Position Control using Microcontroller 85

Page 86: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ภาคผนวก ขไมโครคอนโทรลเลอรตระกล 8051

Microprocessor 8051ในไมโครคอนโทรลเลอรเบอร 8051 ประกอบดวยพอรต

อนพตเอาทพตแบบ 2 ทศทาง (Bidirectional) จำานวน 4 พอรต

DC motor Position Control using Microcontroller 8051 86

Page 87: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

แตละพอรตมอปกรณแลทซขอมล และเอาทพตไดรเวอรประกอบอยทางดานเอาทพต และทางดานอนพตจะมบฟเฟอร (พอรตทง 4 เปนรจสเตอรพเศษชอ P0, P1, P2 และ P3) เราสามารถใชงานแตละพอรตเปนอนพต หรอเอาทพตไดตามตองการ แตละบตของพอรตสามารถเชอมตอกบสญญาณ TTL ไดโดยตรง

ในการตดตอกบหนวยความจำาภายนอกพอรต P0 และ P2 จะใชสำาหรบกำาหนดตำาแหนงของหนวยความจำาภายนอก โดยพอรต P0 จะทำางานในลกษณะของมลตเพลก คอเปนทงพอรตตำาแหนงและ พอรตขอมล โดย P0 จะเปนตำาแหนงของหนวยความจำาดานตำา (Low byte) และ P2 จะเปนตำาแหนงของหนวยความจำาดานสง (High byte)สญญาณตางๆ ของไมโครคอนโทรลเลอรเบอร 8051 สามารถจำาแนกตามการทำางานเปน 3 กลมคอ

กลมสญญาณตำาแหนง : เปนตวกำาหนดตำาแหนงของหนวยความจำา

กลมสญญาณควบคม : เปนสญญาณควบคมการทำางานของไมโครคอนโทรลเลอร

กลมสญญาณขอมล : เปนทางผานของขอมลระหวางไมโครคอนโทรลเลอรกบหนวยความจำา

โครงสรางภายในไมโครคอนโทรลเลอรเบอร 8051

1 หนวยความจำาภายในสำาหรบขอมลขนาด 128 ไบต  2 หนวยความจำาสำาหรบเกบโปรแกรมขนาด 4 กโลไบต  3 อปกรณควบคมอนเตอรรพท  4 ตวตงเวลาและตวนบขนาด 16 บต 2 ชด

 5 พอรตควบคมการสอสารอนกรมแบบ Full Duplex ซง สามารถรบและสงขอมลพรอมกนได

DC motor Position Control using Microcontroller 8051 87

Page 88: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

 6 พอรตขนานสำาหรบตดตอกบอปกรณภายนอกจำานวน 4 พอรตๆ ละ 8 บต

 7 วงจรผลตสญญาณนาฬกาภายใน

ตวตงเวลาและตวนบ (Timer/Counter) ไมโครคอนโทรลเลอรเบอร 8051 ประกอบดวยรจสเตอร ตว

ตงเวลา/ตวนบ ขนาด 16 บต จำานวน 2 ชด คอ Timer0 และ Timer1 โดย Timer ทงหมดสามารถกำาหนดใหทำางานในลกษณะ ของตวนบหรอตวจบเวลากได

การทำางานในโหมดของตวตงเวลา คาของรจสเตอรจะเพมขนทกๆ แมชชนไซเคลโดย 1 แมชชนไซเคล ประกอบดวยสญญาณนาฬกา 12 ลก ดงนนอตราการจบเวลาจะเปน 1/12 เทาของความถสญญาณนาฬกา ของระบบ คาสงสดทตงไดคอ 2 ยกกำาลง 16

การทำางานในโหมดการนบ คาของการนบจะเพมขน เมอสญญาณเขามาทขา T0 และ T1 เปลยนจาก 1 เปน 0 ความเรวในการนบสงสดคอ 1/24 เทาของสญญาณนาฬกา โดยสญญาณทเขามาทขา T0 หรอ T1 จะม Duty Cycle เทาใดกได

8051 กบการ interrupt วงจรนบ / จบเวลา วงจรนบ / จบเวลา           8051 ประกอบดวย register ขนาด 16 bit จำานวน 2 ตว คอ T0 (Timer0) และ T1 (Timer1) ซงสามารถนำาไปใชงานไดอยางอสระ โดยสามารถควบคมใหทำาหนาทเปนตวจบเวลา(Timer) เพอนบจำานวน plus สญญาณนาฬกาภายใน หรอควบคมใหทำาหนาทเปนตวนบ(Counter) เพอนบจำานวน plus ของ

DC motor Position Control using Microcontroller 8051 88

Page 89: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ระบบ ได ภายใน register แตละตวยงสามารถแยกออกไดเปน register ขนาด 8 bit คอ TH0, TL0, TH1 และ TL1 โดยการทำางานของ register ทง 2 ตวนมผลมาจากการกำาหนดคาของ bit ทอยภายใน TMOD (Timer mode control register) และ TCON (Timer/Counter control register), bit ตางๆภายใน register TMOD, bit ตางๆภายใน register TCON

การ Interrupt วงจรนบตรวจ / จบเวลา           จากกระบวนการทำางานของวงจรนบ/จบเวลาของ 8051 จำาเปนตองกำาหนดคาเรมตนใหกบ register T0 หรอ T1 คานเปนคาจำานวน plus ภายในทจะตองนบหรอคาของจำานวน plus ภายนอก ทเขามาทางขาสญญาณสญญาณ T0 หรอ T1 คาตวเลขภายใน register นจะตองลดใหมคาทนอยกวา คาทตองการอยหนงคา ทงนเนองจากการทำางานของ register จะเพมคาจากทกำาหนดไปเรอยๆ จนถง คาสงสดของ register และกลบไปเปนคา 0 เมอมการเกด Overflow เกดขน ทำาใหเกดการกำาหนดคา flag เพอแจงให CPU ไดรบทราบ ดงนนโปรแกรมทวไปจงมกใชสภาวะของ flag น( TF0 และ TF1 ) ซงเปน bit อยภายใน register TCON เพอตรวจสอบวากระบวนการนนไดเสรจสนลงแลว หรอใชเพอ ทำาการ interrupt program ตอไป

สวนควบคมการทำางานของวงจรนบ / จบเวลา         ซงประกอบดวยสวนของการกำาหนดทมาของสญญาณ

(Timer) หรอ (Counter) และ bit หรอขาสญญาณสำาหรบการหยดหรอทำางานของวงจรนบการทำางานเปนตวจบเวลาตองมการกำาหนดคาใหอยในสภาวะดงตารางกอน

DC motor Position Control using Microcontroller 8051 89

Page 90: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ก�รกำ�หนดค� bit Register คว�มหม�ย

C/T = 0 TMOD กำาหนดใหเปนการจบเวลา

TR1 หรอ TR0 = 1 TCON กำาหนดสภาวะใหมการทำางาน

GATE = 0 หรอระดบขาสญญาณทขา INT0 หรอ INT1 เปนสภาวะ logic สง

TMOD กำาหนดสภาวะควบคมการทำางาน

Baud RateBaud Rate = 2 SMOD x f

384 x (256 – TH1)

ก�ร Initial ค� Baud rate

DC motor Position Control using Microcontroller 8051

8051 Timer/CounterTMOD and TCON Registers

Timer/Counter 0Timer/Counter 1C/T#M1M0GATE#C/T#M1M0GATE#TMOD

Timer/Counter 0Timer/Counter 1TF1TR1TF0TR0IE1IT1IE0IT0TCON

90

Page 91: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

Set baud rate to 9600 for 11.0592 Crystalmov TMOD, #20h ; set timer 1 for auto reloadmov TCON, #41h ; run counter 1 edge trigmov TH1, #0FDh ; 9600 baudmov SCON, #50h ; 8-bit data mode 1

Sending and Receiving Subroutinessndchr: getchr:

clr TI jnb RI, getchrmov SBUF, A mov A, SBUFtxloop: jnb TI, txloop clr RIret ret

ก�รจบเวล�ใน Mode 0: การทำางานใน mode 0 วงจรนบจบเวลาจะทำาหนาทเปนตวนบขนาด 13 bit( โดยใช register TH0 หรอ TH1 เปนตวนบขนาด 8 bit และ register TL0 หรอ TL1 มขนาด 5 bit ) ตามลกษณะของ แผนภาพในรป ก�รจบเวล�ใน Mode 1: การทำางานใน mode 1 มความคลายคลงใน mode 0 มาก แตกตางกนท mode 1 เปนตวนบขนาด 16 bit เตม ดงรป ก�รจบเวล�ใน Mode 2: การทำางานใน mode 2 ของวงจรนบ/จบเวลาแตกตางกนออกไปเพยงใช register TL0 (TL1) เปน ตวนบขนาด 8 bit สวน register TH0 (TH1) เกบคาเรมตนของการนบไว ก�รจบเวล�ใน mode 3 : การทำางานใน mode 3 จะสามารถใชไดเฉพาะกบ Timer 0 เทานน หากวานำาไปกำาหนดใหกบ Timer 1 จะทำาใหหยดการทำางานไป เมอ Timer 0 ไดรบการกำาหนดทำางานใน mode 3 จะมผลทำาให register ของมนแยกการทำางานเปนอสระ โดย register TL0 จะถกควบคมจาก bit ภายใน register TCON และ ขาสญญาณ INT0 ดงแสดงในรป และเมอมการ Overflow เกดขน จากคา 0FFH เปน 00H ก จะมผลให flag TF0 มการเปลยนแปลงเกดขน สำาหรบ register TH0 จะถก

DC motor Position Control using Microcontroller 8051 91

Page 92: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

กำาหนดใหทำางานในแบบ ของตวจบเวลาภายใตการควบคมของ bit TR1 ใน register TCON เทานน และหากเกด Overflow จะมผลเฉพาะตอ flag TF1 ในสวน Timer 1 ขณะเมอ Timer 0 ถกกำาหนดใหทำางาน mode 3 กยงจะสามารถทำางานใน mode อนๆ ทไมใช mode 3 ได เชนเดม ยกเวนจะไมมการ interrupt เกดขนเทานน (เนองจาก flag TF1 ถก ใชโดย Timer 0 ไปแลว) รปการทำางานใน mode 3

การทำางานเปนตวนบสญญาณ               การใชงานในลกษณะตวนบ(Counter) โดยหลกแลวจะเหมอนกบลกษณะการทำางานเปน ตวจบเวลา (Timer) ดงไดกลาวในหวขอทผานมา ขอแตกตางประการเดยวคอ แทนทจะนบ plus สญญาณภายในและผานวงจรหาร 12 มาเปนการนบ plus สญญาณทางขาสญญาณ T0 (P3.4) ให กบ Timer0 หรอขาสญญาณ T1 (P3.5) ใหกบ Timer1 เทานน นอกจากนกอนการเรมตนใชงานจะ ตองกำาหนดคาของ bit C/T ภายใน register TCON ใหมคาเปน 1 เสยกอน

วงจรนบ / จบเวลา 2(Timer2) Mode การทำางานของ Timer2 ประกอบดวยCapture mode: สามารถเลอกใชงานได 2 ลกษณะ ดวยการกำาหนดใหกบ bit EXEN2 ของ register T2CON ดงน 1. เมอกำาหนด bit EXEN2 เปน 0 Timer 2 ยงทำางานเปนวงจรนบ/ตรวจจบเวลา เมอมการ overflow ขน bit ใน register TF2 จะถกเซต และสามารถนำาไปสรางการ interrupt ขนได 2. เมอกำาหนดคา bit EXEN2 เปน 1 การทำางานจะครอบคลมการทำางานลกษณะขางตน แตจะเพมเมอมการเปลยนแปลงระดบ สญญาณทางขาสญญาณ T2EX จาก logic สง ไปเปน logic ตำา จะมผลทำาใหคาขอมลภายใน register ของ Timer2 คอ TL2 และ TH2 ถกนำาไป

DC motor Position Control using Microcontroller 8051 92

Page 93: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ใส(Capture) ใหกบ register RCAP2L และ RCAP2H ซงเปน register หนาทพเศษ หรอ SFR ทมใน Microcontroller เบอร 8052 เทานน นอกจากนจะมผลทำาให bit EXF2 ภายใน register T2CON มคาเปน 1 สามารถนำาไปใชงานในการ interrupt ไดเชนกน Auto-reload mode: สามารถทำางานได 2 ลกษณะเชนเดยวกนBaud rate Generator:  ของ Timer 2 จะมความแตกตางจาก Timer 0 และ Timer 1 โดยวงจรรบ และการสง สามารถเปนคาทตางกนได ขนอยกบการกำาหนดคาใหกบ bit TCLK และ RCLK ของ Timer 2 ดงแสดงใหเหนจากภาพการทำางาน

การทำางานของโหมดนคลายคลงกบการทำางานใน Auto-reload mode กลาวคอคาใน register TH2 เปลยนแปลงจากคา 0FFH ไปเปนคา 0 หรอทเรยกวา overflow จะมผลใหมการโหลดขอมลขนาด 16 bit จาก register RCAP2H และ RCAP2L ซงมการเตรยมคาลวงหนาแลวโดยอตโนมต

DC motor Position Control using Microcontroller 8051 93

Page 94: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ภาคผนวก คการสอสารทางพอรตอนกรมแบบ RS-232 กบ ไมโคร

คอนโทรลเลอรตระกล 8051

SERIAL PORT COMMUNICATIONการสอสารขอมลอนกรมเปนการรบหรอสงขอมลในลกษณะ

ของบตหรอกลมของบต คราวละหนงบตเปนลำาดบเรอยไปจนสนสด จงหวะเวลาของการสอสารขอมลอนกรม

โดยทวไปมกจะระบกนในหนวยของจำานวนบตขอมลภายในเวลาหนงวนาท เรยกวา อตราบอด ตามคามาตรฐานเหลาน ไดแก 110, 150, 300, 1200, 2400, 4800, และ 9600 จากรปท 20 แสดงใหเหนลกษณะของรปแบบสญญาณขอมลอนกรมทปรากฏในสายสงสญญาณ ขอมลทง 8 บตนหากวาถกสงออกมาดวยอตรา

DC motor Position Control using Microcontroller 8051 94

Page 95: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

2400 บอดจะใชเวลาในการสงขอมลหนงบตมคาเทากบ 1/2400 หรอ 416 ไมโครวนาท และเวลาในการสงขอมลทง 8 บตมคาเทากบ 8x416 หรอ 3,328 ไมโครวนาท

รปท 50 รปแบบสญญาณไฟฟาของขอมล ซงเปนการสงขอมลแบบอนกรมดวยอตราเรว 2400 บต/วนาท (สงเกตวาจะเรมสงจากบต

D0 ซงเปนบตนยสำาคญตำาออกมากอนเปนลำาดบแรก)

รปแบบของขอมลอนกรมวธการทจะทำาใหขอมลสอสารอนกรมมความถกตองมากยงขน จะ

ใชการเพมเตมบตขอมลบางอยางรวมไปกบการสงขอมลจรง ไดแก 1. บตเรมตน (Start Bit)มหนาทสำาหรบการบงบอกใหวงจรฮารดแวรทางดานรบทราบถง

ตำาแหนงจดเรมตนของบตขอมลกลมใหม เพอทจะทำาการปรบจงหวะของสญญาณการรบขอมลใหตรงกน ดงนนบตเรมตนนจงจะถกเพมเขาไปกอนระดบลอจกของสภาวะของสายสอสาร ขณะเมอไมมการสงขอมล

2. บตแสดงภาวะความเปนเลขคหรอเลขค (Parity Bit)มหนาทเพอตรวจสอบความถกตองของขอมล โดยทวไปมกเรยก

วา บตพารตและจะนำาไปแทรกตอทายบตขอมล คาของบตนขนอยกบ

DC motor Position Control using Microcontroller 8051

1/2400 ไมโครวนาท

8 x (1/2400) = 3.3 มลลวนาท

D0 D1 D2 D3 D4 D5 D6 D7

95

Page 96: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

จำานวนคาของบตขอมลทเปน 1 ซงจะเปนไดสองลกษณะ คอ พารตค (Even Parity) หรอ พารตค (Odd Parity)

3. บตสดทาย (Stop Bit)เปนบตทเพมเตมขนเพอระบถงขอบเขตการสนสดของกลมบต

ขอมล บตสดทายนอาจจะมจำานวนมากกวาหนงบตได คอ 1.5 บต และ 2 บต ดงนนกรณของการสงขอมล 8 บตพรอมบตทเพมเตมเขาไปโดยสมบรณ คอ บตเรมตน บตพารต และ บตสดทาย รวมทงสน 12 บต ตามแผนภาพสญญาณเวลาในรปท 2 หากขอมลถกสงออกไปดวยอตราเรว 2400 บอด เวลาโดยรวมในการสงขอมลหนงไบตจะมคาเปน 12 x 416 ไมโครวนาท หรอ 4.99 มลลวนาท

รปท 51 แผนภาพสญญาณเวลาของขอมลแบบอนกรมจำานวน 8 บต

พรอมดวยบตเรมตนบตพารต และ บตสดทาย

การจดการขอมลอนกรมของ 8051 พอรตอนกรมของ 8051 มโครงสรางการทำางานในแบบท

เรยกวา ฟลดเพลกซ (Full Duplex) ซงหมายถงความสามารถในการรบและสงขอมลอนกรมไดในเวลาเดยวกน โดยทางดานวงจรของตวสง (Transmitter) ประกอบดวยรจสเตอร SBUF ทำาหนาทเกบขอมลทจะสงออกการใช คำาสงเขยนหรอโอนยายขอมลมายงรจส

DC motor Position Control using Microcontroller 8051

1/2400 ไมโครวนาท

12 x (1/2400) = 4.9 มลลวนาท

D0 D1 D2 D3 D4 D5 D6 D7StartBit

ParityBit

StopBit

2 3 4 5 6 7 8 91 10 11 12

96

Page 97: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

เตอรน จะเปนการสงขอมลนนออกไปยงพอรตอนกรมทางขาสญญาณ TxD โดยอตโนมต สวนวงจรดานตวรบ (Reciever) ประกอบดวยรจสเตอร SBUF เชนเดยวกน แตทำาหนาทเกบขอมลทนำามาจากสวนวงจรเลอนบตหรอชพรจสเตอร (Shift Register) ของวงจรจดการขอมลอนกรมภายใน สญญาณขอมลอนกรมทรบเขาจะผานมาทางขาสญญาณ RxD

รปท 52 แผนภาพแสดงการทำางานของวงจรสวนการรบและสงขอมลอนกรมของ 8051

พอรตอนกรมของ 8051 สามารถโปรแกรมใหทำาหนาทในรปแบบตางๆ กนสแบบ โดยการกำาหนดคาบต SM0 กบ SM1 ซงอยภายในรจสเตอรควบคมและบอกสถานะ SCON

ซงโหมดการทำางานทง 4 แบบของพอรตอนกรม มดงนโหมดการทำางาน

คำาอธบาย

โหมด 0 เปนการขยายพอรตอนพตเอาตพต โดยทำางานรวมกบไอซชพรจสเตอรภายนอกประเภทททแอลหรอซมอส

โหมด 1 ใชสำาหรบการเชอมตออนกรมแบบ UART

DC motor Position Control using Microcontroller 8051

SCON SBUF ดานสง

SBUF ดานรบ

ชพรจสเตอรดานรบ

TB8

RB81/2

1/2

1/21/16

บสขอมลภายใน

สญญาณนาฬกาดานสง

สญญาณนาฬกาดานรบ

XTAL

Timer 1

ควบคมสถานะTxD

RxD

97

Page 98: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

(Universal Asynchronous receiver/ Transmitter) โดยการใชกลมขอมลแบบ 10 บตและสามารถเปลยนแปลงอตราความเรวในการสงขอมลได

โหมด 2 ใชสำาหรบการเชอมตออนกรมแบบ UART โดยการใชกลมขอมลแบบ 11 บต และกำาหนดอตราความเรวในการสงขอมลคงท

โหมด 3 ใชสำาหรบการเชอมตออนกรมแบบ UART โดยการใชกลมขอมลแบบ 11 บต และสามารถเปลยนแปลงอตราความเรวในการสงขอมลได

กระบวนการรบและสงขอมลอนกรมของ 8051 การสงขอมลออกทางพอรตอนกรมของ 8051 จะเรมตนขน

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

สำาหรบการรบขอมลจากพอรตอนกรมจะตองเรมตนโดยการกำาหนดคาบต REN ใหมคาเปน 1 กอน หลงจากนนเมอมบตของขอมลถกสงเขามาจากภายนอกระบบฮารดแวรของ 8051 จงจะทำาการเลอนบตเหลานเขามาโดยอตโนมต และ เมอบตสดทายถกเลอนเขามาเรยบรอยแลว ขอมลนนจะถกยายมาเกบไวยงรจสเตอร

DC motor Position Control using Microcontroller 8051 98

Page 99: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

SBUF และทำาการกำาหนดใหแฟลก RI ใหมคาเปน 1 ซงมผลทำาใหเกดการอนเตอรรปตโปรแกรมขน

การเชอมตอแบบมาตรฐาน RS-232C ในการเชอมตอแบบอนกรมเขากบอปกรณคอมพวเตอรตางๆ

เชน คอมพวเตอร เทเลกซ หรอ โทรพมพ เปนตน มกจะกำาหนดใชการเชอมตอตามมาตรฐาน RS-232C ทงนเพอใหมการใชงานเสนสญญาณหรอรปแบบของตวเชอมตอทสอดคลองกน จะไดลดปญหาการเขากนไมไดระหวางสญญาณของอปกรณทมาเชอมตอกนทงสองดานใหนอยลง เนองจากระดบโวลเตจทใชและการแทนความหมายของระดบลอจกตามาตรฐานนแตกตางไปจากทใชงานกนในระบบดจตอลทวไปโดยระดบสญญาณของ RS-232C เปนแบบไบโพลาร ระดบโวลเตจทางดานลบชวง -3V ถง -20V แทนคาลอจก 1 และโวลเตจทางดานบวกชวง +3V ถง +20V แทนคาลอจก 0 ดงนนจะเหนไดวามความจำาเปนตองเพมเตมอปกรณหรอวงจรพเศษเขาไป เพอเปลยนระดบโวลเตจจากระบบ 0V ถง +5V จากขาสญญาณของ 8051 เปนระดบโวลเตจทสงกวาคา +3.0V หรอตำากวา -3.0V

DC motor Position Control using Microcontroller 8051 99

Page 100: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 53 ไอซเบอรMAX232 ซงเปนวงจรเชอมตอแบบ RS-232C โดยการใชไฟเลยง +5 เพยงชดเดยววงจรการเชอมตอระหวาง 8051 กบ PC ทาง Serial Port การตอสญญาณ Serial Port

(To Computer 1). (To Computer 2).

9 PIN D-SUB FEMALE to Computer 1. 9 PIN D-SUB FEMALE to Computer 2.

D-Sub

1

D-Sub

2Receive Data 2 3 Transmit DataTransmit Data 3 2 Receive DataData Terminal Ready 4 6+1 Data Set Ready

+ Carrier DetectSystem Ground 5 5 System GroundData Set Ready + Carrier Detect 6+1 4 Data Terminal

ReadyRequest to Send 7 8 Clear to SendClear to Send 8 7 Request to Send

DC motor Position Control using Microcontroller 8051 100

Page 101: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 54 แสดงวงจรภายใน Max232

การตอสายอนเตอรเฟส RS232 ระหวางเครองคอมพวเตอร กบ MAX232

DC motor Position Control using Microcontroller 8051

TxD

RxD

RTS

CTS

DSR

DCD

DTR

SG

TxD

RxD

RTS

CTS

DSR

DCD

DTR

SG

DTE ( )เครองคอมพวเตอร DTE (MAX232)

101

Page 102: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

รปท 55 การเชอมตอขาสญญาณ

ภาคผนวก งโปรแกรมการทำางานของ สวน Main CPU , Drive Motor และ

Sampling

โปรแกรมอ�นสญญ�ณ Encoder ใน Main CPU

DC motor Position Control using Microcontroller 8051 102

//work with 8x51 series microcontroller#include <stdio.h>#include "reg51.h"

void getCharacter (void); /* read a character from the serial port */void sendCharacter(void);void initial();void getData();void check();

int flagsend = 0;unsigned int duty = 0;unsigned int step = 0;unsigned char buf_duty,true_duty,duty_send;//bit buf_direct;/* variable to hold the new character */unsigned char chr = 0x00;unsigned char buffer = 0x00;

bit direction; //if direction is 0, clockwise. 1, counter-clockwiseunsigned int position,buf_step,Error_pos,duty_time; // variable to hold position - from COM

int flag0 = 0,flag1 = 0;int flag = 0;

void main (void){

initial(); // initial port P16 for interruptwhile(1){

if(RI == 1){getCharacter();P15 = 0; flag=0;flagsend = 1;}if(flag == 0)getData();check();

}//end of while(1)}//end of main

void initial(){

//initial timer 0 and assign timer registers//ES = 1; // enable serial interruptEA = 1; // enable interruptTMOD=0x20; //set timer0 mode 1 (ignored upper 4 bits of TMOD)//initial the serial portSCON=0x50; // set for receiveTH1=0xFD;TL1=0xFD;TR1=1;

P1 = 0x00;P0 = 0xFF;P2 = 0xFF;buf_step = 0xFF;

}

Page 103: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

DC motor Position Control using Microcontroller 8051 103

//Function receivevoid getCharacter (void) {

duty_time = 0x0000; while (RI!=1);

RI=0; // it receive interrupt// move data to variablechr = SBUF;if(chr != 0xFF)

DPL = chr; // ********* position from Computerif(chr != 0x00)

DPL = chr;while (RI!=1);

RI=0; // it receive interruptbuffer = SBUF;if(buffer == 0xF0 || buffer == 0xF1) direction = 1; // leftelse if(buffer == 0xE0 || buffer == 0xE1) direction = 0; // rightelse direction = 0;

if(buffer == 0xF1 || buffer == 0xE1)DPH = 0x01;

position = DPTR; }

void sendCharacter (void) {

unsigned char chr;flagsend = 0;chr = duty_time/4;duty_time = 0x0000;

SBUF = chr;TI = 0;while (TI != 1);

}

void getData(){

DPTR = 0x0000;buf_duty = (P0&0xFF);DPL = (P2&0xFF);

if(P32 == 1)DPH = 0x01;

else DPH = 0x00;

buf_step = DPTR;

// if(buf_step > 0x0190) // 400 step// buf_step = position;

if(position >= buf_step)Error_pos = position - buf_step;else

{ Error_pos = buf_step - position;

Page 104: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

DC motor Position Control using Microcontroller 8051 104

position = Error_pos; direction = !direction;

buf_step = 0x0000;P15 = 1;

} // error of position

}

void check(){

duty_time = duty_time + buf_duty;P14 = direction;//if(position <= buf_step) // 0 st// { P10 = 0; P11 = 0; P12 = 0; P13 = 0; P15 = 1; flag=1;} // 0 v. P15

for reset count//else if(direction == 1){

if(Error_pos == 0x0000) // 0 st{ P10 = 0; P11 = 0; P12 = 0; P13 = 0; P15 = 1; flag=1; if(flagsend == 1)sendCharacter();} // 2 v.

else if(Error_pos <= 0x0003) // 3 st{ P10 = 0; P11 = 1; P12 = 1; P13 = 0;} // 0x05

else if(Error_pos <= 0x0032) // 50 st{ true_duty = 0x16;

if(buf_duty <= true_duty){ P10 = 0; P11 = 1; P12 = 1; P13 = 0;} // 0x06else{ P10 = 1; P11 = 1; P12 = 1; P13 = 0;} // 0x07

}else if(Error_pos <= 0x0064) // 100 st

{ true_duty = 0x13;if(buf_duty <= true_duty){ P10 = 1; P11 = 1; P12 = 1; P13 = 0;} // 0x07else{ P10 = 0; P11 = 0; P12 = 0; P13 = 1;} // 0x08

}else if(Error_pos <= 0x0104) // 260 st{ true_duty = 0x11;

if(buf_duty <= true_duty){ P10 = 0; P11 = 0; P12 = 0; P13 = 1;} // 0x08else{ P10 = 1; P11 = 0; P12 = 0; P13 = 1;} // 0x09

}else if(Error_pos <= 0x0190) // 400 st

{ true_duty = 0x11;if(buf_duty <= true_duty){ P10 = 0; P11 = 0; P12 = 0; P13 = 1;} // 0x08else{ P10 = 1; P11 = 0; P12 = 0; P13 = 1;} // 0x09

}}

Page 105: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

DC motor Position Control using Microcontroller 8051 105

else{

if(Error_pos == 0x0000) // 5 st{ P10 = 0; P11 = 0; P12 = 0; P13 = 0; P15 = 1; flag=1; if(flagsend == 1)sendCharacter();} // 2 v.

else if(Error_pos <= 0x0006) // 6 st{ P10 = 0; P11 = 0; P12 = 1; P13 = 0;} // 0x04

else if(Error_pos <= 0x0014) // 20 st{ true_duty = 0x1C;

if(buf_duty <= true_duty){ P10 = 1; P11 = 0; P12 = 1; P13 = 0;} // 0x05else{ P10 = 0; P11 = 1; P12 = 1; P13 = 0;} // 0x06

}else if(Error_pos <= 0x0064) // 100 st

{ true_duty = 0x1D;if(buf_duty <= true_duty){ P10 = 0; P11 = 1; P12 = 1; P13 = 0;} // 0x06else{ P10 = 1; P11 = 1; P12 = 1; P13 = 0;} // 0x07

}else if(Error_pos <= 0x0104) // 260 st

{ true_duty = 0x13;if(buf_duty <= true_duty){ P10 = 1; P11 = 1; P12 = 1; P13 = 0;} // 0x07else{ P10 = 0; P11 = 0; P12 = 0; P13 = 1;} // 0x08

}else if(Error_pos <= 0x0190) // 400 st{ true_duty = 0x13;

if(buf_duty <= true_duty){ P10 = 1; P11 = 1; P12 = 1; P13 = 0;} // 0x07else{ P10 = 0; P11 = 0; P12 = 0; P13 = 1;} // 0x08

}}

}

Page 106: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

โปรแกรมอ�นสญญ�ณ Encoder ใน Drive Motor

DC motor Position Control using Microcontroller 8051 106

//work with 8x51 series microcontroller#include <stdio.h>#include "reg51.h"

void timer_count();void send();unsigned char duty = 0x00;unsigned char duty_times = 0x00;unsigned int step = 0x0000;unsigned int step1 = 0x0000;bit direction = 0;int flag = 0;

void main (void){

//initial timer 0 and assign timer registers EA = 1;ET0 = 1;TMOD=0x20; //set timer0 mode 1 (ignored upper 4 bits of TMOD)

/* // Initial External InterruptEX0 = 1; // enable INT0IT0 = 1; // using active low interruptPX0 = 1; // set prioty first

*///initial the serial portSCON=0x50;TH1=0xFD;TL1=0xFD;TR1=1;

P1 = 0xFF;// loop for check direction , speed and stepwhile(1){

send();

if(P15 == 1) // condition clear{step = 0x0000;step1 = 0x0000;}

while(P11 == 1) // pulse is logic 1{

duty++;flag = 1;timer_count();

}if(flag == 1) // if pulse P11 change we can check P10 state for specify direction{

if(P10 == 1)direction = 1;elsedirection = 0;

if(direction == 0)step++; // step = pulse count

elsestep1++;

duty_times = duty;duty = 0;

Page 107: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

DC motor Position Control using Microcontroller 8051 107

while(P11 == 0 && flag == 1){

duty++; // duty is used to calculate velocity (speed)timer_count();

}duty_times = duty;duty = 0;flag = 0;

if(direction == 0)step++; // step = pulse count

elsestep1++;

// ******************** end check }//end of while(1)}//end of main

//interrupt service routine for timer0void timer_count(){

//over flow every 50 -> FFCEus | 25 -> FFE7 | 100 -> FF9C // 10 -> FFF6| 5 -> FFFB | 20 -> FFEC

TH0 = 0xFF;TL0 = 0xEC;//start timer againTR0 = 1;

while(!TF0); // wait overflow TF0 = 0;}void send(){

DPTR = 0x0000;P0 = duty_times; // for speedif(step > step1)

DPTR = step - step1; // for positionelse

DPTR = step1 - step; // for position

if(DPH == 0x01) P32 = 1;else P32 = 0;

P2 = DPL;// P15 = direction; // for direction}

Page 108: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

โปรแกรมอ�นสญญ�ณ Encoder ใน Sampling

DC motor Position Control using Microcontroller 8051 108

#include<stdio.h>#include"reg51.h" //reg51.h is in the same directory with this file

#define pulse0 P17 // define pulse Forward#define pulse1 P15 // define pulse Forward#define pulse2 P16 // define pulse Reword#define pulse3 P14 // define pulse Reword

int high_count = 0;int low_count = 0;void initial();void init_timer(); // initial the timer0void high_period();void low_period();int round = 0;int rol = 0;

int high_period1; // period for logic '1'int low_period0; // period for logic '0'int speed = 0;

bit direction = 1;unsigned char con; // construction from port

void main(void){ initial(); init_timer(); while(1) { direction = P37;

con = (P3&0x0F); // use lower 4 bitswitch(con){ case 0x00 :

case 0x0F : low_period0 = 0;break; // stop case 0x01 : low_period0 = 4; break; // every 4*500 = 2000 us = 2 ms ~

1.16 V case 0x02 : low_period0 = 5; break; // 2.32 v case 0x03 : low_period0 = 6; break; // 3.48 v case 0x04 : low_period0 = 7; break; // 4.64 v case 0x05 : low_period0 = 8; break; // 5.8 v case 0x06 : low_period0 = 9; break; // 6.96 v case 0x07 : low_period0 = 10; break; // 8.12 v case 0x08 : low_period0 = 11; break; // 9.28 v case 0x09 : low_period0 = 12; break; // 10.44 v case 0x0A : low_period0 = 40; break; // 11.6 v default: ;}

high_period1 = 40 - low_period0;

// this section for generate pulseif(low_period0 == 0){

P1 = 0xF0;}

Page 109: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

DC motor Position Control using Microcontroller 8051 109

else{

if(direction == 1) // direction{

P17 = 1;P16 = 0;P15 = 1;P14 = 0;

}else if(direction == 0){

P17 = 0;P16 = 1;P15 = 0;P14 = 1;

} //end direction}

while(low_count < low_period0) low_period(); // call for wait from interrupt timer low_count = 0;

// high periodP1 = 0xF0; while(high_count < high_period1)

high_period(); high_count = 0;

// end high period

} // end while} // end main

void initial(){ EA = 1; // enable overall interrupt ET0 = 1; // enable the timer0 interrupt P1 = 0xF0; P3 = 0x8F;}

void init_timer(){

TMOD=0x20;; //set timer0 mode 1 (ignored upper 4 bits of TMOD)}

void low_period(){ TH0 = 0xFE; //TL0 = 0x0C; // 500 us TL0 = 0xCE; // 50 us TR0 = 1; // timer work count while(!TF0); // wait overflow 20 us for over flow low_count++; high_count = 0; TF0 = 0;}

Page 110: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

DC motor Position Control using Microcontroller 8051 110

void high_period(){ TH0= 0xFE; //TL0= 0x0C; // overflow every 500 us TL0 = 0xCE; // 50 us TR0=1; // timer work count while(!TF0); // wait overflow low_count = 0; high_count++; TF0 = 0;}

Page 111: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

DC motor Position Control using Microcontroller 8051 111

Page 112: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

ภาคผนวก จโปรแกรมอนเตอรเฟส(Visual Basic)

สวนในการสงคา ตำาแหนงไปยง Microcontroller

DC motor Position Control using Microcontroller 8051 112

Page 113: DC Motor Position Control Using Microcontroller 8051fivedots.coe.psu.ac.th/Software.coe/240-380/PDF/report.doc · Web viewElectro Craft Corpn, DC Motor Speed Control and Servo Systems,

Private Sub Command2_Click()Dim direct_send As IntegerDim out As StringDim a, b, c, i As Integer

If Combo1.ListIndex = 0 Thendirect_send = 240Elsedirect_send = 224End If

a = Int(Text17.Text)

If a > 255 Thendirect_send = direct_send + 1a = a - 255End IfMsgBox a & " di=" & direct_sendMSComm1.PortOpen = FalseMSComm1.PortOpen = TrueMSComm1.Output = Chr(a)MSComm1.PortOpen = FalseMSComm1.PortOpen = TrueMSComm1.Output = Chr(direct_send)

'Combo1.ListIndexText19.Text = "¤èÒ Ascii " & Chr(a) & ", ·ÔÈ·Ò§ " & direct_sendEnd Sub

สวนในการรบคาจาก Microcontroller Public Sub Initialisation_Affichage_Page() Rem Ecriture sur l'écran des paramètres de configuration

Rem Effacement des zones d'édition

Rem Ouverture du Port MSComm1.CommPort = Choix_Port MSComm1.Settings = Vitesse(Choix_Vitesse) + "," + Parite(Choix_Parite) + "," + Bit_Donnee(Choix_Bit_Donnee) + "," + Bit_Arret(Choix_Bit_Arret) MSComm1.Handshaking = Choix_Flux MSComm1.InputLen = 0 MSComm1.PortOpen = True Rem Vidage du buffer du Port Série Dim Chaine As String

If (MSComm1.InBufferCount > 0) Then Chaine = MSComm1.Input End If For i = 1 To Len(Chaine) Caractere = Mid(Chaine, i, 1) CodeCaractere = Asc(Caractere) Text1.Text = Chaine Text2.Text = CodeCaractere Text3.Text = Int(CodeCaractere) Next Rem Lancement du Timer de scrutation du port Série frm_Analyse_Bas_Niveau.Timer1.Enabled = TrueEnd Sub

DC motor Position Control using Microcontroller 8051 113