Professional Documents
Culture Documents
มอเตอร์
มอเตอร์
บทททที่ 2 ขคัขั้นตอนกนรทนนงนน
2.1 คด้ นควด้ นขด้ อมมล
- รวบรวมเนรืด อหาเอกสารทดีทเกดีทยวกปับชริดนงาน
- รวบรวมเอกสารทดีทเกดีทยวของกปับวงจร
- เรดี ยนรสูด้การททางานของอจุปกรณร์ทดีทใชด้
2.2 กนรออกแบบเครรรื่ องมรอ
- ขปัดนตอนออกแบบวงจรอริเลป็กทรอนริ กสร์
1. ออกแบบวงจรอริเลป็กทรอนริ กสร์
2. เลรือกจทานวน INPUT/OUTPUT
3. เลรือกวริธดีการควบคจุม
4. รม างตด้นแบบวงจรไฟฟด้ า
Mount – year 7 - 45 8 – 45 9 – 45 10 – 45 11 – 45 12 – 45 1 – 46 2 – 46 (ก
step (ก.ค.) (ส.ค.) (ก.ย.) (ต.ค.) (พ.ย.) (ธ.ค.) (ม.ค.) .พ.)
Step1.
Step 2.
Retail
Step 1 คด้นควด้าขด้อมสูล
Step 2 ออกแบบเครรืท องมรือ
Step 3 จปัดหาอจุปกรณร์
Step 4 สรด้างเครรืท องมรือและทดสอบ
Step 5 ททาการโปรแกรมและทดสอบ
Step 6 ทดสอบ, แกด้ไขปรปับปรจุ ง และ สรจุ ปผล
อถปกรณค ในโครงงนน
- เครรืท องคอมพริวเตอรร์ 1 เครรืท อง
- ดดีซดีมอเตอรร์ 1 ตปัว
- Microprocessor 8051 2 ตปัว
- 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 ตปัว
V = VA + VR (V)
I = VR / R (A)
โมเดลอติเลป็คโทรแมคคนนติคอล
Ra: ความตด้านทานของอารร์เมเจอรร์
La: อรินดปัคแตด้นซร์ของอารร์เมเจอรร์
Vg: โวลทร์เตป็จกทาเนริดในอารร์เมเจอรร์ (โวลทร์เตป็จยด้อนกลปับ)
DC motor Position Control using Microcontroller 7
Rf: ความตด้านทานของฟริ ลดร์
Lf: อรินดปัคแตด้นซร์ของฟริ ลดร์
: ชมองวมางอากาศของเสด้นแรงสนามแมมเหลป็ก
: ความเรป็ วของเพลาอารร์ เมเจอรร์
Tg: แรงบริดทดีทพฒปั นาขซดนในมอเตอรร์
Tf: แรงบริดเสดี ยดทานของมอเตอรร์
TJ: แรงเฉรืทอยของมอเตอรร์
TL: แรงบริดโหลดบนเพลาของมอเตอรร์
Tg(t): แรงบริดของมอเตอรร์
Tf(t): แรงบริดทดีทตอด้ งชนะการสสูญเสดี ยเนรืทองจากการเสดี ยดทาน
TJ(t): แรงบริดเพรืทอใชด้เพริทมอปัตราเรม งแกมความเฉรืท อยของโหลด
TL(t): แรงบริดโหลด
ในชมวงเวลาใดๆกป็ตาม แรงบริดของมอเตอรร์ จะตด้องเทมากปับและมดีทริศทางตรงขด้ามกปับผลรวม
ของแรงบริด Tf(t) TJ(t) และ TL(t) ดปังนปัดน
d (t )
Tg(t) = Tf(t) + TL(t) + J dt ----- (7)
เมรืทอ J ครือผลรวมของโมเมด้นทร์แรงเฉรืทอยของโรเตอรร์ และโหลดทดีทตมออยสูทม ดีทเพาของมอเตอรร์
ผลรวมของแรงบริดเสดี ยดทานทดีทประกอบกปันขซดนทดีทเพลาของมอเตอรร์ ซท ซ งเปป็ นลริเนดี ยรร์ ฟปังกร์ชนปั กปับ
ความเรป็ วเชริงมจุมของโรเตอรร์เรดี ยกวมา สม วนประกอบของวริสคอสฟรริ คชปันท และมปักจะอยสูใม นเทอมทดีทแยก
ออกจากฟรริ คชปันท อรืทนๆ ซซทงแสดงไดด้ดวด้ ยสมการตมอไปนดีด
d (t )
Tg(t) = Tf(t) + TL(t) + J dt + B (t ) ----- (8)
เมรืทอ B ครือสปัมประสริ ทธริธ ของวริสคอสฟรริ คชปันท ของมอเตอรร์ และโหลดทดีทตมออยสูกม บปั เพลาของมอเตอรร์ Tf(t)
ครือผลรวมของฟรริ คชปันท ของโหลดและมอเตอรร์ ทด งปั หมด มดีแรงตด้านของลมและการสสู ญเสดี ยกทาลปังใน
เหลป็กของเพลามอเตอรร์ยกเวด้นวริสคอสฟรริ คชปันท
สมการ (1) (4) (5) และ (8) เปป็ นชจุดสมการพรืดนฐานของดดีซดีมอเตอรร์ โมเดลและสมการเหลมานดีด
เราสามารถจะหาทรานสเฟอรร์ฟปังกร์ชนปัท ของดดีซดีมอเตอรร์ ไดด้ โดยใสม ลาปลาสทรานสฟอรร์ มทปัดงสองขด้าง
ของชจุดสมการพรืดนฐานไดด้เปป็ น
Vi(s) – Vg(s) = (Ra+sLa) Ia(s) ----- (9)
Vg(s) = K (s )
e ----- (10)
Tg(s) = Kt Ia(s) ----- (11)
Tg(s) – Tf(s) – TL(s) = (B + sJ) (s) ----- (12)
สามารถเขดียนเปป็ นบลป็อกไดอะแกรมทดีทแสดงสมการพรืดนฐานเหลมานดีด ไดด้ดงปั นดีด
ทรานสเฟอรร์ฟปังกร์ชนปัท ของดดีซดีมอเตอรร์
บลป็อกไดอะแกรมของรสู ปทดีท 5 แสดงถซงระบบทดีทมดีสองอรินพจุท และมดีเอาตร์พทจุ เปป็ นความเรป็ วเชริงมจุม
(s ) และการเคลรืทอนทดีทแบบเชริ งมจุม(s)จากรสู ปทดีท 5 ความเรป็ วเอาทร์พท
จุ ของระบบเขดียนไดด้เปป็ น
( s ) G ( s )V ( s ) G ( s )[T ( s ) T ( s )] ---- (15)
1 i 2 f L
เมรืทอ
(s)
G1 ( s )
Vi ( s ) T f ( s ) TL ( s ) 0
---- (16)
(s)
G2 ( s )
T f ( s ) TL ( s )
Vi ( s ) 0
---- (17)
2. การควบคจุมดด้วยวริธดีเปลดีทยนคมาแรงดปัน
วริธดีการนดีด ดดีกวมาวริธดีการแรกแตมจะซปับซด้อนกวมาตด้องใชด้อจุปกรณร์อริเลป็กทรอนริ คสร์ทดีททดีอตปั ราขยาย
กทาลปังสสู ง และ มอเตอรร์ จะถสูกปด้ อนดด้วยแรงดปันทดีท เปลดีทยนแปลงคมาไดด้ จากแหลมงจมายทดีท มดีอริมพดีแดนซร์ตทา
ขด้อดดี ของการควบคจุมวริธดีนดดี ครือ ถด้าความเรป็ วลดลงจากผลของแรงบริด แรงดปันทดีทปด้อนใหด้ก บปั มอเตอรร์ จะ
เพริทมขซดนเพรืทอรปักษาระดปับความเรป็ ว สม วนขด้อเสดี ยจากการควบคจุมวริธดีนดดี ครือ เมรืทอมอเตอรร์ มดีความเรป็ วตททาแรง
ดปันทดีทปด้อนใหด้กบปั มอเตอรร์จะมดีคมาตททาเชมนกปัน
3. การควบคจุมดด้วยตปัวตด้านทานทดีทปรปับคมาไดด้
การควบคจุมแบบนดีด สามารถขปับดดีซดีมอเตอรร์ ไดด้ความเรป็ ว 10 : 1 และใหด้การเรป็ คกสูเลททดีทดดีกวมา
กระแสถสูกปลมอยใหด้ฟริลดร์คงทดีท ผลของคจุณสมบปัตริ ความเรป็ วและแรงบริดไดด้รปับการปรปับปรจุ งดดีขดซ นกวมาการ
บปังคปับดด้วยความตด้านทานทดีทปรปับคมาไดด้ และใหด้การเรป็ คกสูเลทความเรป็ วคงทดีทไดด้ดดีขดซ นตลอดชมวงความเรป็ วทดีท
กวด้างกวมา
รม ปททที่ 10b
รม ปททที่ 10c
เอป็นโคด้ ดเดอรค
Rotary Encoder มดีลกปั ษณะเปป็ นแผมนกลมมดีแกนอยสูตม รงกลาง และ ทดีทแผมนกลม จะมดีชมองเลป็ก ทดีท
แสงสามารถ สม องผมานไดด้ เปป็ นจทานวนมากเราเรดี ยกชมองนดีด วมา ชมอง slit ซซท งทดีทดาด้ นหนซท งของ แผมนกลม นดีด
จะมดีตวปั สม งแสง infrared ไปยปังตปัวรปับสปัญญาณแสง infrared ซซท งจะอยสูใม นดด้านตรงกปันขด้าม ดปังรสู ปทดีท 11
จทานวน pulse ทดีทไดด้ออกมานดีด จะเปป็ นตปัวทดีทชด ดี บมงวมา motor หมจุนไปกดีทองศา หรรื อกดีทรอบ ซซท งเรา
สามารถคทานวณไดด้จาก สสูตร จทานวนรอบทดีท motor หมจุนไป = จทานวน plus คมาความละเอดียดของ
rotary encoder โดยทดีท คมาความละเอดียดของ rotary encoder นปัดนนริยมใชด้หนมวยเปป็ น plus/ round หรรื อ
ppr เชมน 1000 ppr กป็หมายถซงวมาเมรืทอ motor หมจุนไป 1 รอบจะมดี plus ออกมา 1000 plus เปป็ นตด้น สม วน
ในเรรืท องทดีทวมาเราจะทราบไดด้อยมางไรวมา motor หมจุนไปทริศทางใดนปัดน สม วนใหญมแลด้วจะใชด้วริธดีสรด้าง ชมอง
slit เปป็ น 2 ชจุดเหลรืทอมกปัน 90 องศา ดปังรสู ปทดีท
ถด้าเราใหด้ Pulse ในชมวง high มดีคมาเปป็ น “1” และ pulse ในชมวง low มดีคมาเปป็ น “0” เราสามารถ
ใชด้คมาดปังกลมาวมาคทานวณหาทติศทนงทดีท motor หมจุนไดด้ดวด้ ยใชด้วริธดีการทาง digital ครือการนทาคมาทดีทอมานไดด้
มาททาการ exclusive OR (XOR) กปันโดยการนทา bit ทางขวาของคมาเกมามา XOR กปับ bit ทางซด้ายของ
คมาใหมมทดีทอมานไดด้ตามตปัวอยมางขด้างลมาง
A B A X OR B
0 0 0
0 1 1
1 0 1
1 1 0
ในโครงงานอาศศัยการตรวจจศับขอบขาขข ขึ้นและขาลงของทศังเฟส
ขึ้ A และเฟส B ททาใหห้ สามารถ
แบบ่ง 1 Pulse เปป็ น 4 สบ่วน
Form ในการรปับ
คมาจาก 89C51
รม ปททที่ 23 แสดง Form ในสม วนของการสม งคมาไปยปัง Microcontroller รปับคมาทดีทไดด้จากอดีก Form หนซท ง
รสู ปแบบการตริดตมอการรปับสม งระหวมาง คอมพริวเตอรร์ กบปั Microcontroller ตปัวหลปัก จะสม งอยสูใม น
รสู ปแบบรหปัส Ascii โดยคมาตทาแหนมงทดีทปด้อนจะอยสูใม นชมวย 0-360 องศา แตมคมาทดีทสมงจรริ งจะคทานวณเปป็ นคมา
0- 400 pluse และ ในการสม งมดีจาท นวน 2 Byte โดย Byte แรกเปป็ นคมาตทาแหนมง สม วน Byte สองเปป็ นคมา
ทริศทางกปับ 1 บริต MSB ของคมาตทาแหนมง เพรืทอใหด้ไดด้คมาตทาแหนมง 400 pulse
แสดง Code ของ Form ในสม วนของการแสดงคมาการตริดตมอ
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
5.5 มอเตอรค
5.5.1 มอเตอรร์
Block diagram ในกนรควบคถมตนนแหนว่ งและควนมเรป็วของมอเตอรค
r(s) E(s)
G(s) (s) 1/s
c(s)
R(s) C(s)
+
- -
จาก block diagram ดปังกลมาวขด้างตด้นจะใชด้ model ทางคณริ ตศาสตรร์ ของมอเตอรร์ เปป็ นดปังนดีด
G(s) = K/(s+a)
P = [ 60 x F ] / S
แรงดปัน V
while(1)
{
while(P11 == 1)
{
duty++;
flag = 1;
TR0 = 1;
}
TR0 = 0;
TI = 1;
if(flag == 1)
sendCharacter ();
}//end of while(1)
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
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) เฉลดีทย
ความถดีท = 1/จทานวนครปัดง * 40 us
เมรืทอเราไดด้คมาของความถดีทมาแลด้วเราสามารถททาการคทานวณคมาความเรป็ วไดด้จาก
เมรืทอ
F : ครือ ความถดีท pulse / วรินาทดี
P : ครือ pulse / รอบ ของ encoder
S : ครือ ความเรป็ วรอบของมอเตอรร์ (รอบ / นาทดี )
S = F*60 / P
จะไดด้กราฟดปังนดีด ครือ
กรนฟแสดงควนมสคัมพคันธค ระหวว่ นงควนมเรป็ว (rpm) กคับเวลน (s)
ความเรป็ ว (rpm)
เวลา (s)
กนรหนคว่ น 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 แลด้วนทามาพริจารณาโดยสมมตริใหด้คมาตปัวแปรตมาง
ๆ เปป็ นดปังนดีด
K : ครือ อปัตราขยาย
t : ครือ คมา time constant ซซทงเทมากปับเวลาทดีท output = 63 % ของคมาทดีท steady state
a : ครือ คมาคงทดีท ซซทงเทมากปับ 1/t
s : ครือ คมา output ทดีท steady state ซซท ง กป็ครือทดีทเวลาเขด้าใกลด้ infinity หรรื อ คมา s เขด้าใกลด้ 0
Input : ครือ คมาแรงดปัน input ทดีทปด้อน
ดปังนปัดนจาก
G(s) = Input*K/(s+a)
เมรืทอ s-->0 จะไดด้วมา
s = K*Input/a
ดปังนปัดนเราสามารถหาคมา K ไดด้จาก
K= s*a/Input
t = 0.008
a = 1/0.008 = 125
9K/a = 0.0370
K = (0.0370* a)/9 = 0.5139
G(s) = 0.51/(s+238.1)
เมมมื่อเราทราบคบ่าตบ่าง ๆ ของ transfer function แลห้ ว กป็ ททา การ plot กราฟความสศัมพศัน ธธ
ระหวบ่าง output () กศับ เวลา (t (s)) ทศังนน ขึ้ ขึ้เพมมื่อใชห้ ขห้อมมูลจากกราฟเพมมื่อททาการเปรน ยบเทนยบกศับคบ่าทนมื่ไดห้
จากการทดลองวศัดคบ่าจรริ งวบ่ามนความใกลห้ เคนยงกศัน หรม อ ไมบ่ และ มนความผริดพลาดอยมูบ่ในชบ่วงทนมื่ยอมรศับ
ไดห้ หรม อไมบ่ โดยททาการ plot ทนมื่คาบ่ input ตบ่าง ๆ ดศังนน ขึ้
Input 3 volt
//code simulate with scilab 2.7
s = 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)")
Input 9 volt
Input 12 volt
จากกราฟทนมื่ ไดห้ นศันขึ้ จะเหป็ น วบ่า w มน คบ่า ไมบ่เกริ น 1 ทศังขึ้ นน เขึ้ นมมื่ องจาก input ทนมื่ ปห้อนนศันขึ้ เปป็ น step
input (0,1) ดศังนศันขึ้ ดศังกลบ่าวจขงไมบ่ใชบ่คบ่าความเรป็ วจรริ งในทางปฏริบตศั ริ แตบ่เราตห้ องททาการหาคบ่าอห้ างอริง
กรณทททที่ 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 รอบ/นาทดี
ทดีท 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 รอบ/นาทดี
ทดีท 9 v คมาสสูงสจุ ดทดีทไดด้ครือ 0.0190 จะไดด้ความเรป็ วเทมากปับ (0.0190 *2250)/0.0250 = 1710 รอบ/นาทดี
ทดีท 12 v คมาสสูงสจุ ดทดีทไดด้ครือ 0.0250 จะไดด้ความเรป็ วเทมากปับ (0.0250 *2250)/0.0250 = 2250 รอบ/นาทดี
ตนรนงททที่ 7 แสดงคว่ นททที่ไดด้ จรติง และ คว่ นททที่เททยบเปป็ น 1 ของคว่ น ในเวลนตว่ นงๆ ทถกๆ 1 ms
1v 3v 6v 9v 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
รม ปททที่ 37 กราฟทดีทไดด้จากคมาทดีททดลองจรริ ง
สรถ ป
บทททที่ 6 กนรทนนงนนของโปรแกรมควบคถม
6.1 วติธทกนรควบคถมใหด้ เขด้ นสมว่ ตนนแหนว่ ง
a. เปด้ าหมายหลปักในการดทาเนรินการครืออะไร
วปัตถจุประสงคร์หลปักของโครงงานนดีด ครือ การควบคจุมการหมจุนของ motor ใหด้เขด้าสสูม
ตทาแหนมงทดีทตอด้ งการ (position) ซซท ง ตด้องการความแมมนยทา และ ความเรดี ยบในการ
เขด้าสสูม ตาท แหนมง ซซทง ความเรป็ ว ในการเขด้าสสูม ตาท แหนมงนปัดนควรจะมดีความรวดเรป็ วพอ
สมควร
b. กระบวนวริธดี และ แนวคริด ในการควบคจุม ททาไมตด้องใชด้วริธดีการเหลมานดีด
ในการเขด้าสสูตาท แหนมงใหด้เรป็ ว แมมนยทา และ เรดี ยบทดีทสจุดนปัดน แนมนอนวมาจะตด้อง
ประกอบดด้วยองคร์ประกอบทดีทเหมาะสมดปังนดีด ครือ
o ความเรป็ วเรริท มตด้นทดีทเหมาะสมเพรืทอใหด้การเรริท มหมจุนใชด้เวลานด้อยทดีทสจุด
o ความเรป็ วปลายกมอนการหยจุดเพรืทอใหด้การเขด้าสสูม ตาท แหนมงมดีความนริท ง
ซซทงวริธดีในการควบคจุมนปัดน จะเปป็ นแบบความเรป็ วในการหมจุนสามารถเปลดีทยนแปลงไดด้ขดซ นกปับระยะ
ทางของตทาแหนมงเปด้ าหมาย ซซทงแสดงดปังรสู ปทดีท 1 และ รสู ปทดีท 2
จากรสู ปทดีท 40 เปป็ นการเรริท มหมจุนจากคมาความเรป็ วตททา และ ททาการปรปับความเรป็ วสสู งขซด นหากระยะทาง
ยปังไกลอยสูม และ ปรปับลงอดีกครปัดงเมรืทอเขด้าใกลด้เปด้ าหมาย
r(s) E(s)
G(s) (s) 1/s
c(s)
R(s) C(s)
+
-
รรปทท43
ท แสดงFlow chart Main CPU
รม ปททที่ 10a
รม ปททที่ 10b
รม ปททที่ 10c
รม ปททที่ 46 แสดงสปัญญาณ PWM ซซท งแสดงคมา duty cycles ทดีทตมางๆกปัน
4. Flow Chart การควบคจุมทริศทาง
บทททที่ 7 กนรทดสอบและบทสรถ ป
กนรทดสอบควนมคลนดเคลรอที่ นในกนรเคลรอที่ นททที่
power supply
o ปจุม มปรปับแรงดปัน fixed +15 v,+12 v, +5 v , -15 v, -12 v, 0 v
o ปจุม มปรปับแรงดปันสามารถปรปับแรงดปันไดด้ในชมวง 0 – 30 v
กนรทดสอบ
ในการทดสอบในสม วนของความคลาดเคลรืทอนในการเคลรืทอนทดีทนด ปันจะใชด้หลปักการในการสจุม ม
ทดสอบเปป็ นกรณดี ๆ ไป โดยจะเปรดี ยบเทดียบคมาทดีทไดด้จรริ ง กปับ ตทาแหนม งทดีทตอด้ งการทดีทปด้อนเขด้ามา ซซท งใน
โครงงานนดีด encoder ทดีทตมออยสูมกบปั motor นปัดนมดีความละเอดี ยด 200 pulse / รอบ และเปป็ นแบบ 2 phase
ซซท งจะททาใหด้สามารถปรปับความละเอดียดไดด้สสูงสจุ ด 4 เทมาครือ 800 pulse / รอบ และ สามารถตรวจสอบ
ทริศทางการหมจุนไดด้ดวด้ ย แตม เนรืท องจากความละเอดียด 800 pulse / รอบ มดีความละเอดียดสสู งเกรินไป ซซท ง
อาจจะททาใหด้มดีความคลาดเคลรืทอนสสูง และ การททางานอาจจะไมมทนปั ในเวลาเนรืท องจากมดีความเรป็ วสสู งมาก
จซงเลรือกใชด้ความละเอดียดทดีท 400 pulse / รอบ
การทดสอบนปัดนจะททาการทดลองการหมจุนในแตมละทริศทาง และ แตมละกรณดี ของ pulse เปด้ า
หมายทดีทปด้อนตมาง ๆ แยกกปัน ทปัดงนดีด เนรืท องจากความเรป็ วของทริศทางตามเขป็มนาฬริกา เรป็ วกวมา ทริศทางทวน
เขป็มนาฬริกาเลป็กนด้อย (จากการทดลอง) ททาใหด้คมา ความเรป็ วในการเขด้าถซงตทาแหนม ง และ คมา error ของ 2
ทริศทางในแตมละ case ของแรงดปันเดดียวกปัน มดีคมาตมางกปัน
ตนรนงททที่ 8 ผลกนรทดสอบ
Input Output
จจจนวน หมมนตจมเขขม หมมนทวนเขขม
pulse ครรงร ททท ครรงร ททท ครรงร ททท Pulse Error ครรงร ททท ครรงร ททท ครรงร ททท Pulse Error
1 2 3 เฉลทย
ท (pulse) 1 2 3 เฉลทย
ท (pulse)
1 1 1 1 1.00 0.00 1 1 1 1.00 0.00
5 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.00
20 19 20 18 19.00 1.00 20 19 20 19.67 0.33
30 32 30 31 31.00 -1.00 30 29 30 29.67 0.33
40 39 38 40 39.00 1.00 40 39 39 39.33 0.67
50 49 48 50 49.00 1.00 48 49 49 48.67 1.33
วติเครนะหค ผลกนรทดสอบ
ทริศตามเขป็มนาฬริกา
จากผลการทดสอบการหมจุนในชมวง 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 นศันขึ้ การหมชุนในทริศทางทวนเขป็มนาฬริกาจะมนความแมบ่นยทา สมูงกวบ่า คมอ คบ่า
สรถ ปผลกนรทดสอบ
จากผลการทดลองเหป็ นไดด้วมาทปัดงการหมจุนทวนเขป็มนาฬริ กา และ ตามเขป็มนาฬริ กานปัด นในชม วง
ของ 1 – 180 pulse แรกนปัดนจะมดีความแมมนยทาสสู ง สม วนคมา input ทดีทสสูงกวมานปัดนจะเรริท มมดีคมา error สสู งขซดน
ทปัดงนดีด เนรืท องจากกระบวนการควบคจุมความเรป็ ว เมรืทอระยะทางยริ ทงไกลจะมดีการใชด้ความเรป็ วสสู งในการเขด้า
ถซงททาใหด้เกริด error เนรืท องจากแรงเฉรืท อยในการเคลรืทอนทดีทบาด้ ง ดปังนปัด นระยะทางตมาง ๆ จะมดีความเรป็ วชมวง
หนซท งทดีทเหมาะสมในการเขด้าถซงโดยระยะทางทดีทไกล ๆ จะตด้องมดีการปรปับลดความเรป็ วในชมวงสจุ ดทด้ายใหด้
เรป็ วกวมาการเคลรืทอนทดีทระยะทางใกลด้ ๆ เพรืทอใหด้การเขด้าถซงตทาแหนมงมดีความแมมน
บรรณนนถกรม
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
ภาคผนวก ก
รายละเอดียดเกดีทยวกปับวงจรทางดด้านฮารร์ ดแวรร์
Microprocessor 8051
ในไมโครคอนโทรลเลอรร์เบอรร์ 8051 ประกอบดด้วยพอรร์ ตอรินพจุตเอาทร์พตจุ แบบ 2 ทริศทาง
(Bidirectional) จทานวน 4 พอรร์ต แตมละพอรร์ ตมดีอจุปกรณร์แลทซร์ขอด้ มสูล และเอาทร์พตจุ ไดรเวอรร์ ประกอบ
อยสูทม างดด้านเอาทร์พตจุ และทางดด้านอรินพจุตจะมดีบฟปั เฟอรร์ (พอรร์ ตทปัดง 4 เปป็ นรดี จดีสเตอรร์ พริเศษชรืทอ P0, P1, P2
ตปัวตปัดงเวลาและตปัวนปับ (Timer/Counter)
ไมโครคอนโทรลเลอรร์เบอรร์ 8051 ประกอบดด้วยรดี จดีสเตอรร์ ตปัวตปัดงเวลา/ตปัวนปับ ขนาด 16 บริต
จทานวน 2 ชจุด ครือ Timer0 และ Timer1 โดย Timer ทปัดงหมดสามารถกทาหนดใหด้ทาท งานในลปักษณะ
ของตปัวนปับหรรื อตปัวจปับเวลากป็ไดด้
การททางานในโหมดของตปัวตปัดงเวลา คมาของรดี จดีสเตอรร์ จะเพริมท ขซดนทจุกๆ แมชชดีนไซเคริลโดย 1
แมชชดีนไซเคริล ประกอบดด้วยสปัญญาณนาฬริกา 12 ลสูก ดปังนปัดนอปัตราการจปับเวลาจะเปป็ น 1/12 เทมาของ
ความถดีทสญ ปั ญาณนาฬริกา ของระบบ คมาสสูงสจุ ดทดีทตด งปั ไดด้ครือ 2 ยกกทาลปัง 16
สม วนควบคจุมการททางานของวงจรนปับ/จปับเวลา
ซซทงประกอบดด้วยสม วนของการกทาหนดทดีทมาของสปัญญาณ (Timer) หรรื อ (Counter) และ bit
หรรื อขาสปัญญาณสทาหรปับการหยจุดหรรื อททางานของวงจรนปับ
การททางานเปป็ นตปัวจปับเวลาตด้องมดีการกทาหนดคมาใหด้อยสูใม นสภาวะดปังตารางกมอน
8051 Timer/Counter
TMOD and TCON Registers
Timer/Counter 0Timer/Counter 1C/T#M1M0GATE#C/T#M1M0GATE#TMOD
Timer/Counter 0Timer/Counter 1TF1TR1TF0TR0IE1IT1IE0IT0TCON
Baud Rate
Baud Rate = 2SMOD x f
384 x (256 – TH1)
การททางานเปป็ นตปัวนปับสปัญญาณ
การใชด้งานในลปักษณะตปัวนปับ(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 ถสูกนทาไปใสม (Capture) ใหด้กบปั register
RCAP2L และ RCAP2H ซซทงเปป็ น register หนด้าทดีทพริเศษ หรรื อ SFR ทดีทมดีใน Microcontroller เบอรร์ 8052
DC motor Position Control using Microcontroller 8051 72
เทมานปัดน นอกจากนดีดจะมดีผลททาใหด้ 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 ซซท งมดีการเตรดี ยมคมาลมวงหนด้าแลด้วโดยอปัตโนมปัตริ
ภาคผนวก ค
การสรืท อสารทางพอรร์ตอนจุกรมแบบ RS-232 กปับ ไมโครคอนโทรลเลอรร์ ตระกสูล 8051
รม ปททที่ 50 รสู ปแบบสปัญญาณไฟฟด้ าของขด้อมสูล ซซท งเปป็ นการสม งขด้อมสูลแบบอนจุกรมดด้วยอปัตราเรป็ ว 2400 บริต/
วรินาทดี (สปังเกตวมาจะเรริท มสม งจากบริต D0 ซซท งเปป็ นบริตนปัยสทาคปัญตททาออกมากมอนเปป็ นลทาดปับแรก)
รสู ปแบบของขด้อมสูลอนจุกรม
วริธดีการทดีทจะททาใหด้ขอด้ มสูลสรืท อสารอนจุกรมมดีความถสูกตด้องมากยริงท ขซดน จะใชด้การเพริทมเตริมบริตขด้อมสูลบาง
อยมางรม วมไปกปับการสม งขด้อมสูลจรริ ง ไดด้แกม
DC motor Position Control using Microcontroller 8051 74
1. บริตเรริท มตด้น (Start Bit)
มดีหนด้าทดีทสาท หรปับการบมงบอกใหด้วงจรฮารร์ ดแวรร์ ทางดด้านรปับทราบถซง ตทาแหนมงจจุดเรริท มตด้นของบริต
ขด้อมสูลกลจุมมใหมม เพรืทอทดีทจะททาการปรปับจปังหวะของสปัญญาณการรปับขด้อมสูลใหด้ตรงกปัน ดปังนปัดนบริตเรริท มตด้นนดีด
จซงจะถสูกเพริทมเขด้าไปกมอนระดปับลอจริกของสภาวะของสายสรืท อสาร ขณะเมรืทอไมมมดีการสม งขด้อมสูล
2. บริตแสดงภาวะความเปป็ นเลขคสูมหรรื อเลขคดีท (Parity Bit)
มดีหนด้าทดีทเพรืทอตรวจสอบความถสูกตด้องของขด้อมสูล โดยทปัวท ไปมปักเรดี ยกวมา บริตพารริ ตด ดีและจะนทาไป
แทรกตมอทด้ายบริตขด้อมสูล คมาของบริตนดีด ขด ซนอยสูกม บปั จทานวนคมาของบริตขด้อมสูลทดีทเปป็ น 1 ซซท งจะเปป็ นไดด้สอง
ลปักษณะ ครือ พารริ ตด ดีคมสู (Even Parity) หรรื อ พารริ ตด ดีคดีท (Odd Parity)
3. บริตสจุ ดทด้าย (Stop Bit)
เปป็ นบริตทดีทเพริทมเตริมขซดนเพรืทอระบจุถซงขอบเขตการสริด นสจุ ดของกลจุมมบริตขด้อมสูล บริตสจุ ดทด้ายนดีด อาจจะมดี
จทานวนมากกวมาหนซทงบริตไดด้ ครือ 1.5 บริต และ 2 บริต ดปังนปัดนกรณดี ของการสม งขด้อมสูล 8 บริตพรด้อมบริตทดีทเพริทม
เตริมเขด้าไปโดยสมบสูรณร์ ครือ บริตเรริท มตด้น บริตพารริ ตด ดี และ บริตสจุ ดทด้าย รวมทปัดงสริด น 12 บริต ตามแผนภาพ
สปัญญาณเวลาในรสู ปทดีท 2 หากขด้อมสูลถสูกสม งออกไปดด้วยอปัตราเรป็ ว 2400 บอด เวลาโดยรวมในการสม ง
ขด้อมสูลหนซทงไบตร์จะมดีคมาเปป็ น 12 x 416 ไมโครวรินาทดี หรรื อ 4.99 มริลลริวรินาทดี
การจปัดการขด้อมสูลอนจุกรมของ 8051
พอรร์ตอนจุกรมของ 8051 มดีโครงสรด้างการททางานในแบบทดีทเรดี ยกวมา ฟสูลดสูเพลป็กซร์ (Full
Duplex) ซซทงหมายถซงความสามารถในการรปับและสม งขด้อมสูลอนจุกรมไดด้ในเวลาเดดียวกปัน โดยทางดด้าน
วงจรของตปัวสม ง (Transmitter) ประกอบดด้วยรดี จริสเตอรร์ SBUF ททาหนด้าทดีทเกป็บขด้อมสูลทดีทจะสม งออกการใชด้
คทาสปังท เขดียนหรรื อโอนยด้ายขด้อมสูลมายปังรดี จริสเตอรร์ นดดี จะเปป็ นการสม งขด้อมสูลนปัดนออกไปยปังพอรร์ ตอนจุกรมทาง
ขาสปัญญาณ TxD โดยอปัตโนมปัตริ สม วนวงจรดด้านตปัวรปับ (Reciever) ประกอบดด้วยรดี จริสเตอรร์ SBUF เชมน
เดดียวกปัน แตมทาท หนด้าทดีทเกป็บขด้อมสูลทดีทนาท มาจากสม วนวงจรเลรืทอนบริตหรรื อชริพรดี จริสเตอรร์ (Shift Register) ของ
วงจรจปัดการขด้อมสูลอนจุกรมภายใน สปัญญาณขด้อมสูลอนจุกรมทดีทรปับเขด้าจะผมานมาทางขาสปัญญาณ RxD
การเชรืทอมตมอแบบมาตรฐาน RS-232C
ในการเชรืทอมตมอแบบอนจุกรมเขด้ากปับอจุปกรณร์คอมพริวเตอรร์ ตมางๆ เชมน คอมพริวเตอรร์ เทเลกซร์
หรรื อ โทรพริมพร์ เปป็ นตด้น มปักจะกทาหนดใชด้การเชรืทอมตมอตามมาตรฐาน RS-232C ทปัดงนดีด เพรืทอใหด้มดีการใชด้
งานเสด้นสปัญญาณหรรื อรสู ปแบบของตปัวเชรืทอมตมอทดีทสอดคลด้องกปัน จะไดด้ลดปปั ญหาการเขด้ากปันไมมไดด้
ระหวมางสปัญญาณของอจุปกรณร์ทดีทมาเชรืทอมตมอกปันทปัดงสองดด้านใหด้นอด้ ยลง เนรืท องจากระดปับโวลเตจทดีทใชด้
และการแทนความหมายของระดปับลอจริกตามาตรฐานนดีด แตกตมางไปจากทดีทใชด้งานกปันในระบบดริจริตอล
ทปัวท ไปโดยระดปับสปัญญาณของ RS-232C เปป็ นแบบไบโพลารร์ ระดปับโวลเตจทางดด้านลบชมวง -3V ถซง
-20V แทนคมาลอจริก 1 และโวลเตจทางดด้านบวกชมวง +3V ถซง +20V แทนคมาลอจริก 0 ดปังนปัดนจะเหป็นไดด้
วมามดีความจทาเปป็ นตด้องเพริมท เตริมอจุปกรณร์หรรื อวงจรพริเศษเขด้าไป เพรืทอเปลดีทยนระดปับโวลเตจจากระบบ 0V
ถซง +5V จากขาสปัญญาณของ 8051 เปป็ นระดปับโวลเตจทดีทสสูงกวมาคมา +3.0V หรรื อตททากวมา -3.0V
D-Sub 1 D-Sub 2
Receive Data 2 3 Transmit Data
Transmit Data 3 2 Receive Data
Data Terminal Ready 4 6+1 Data Set Ready + Carrier Detect
System Ground 5 5 System Ground
Data Set Ready + Carrier Detect 6+1 4 Data Terminal Ready
Request to Send 7 8 Clear to Send
Clear to Send 8 7 Request to Send
รม ปททที่ 55 การเชรืทอมตมอขาสปัญญาณ
ภาคผนวก ง
โปรแกรมการททางานของ สม วน Main CPU , Drive Motor และ Sampling
void initial()
{
//initial timer 0 and assign timer registers
//ES = 1; // enable serial interrupt
EA = 1; // enable interrupt
TMOD=0x20; //set timer0 mode 1 (ignored upper 4 bits of TMOD)
//initial the serial port
SCON=0x50; // set for receive
TH1=0xFD;
TL1=0xFD;
TR1=1;
P1 = 0x00;
P0 = 0xFF;
P2 = 0xFF;
buf_step DC motor Position Control using Microcontroller
= 0xFF; 8051 80
}
//Function receive
void getCharacter (void)
{
duty_time = 0x0000;
while (RI!=1);
RI=0; // it receive interrupt
// move data to variable
chr = SBUF;
if(chr != 0xFF)
DPL = chr; // ********* position from Computer
if(chr != 0x00)
DPL = chr;
while (RI!=1);
RI=0; // it receive interrupt
buffer = SBUF;
if(buffer == 0xF0 || buffer == 0xF1) direction = 1; // left
else if(buffer == 0xE0 || buffer == 0xE1) direction = 0; // right
else direction = 0;
position = DPTR;
}
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;
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;} // 0x06
else
{ 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;} // 0x07
else
{ 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;} // 0x08
else
{ 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;} // 0x08
else
{ P10 = 1; P11 = 0; P12 = 0; P13 = 1;} // 0x09
}
}
void timer_count();
void send();
unsigned char duty = 0x00;
โปรแกรมอว่ นนสคั ญญนณ Encoder ใน
unsigned char duty_times = 0x00;
Drive Motor
unsigned int step = 0x0000;
unsigned int step1 = 0x0000;
bit direction = 0;
int flag = 0;
P1 = 0xFF;
// loop for check direction , speed and step
while(1)
{
send();
if(direction == 0)
step++; // step = pulse count
DC motor Position
else Control using Microcontroller 8051 84
step1++;
duty_times = duty;
duty = 0;
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
else
step1++;
// ******************** end check
}//end of while(1)
}//end of main
P2 = DPL;
// P15 = direction; // for direction
}
bit direction = 1;
unsigned char con; // construction from port
void main(void)
{
initial();
init_timer();
while(1)
{
direction = P37;
low_count = 0;
// high period
P1 = 0xF0;
} // 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;
}
If Combo1.ListIndex = 0 Then
direct_send = 240
Else
direct_send = 224
End If
a = Int(Text17.Text)
'Combo1.ListIndex
Text19.Text = "¤èÒ Ascii " & Chr(a) & ", ·ÔÈ·Ò§ " & direct_send
End Sub
สม วนในการรปับคมาจาก Microcontroller
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 = True
End Sub