14
วงจรขับมอเตอร์ไฟฟ้ ากระแสตรงแบบ H-bright M + V NC NO NC NO Relay 1 Relay 2 NO OFF + - M + V NC NO NC NO Relay 1 Relay 2 OFF ON + - รูปที5.1 แสดงการกลับทิศทางของมอเตอร์กระแสตรงโดยใช้รีเลย์ M + V Q 1 Q 2 Q 3 Q 4 ON ON OFF OFF + - M + V Q 1 Q 2 Q 3 Q 4 ON ON OFF OFF + - รูปที5.2 แสดงการใช้ทรานซิสเตอร์เป็นวงจรขับและกาหนดทิศทางของมอเตอร์กระแสตรง RSB RSA IN1 ENA IN2 5 7 6 +Vss Vref 9 IN4 ENB IN3 12 10 11 15 8 1 Current Senser A Current Senser B +Vs OUT1 OUT2 2 3 13 14 OUT3 OUT4 รูปที5.3 แสดงโครงสร้างภายในของไอซีเบอร์ L298N

OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

วงจรขบมอเตอรไฟฟากระแสตรงแบบ H-bright

M

+ V

NC

NO

NC

NO

Relay 1 Relay 2NO OFF

+ -

M

+ V

NC

NO

NC

NO

Relay 1 Relay 2OFF ON

+ -

รปท 5.1 แสดงการกลบทศทางของมอเตอรกระแสตรงโดยใชรเลย

M

+ VQ 1 Q 2

Q 3 Q 4

ON

ON

OFF

OFF

+ -

M

+ VQ 1 Q 2

Q 3 Q 4

ON

ON

OFF

OFF

+ -

รปท 5.2 แสดงการใชทรานซสเตอรเปนวงจรขบและก าหนดทศทางของมอเตอรกระแสตรง

RSBRSA

IN1

ENAIN2

5

76

+Vss Vref9

IN4

ENBIN3

12

1011

1581Current Senser A Current Senser B

+VsOUT1 OUT22 3 13 14

OUT3 OUT4

รปท 5.3 แสดงโครงสรางภายในของไอซเบอร L298N

Page 2: OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

+ 24 V

IN1

IN2ENA

L298N

+Vss + Vs

RSB

OUT1

OUT2

2

3

158

6

7

5

9 4

RSA

1

+ 5 V

OUT1

OUT2ENA

IN1

IN2

IN3

IN4

ENB

OUT3

OUT4

13

1411

12

10 OUT3

OUT4ENB

IN3

IN4

M1

M2

+

-

+

-

PWM

PWM

รปท 5.4 แสดงการควบคมความเรวของมอเตอรโดยใชวธ PWM

ตารางท 5.1 แสดงการท างานของวงจรควบคมมอเตอรแบบ H bright INPUT

การท างานของมอเตอร ENA IN2 IN1

0 0 0 ไมหมน 0 0 1 ไมหมน 0 1 0 ไมหมน 0 1 1 ไมหมน 1 0 0 ไมหมน 1 0 1 หมนตามเขมนาฬกา ความเรวสงสด 1 1 0 หมนทวนเขมนาฬกา ความเรวสงสด 1 1 1 หยดหมนทนททนใด

PWM 0 1 หมนตามเขมนาฬกา ความเรวขนอยกบ PWM PWM 1 0 หมนทวนเขมนาฬกา ความเรวขนอยกบ PWM

Page 3: OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

โครงสรางและการท างานของ Stepper motor

ROTOR

+ V

1

2

4321

4

3

รปท 5.5 โครงสรางสเตปเปอรมอเตอร 4 เฟสแบบยนโพลาร

ตารางท 5.1 การกระตนเฟสแบบฟลสเตป 1 เฟส หมนตามเขมนาฬกา

สเตปท เฟสท1 เฟสท2 เฟสท3 เฟสท4 1 1 0 0 0 2 0 1 0 0 3 0 0 1 0 4 0 0 0 1

ตารางท 5.2 การกระตนเฟสแบบฟลสเตป 1 เฟส หมนทวนเขมนาฬกา

สเตปท เฟสท1 เฟสท2 เฟสท3 เฟสท4 1 0 0 0 1 2 0 0 1 0 3 0 1 0 0 4 1 0 0 0

ตารางท 5.3 การกระตนเฟสแบบฟลสเตป 2 เฟส หมนตามเขมนาฬกา

สเตปท เฟสท1 เฟสท2 เฟสท3 เฟสท4 1 1 1 0 0 2 0 1 1 0 3 0 0 1 1 4 1 0 0 1

Page 4: OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

ตารางท 5.4 การกระตนเฟสแบบฟลสเตป หมนทวนเขมนาฬกา

สเตปท เฟสท1 เฟสท2 เฟสท3 เฟสท4 1 0 0 1 1 2 0 1 1 0 3 1 1 0 0 4 1 0 0 1

ตารางท 2.10 การกระตนเฟสแบบฮาลฟเตปหมนตามเขมนาฬกา

สเตปท 1 2 3 4 5 6 7 8 เฟส 1 1 1 0 0 0 0 0 1 เฟส 2 0 1 1 1 0 0 0 0 เฟส 3 0 0 0 1 1 1 0 0 เฟส 4 0 0 0 0 0 1 1 1

ตารางท 2.11 การกระตนเฟสแบบฮาลฟเตป หมนตามเขมนาฬกา

สเตปท 1 2 3 4 5 6 7 8 เฟส 1 0 0 0 0 0 1 1 1 เฟส 2 0 0 0 1 1 1 0 0 เฟส 3 0 1 1 1 0 0 0 0 เฟส 4 1 1 0 0 0 0 0 1

+ 12 V

ROTORULN2003

D0D1D2D3

D0D1D2D3

1.5 KΩ 1.5 KΩ 1.5 KΩ 1.5 KΩ

2

1

3

4

รปท 5.6 วงจรขบสเตปเปอรมอเตอรโดยใชไอซเบอร ULN2003

Page 5: OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

ล ำดบขนกำรทดลอง

1. ตอวงจรในชดทดลองดงรปท 5.7

+ 24 V

IN1

IN2ENA

L298N

+Vss + Vs

RSB

OUT1

OUT2

2

3

158

6

7

5

9 4

RSA

1

+ 5 V

OUT1

OUT2

M1+

-

330

4.7K

4.7K

4.7K

PIC817x3

20MHz

20pF 20pF

+ 5 V

100 µF

16F877A

MCLR

1231

13 14

11 32

RC2

RC1

RC0

OSC1 OSC2

VSS

VDD VDD

VSS

0.1RE

SET

10 KΩ1

0.1

1N4148

330

330

รปท 5.7 วงจรการทดลองของขอท 1 การควบคม DC motor

2. เขยนโปรแกรมขางลางลงในคอมพวเตอร แลวบนทกเปนชอ MOTOR1.pbp

@ DEVICE PIC16F877A,HS_OSC,LVP_OFF,BOD_OFF,WDT_OFF DEFINE OSC 20 TRISC = %00000000 I VAR BYTE PORTC = 0 ADCON1 = 7

MAIN: FOR I = 1 TO 10 PORTC.0 = 1

PORTC.1 = 0 PORTC.2 = 1 PAUSE 1000 NEXT I

Page 6: OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

PORTC = 0 PAUSE 1000

FOR I = 1 TO 10 PORTC.0 = 0 PORTC.1 = 1 PORTC.2 = 1 PAUSE 1000 NEXT I

PORTC = 0 PAUSE 1000 GOTO MAIN END

3. ตอวงจรตามรปท 5.8

10KΩ 10KΩ

+ 5V

FWD RWD STP

10KΩ

+ 24 V

IN1

IN2ENA

L298N

+Vss + Vs

RSB

OUT1

OUT2

2

3

158

6

7

5

9 4

RSA

1

+ 5 V

OUT1

OUT2

M1+

-

330

4.7K

4.7K

4.7K

PIC817x3

20MHz

20pF 20pF

+ 5 V

100 µF

16F877A

MCLR

1231

13 14

11 32

RC2

RC1

RC0

OSC1 OSC2

VSS

VDD VDD

VSS

0.1

RESE

T

10 KΩ1

0.1

1N4148

330

330

RB0RB1RB2

รปท 5.8 วงจรการทดลองของขอท 3 อานการสวตซเพอควบคม DC motor

4. เขยนโปรแกรมขางลางลงในคอมพวเตอร แลวบนทกเปนชอ MOTOR2.pbp @ DEVICE PIC16F877A,HS_OSC,LVP_OFF,BOD_OFF,WDT_OFF DEFINE OSC 20 TRISB = $FF

Page 7: OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

TRISC = $00 FWD VAR PORTB.0 RWD VAR PORTB.1 STP VAR PORTB.2 PORTC = 0 ADCON1 = 7

MAIN: IF (FWD = 0) AND (RWD = 1) AND (STP = 1) THEN GOSUB FW IF (FWD = 1) AND (RWD = 0) AND (STP = 1) THEN GOSUB RW IF (FWD = 1) AND (RWD = 1) AND (STP = 0) THEN GOSUB STP

IF (FWD = 0) AND (RWD = 0) THEN GOSUB STP IF (STP = 0) THEN GOSUB STP

GOTO MAIN END FW: PORTC = $05 PAUSE 100 RETURN RW: PORTC = $06 PAUSE 100 RETURN STP: PORTC = $00 PAUSE 100 RETURN

Page 8: OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

5. ตอวงจรตามรปท 5.9

10KΩ 10KΩ

+ 5V

FWD RWD STP

10KΩ

+ 24 V

IN1

IN2ENA

L298N

+Vss + Vs

RSB

OUT1

OUT2

2

3

158

6

7

5

9 4

RSA

1

+ 5 V

OUT1

OUT2

M1+

-

330

4.7K

4.7K

4.7K

PC817x6

20MHz

20pF 20pF

+ 5 V

100 µF

16F877A

MCLR

1231

13 14

11 32

RC2

RC1

RC0

OSC1 OSC2

VSS

VDD VDD

VSS

0.1

RESE

T

10 KΩ1

0.1

1N4148

330

330

RB0RB1RB2

10KΩ

+ 5V

RA0

SPEED

รปท 5.9 วงจรการทดลองของขอท 5 อานการสวตซและอนาลอกเพอควบคม DC motor

6. เขยนโปรแกรมขางลางลงในคอมพวเตอร แลวบนทกเปนชอ MOTOR3.pbp @ DEVICE PIC16F877A,HS_OSC,LVP_OFF,BOD_OFF,WDT_OFF DEFINE OSC 20 TRISA = %111111 TRISB = $FF TRISC = $00 FWD VAR PORTB.0 RWD VAR PORTB.1 STP VAR PORTB.2 DUTY VAR BYTE SPEED VAR BYTE PORTC = 0 ADCON1 = 14

MAIN: GOSUB CHK_SW GOTO MAIN END CHK_SW: IF (FWD = 0) AND (RWD = 1) AND (STP = 1) THEN GOSUB FW

Page 9: OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

IF (FWD = 1) AND (RWD = 0) AND (STP = 1) THEN GOSUB RW IF (FWD = 1) AND (RWD = 1) AND (STP = 0) THEN GOSUB STP

IF (FWD = 0) AND (RWD = 0) THEN GOSUB STP IF (STP = 0) THEN GOSUB STP

RETURN FW: PORTC.0 = 1

PORTC.1 = 0 ADCIN 0, SPEED DUTY = SPEED HPWM 1, DUTY , 1000 IF (FWD = 0) OR (RWD = 0) OR (STP = 0) THEN GOTO MAIN GOTO FW

RW: PORTC.0 = 0 PORTC.1 = 1 ADCIN 0, SPEED DUTY = SPEED HPWM 1, DUTY , 1000 IF (FWD = 0) OR (RWD = 0) OR (STP = 0) THEN GOTO MAIN GOTO RW

STP: PORTC.0 = 0 PORTC.1 = 0 HPWM 1, 0 , 1000 GOTO MAIN

Page 10: OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

7. ตอวงจรตามรปท 5.10

+ 12 V

ROTORULN2003

D0D1D2D3

D0D1D2D3

STEPPER MOTOR

1

4

3

2

2KΩ

10KΩ

+ 5V

FWD RWD

10KΩ

20MHz

20pF 20pF

+ 5 V

100 µF

16F877A

MCLR

1231

13 14

11 32

RC2

RC1RC0

OSC1 OSC2

VSS

VDD VDD

VSS

0.1

RESE

T10 KΩ

1

0.1

1N4148

RB0RB1

RC3

2KΩ

2KΩ

2KΩ

รปท 5.10 วงจรการทดลองของขอท 7 การควบคม Stepper motor

8. เขยนโปรแกรมดานลางลงในคอมพวเตอร (เปนการขบแบบ 1 เฟส ฟลสเตป) แลว

บนทกเปนชอ STEPPER1.pbp

@ DEVICE PIC16F877A, HS_OSC, LVP_OFF, BOD_OFF, WDT_OFF DEFINE OSC 20 TRISB = $FF TRISC = $00 SW1 VAR PORTB.0 SW2 VAR PORTB.1 N VAR BYTE M VAR BYTE PORTC = 0 ADCON1 = 7

MAIN: GOSUB CHK_SW GOTO MAIN END CHK_SW: IF (SW1 = 0) AND (SW2 = 1) THEN GOSUB FW

Page 11: OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

IF (SW1 = 1) AND (SW2 = 0) THEN GOSUB RW IF (SW1 = 0) AND (SW2 = 0) THEN GOSUB STP

RETURN FW: N = 1 L1: LOOKUP N,[%1000,%0100,%0010,%0001],PORTC PAUSE 300 N = N+1 IF (FWD = 0) OR (RWD = 0) THEN GOTO MAIN IF N > 4 THEN GOTO FW ELSE GOTO L1

RETURN RW: N = 1 L2: LOOKUP N,[%0001,%0010,%0100,%1000],PORTC PAUSE 300 N = N+1 IF (FWD = 0) OR (RWD = 0) THEN GOTO MAIN IF N > 4 THEN GOTO RW ELSE GOTO L2

RETURN STP: PORTC = $00

PAUSE 100 GOTO MAIN

9. เขยนโปรแกรมขางลางลงในคอมพวเตอร(เปนการขบแบบ 2 เฟส ฟลสเตป) แลวบนทกเปนชอ STEPPER2.pbp

@ DEVICE PIC16F877A,HS_OSC,LVP_OFF,BOD_OFF,WDT_OFF DEFINE OSC 20 TRISB = $FF

Page 12: OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

TRISC = $00 SW1 VAR PORTB.0 SW2 VAR PORTB.1 N VAR BYTE M VAR BYTE PORTC = 0 ADCON1 = 7

MAIN: GOSUB CHK_SW GOTO MAIN END CHK_SW: IF (SW1 = 0) AND (SW2 = 1) THEN GOSUB FW IF (SW1 = 1) AND (SW2 = 0) THEN GOSUB RW

IF (SW1 = 0) AND (SW2 = 0) THEN GOSUB STP RETURN

FW: N = 1 L1: LOOKUP N,[%1100,%0110,%0011,%1001],PORTC PAUSE 300 N = N+1 IF (FWD = 0) OR (RWD = 0) THEN GOTO MAIN IF N > 4 THEN GOTO FW ELSE GOTO L1

RETURN RW: N = 1 L2: LOOKUP N,[%1001,%0011,%0110,%1100],PORTC PAUSE 300 N = N+1 IF (FWD = 0) OR (RWD = 0) THEN GOTO MAIN IF N > 4 THEN GOTO RW ELSE

Page 13: OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

GOTO L2 RETURN

STP: PORTC = $00 PAUSE 100 GOTO MAIN

10. เขยนโปรแกรมขางลางลงในคอมพวเตอร (ฮาลฟสเตป) แลวบนทกเปนชอ STEPPER3.pbp

@ DEVICE PIC16F877A,HS_OSC,LVP_OFF,BOD_OFF,WDT_OFF DEFINE OSC 20 TRISB = $FF TRISC = $00 SW1 VAR PORTB.0 SW2 VAR PORTB.1 N VAR BYTE M VAR BYTE PORTC = 0 ADCON1 = 7

MAIN: GOSUB CHK_SW GOTO MAIN END CHK_SW: IF (SW1 = 0) AND (SW2 = 1) THEN GOSUB FW IF (SW1 = 1) AND (SW2 = 0) THEN GOSUB RW

IF (SW1 = 0) AND (SW2 = 0) THEN GOSUB STP RETURN

FW: N = 1 L1: LOOKUP N,[%1000,%1100,%0100,%0110,%0010,%0011,%0001,%1001],PORTC PAUSE 300 N = N+1 IF (FWD = 0) OR (RWD = 0) THEN GOTO MAIN IF N > 8 THEN GOTO FW

Page 14: OFF OUT1 OUT2 +Vs OUT3 OUT4 IN1 M IN4 · 2015-11-14 · ล ำดับขั้นกำรทดลอง 1.ต่อวงจรในชุดทดลองดงัรูปที่5.7

ELSE GOTO L1

RETURN RW: N = 1 L2: LOOKUP N,[%1001,%0001,%0011,%0010,%0110,%0100,%1100,%1000],PORTC PAUSE 300 N = N+1 IF (FWD = 0) OR (RWD = 0) THEN GOTO MAIN IF N > 8 THEN GOTO RW ELSE GOTO L2

RETURN STP: PORTC = $00

PAUSE 100 GOTO MAIN