PPTX - Hit - FH

Werbung
Stand Dezember 2014
„PWM-SERVO-Quickie“
Ansteuerung eines Servomotors
1
Prof. J. Walter
PWM-SERVO-Quickie
Mikrocomputertechnik
Mikrocomputertechnik
Jürgen Walter
PWM-SERVO-Quickie

2


Ansteuerung eines Servomotors
Zusammenhang: Pulsweite – Winkelstellung
Kalibration eines Systems mit Servo
Belastung der CPU minimieren
Prof. J. Walter
Mikrocomputertechnik

Stand Dezember 2014
Lernziele:
3

IDE-Quickie

PWM-LED-Quickie
Prof. J. Walter
Stand Dezember 2014
PWM-SERVO-Quickie
Mikrocomputertechnik
Voraussetzungen
PWM-SERVO-Quickie

4
PWM-Programm: L_25_50_75
Es werden 3 LEDs mit verschiedenem Duty-Cycle
angesteuert – 25% - 50% - 75%
Prof. J. Walter
Mikrocomputertechnik

Stand Dezember 2014
Wiederholung 1
5
Prof. J. Walter
Stand Dezember 2014
PWM-SERVO-Quickie
Mikrocomputertechnik
Wiederholung 2 – Vergleich PCA0 - CPx
6
Die Pulsbreite zwischen 900µs und 2100µs für den
Servo entspricht der Winkelstellung zwischen 0°
und 180°
Prof. J. Walter
PWM-SERVO-Quickie
Mikrocomputertechnik

Stand Dezember 2014
Funktion des Servos



7
Servoimpuls – Alle HiTEC-Servos benötigen
Impulse zwischen 3-5V und einer Länge von 0,9 bis
2,1 ms. Die Neutralposition liegt bei 1,5 ms. Die
Wiederholrate beträgt 50 Hz (20 ms).
Betriebsspannung - Sie liegt zwischen 4,8 und 6V.
Farbcodierung der Kabel - SCHWARZ für Minus,
ROT für Plus, GELB für Impuls-Signal
Drehrichtung - Alle HiTEC Servos arbeiten im
Uhrzeigersinn (CW).
Prof. J. Walter
PWM-SERVO-Quickie
Mikrocomputertechnik

Stand Dezember 2014
Aus Datenblatt des Servos HITEC HS-311 Elektr.
PWM-SERVO-Quickie








8
Getriebe: Nylon
Kugellager: 0
Geschwindigkeit bei 4,8 V: 0,19 sec/60°
Geschwindigkeit bei 6,0 V: 0,15 sec/60°
Drehmoment bei 4,8 V: 30 Ncm
Drehmoment bei 6,0 V: 35 Ncm
Abmessungen: ca. 40 x 20 x 36,5 mm
Gewicht: ca. 43 g
Irun 180mA – Imax bei 6V: blockieren 800mA
Prof. J. Walter
Mikrocomputertechnik

Stand Dezember 2014
Aus Datenblatt Servo HITEC HS-311-Mechanik
Kleine Berechnung Servomotor (Excel)
Mikrocomputertechnik
3,00E+06
Neutralposition/s
0,021845333
PWM-SERVO-Quickie
PW/s
0,0015
Schritte
0,0006
Compare
in Hex
links
0,90E-03
2700,00
62836
F574
Mitte
1,50E-03
4500,00
61036
EE6C
rechts
2,10E-03
6300,00
59236
E764
SYSCLK/Hz
T_PWM
Neutralposition/s
Halbe Impulsbreite/s
3000000
=65536/A2
0,0015
0,0006
Schritte
Compare
links
PW/s
=Neutralposition_sHalbe_Impulsbreite_s
=RUNDEN(B5*A2;0)
=RUNDEN(65536-C5;0)
=DEZINHEX(D5)
=RUNDEN(65536-C6;0)
=DEZINHEX(D6)
rechts
=Neutralposition_s
=RUNDEN(B6*A2;0)
=Neutralposition_s+Halbe
_Impulsbreite_s
=RUNDEN(B7*A2;0)
=65536-C7
=DEZINHEX(D7)
1°
=(C5-C7)/180
Schritten
120
=A10*B9
Schritten
Mitte
9
Halbe Impulsbreite/s
=D5+B10
in Hex
=DEZINHEX(D10)
Stand Dezember 2014
T_PWM
Prof. J. Walter
SYSCLK/Hz
PWM Pulsweitenmodulation von 90° auf 0°
0°
0
-//-
T=21,845ms
90°
Gnd
180°
FFFFh
0
-//E764h
10
EE6Ch
Stand Dezember 2014
PWM
S
e
r
v
o
Prof. J. Walter
PWM-SERVO-Quickie
Mikrocomputertechnik
Vcc
F574h
=PCA0CPn
t
PWM Pulsweitenmodulation 90° auf180°
0°
180°
FFFFh
0
-//-
T=21,845ms
90°
0
-//E764h
11
EE6Ch
Stand Dezember 2014
PWM
Gnd
Prof. J. Walter
PWM-SERVO-Quickie
Mikrocomputertechnik
Vcc
F574h
t
12
•
Wiederholrate 50Hz  20ms
0,9ms – 2.1ms
Neutralposition: 1,5ms
U
T=20ms
2,1ms
1,5ms
0,9ms
t
Prof. J. Walter
•
PWM-SERVO-Quickie
Mikrocomputertechnik
•
Stand Dezember 2014
Servo – Datenblatt - Übersetzung
13
•
Wiederholrate 45,77Hz  21,84ms
0,9ms = 62835 – 2.1ms = 59234
Neutralposition: 1,5ms = 61035
T=21,84ms
U
F573
EE6B
E762
2,1ms
1,5ms
0,9ms
t
Stand Dezember 2014
•
PWM-SERVO-Quickie
Mikrocomputertechnik
•
21,84
0,9
1,5
2,1
3000000
65536
62835
61035
59234
Prof. J. Walter
Servo – PCA0 - Übersetzung
Sysclk
14


Servo fährt in Mittenstellung
T2 – Servo fährt im Uhrzeiger
T3 – Servo fährt gegen Uhrzeiger
Idee: Nach ca. n*21,84ms entsteht Interrupt  der
Inhalt von PCA0CPx wird geändert  die
Servostellung ändert sich.
Prof. J. Walter

PWM-SERVO-Quickie
Mikrocomputertechnik

Stand Dezember 2014
Programm: SERVO_LR
ISR_PCA0:
djnz R2,ISR_PCA_ENDE
mov R2,#PCA0_INT
15
;Interrupt Vector PCA
;Interrupt bestaetigt
;
Stand Dezember 2014
;ORG
ORG 05Bh
clr CF
call ISR_PCA0
RETI
Prof. J. Walter
PWM-SERVO-Quickie
Mikrocomputertechnik
Interrupt PCA0 – Vector / ISR
;Sind bereits n Interrupts
;aufgetreten?
;Wiederladen des Zaehlregisters
16
;T2? Abfrage AUF?
;Compare 0 Low Byte in Akku
;Carry loeschen
;Low Byte wieder zurücksch.
;High Byte Compare holen
;HB Compare schreiben
Stand Dezember 2014
jb P1.2,C_AB
mov A,PCA0CPL0
clr C
add A,#C_ADD
mov PCA0CPL0,A
mov A,PCA0CPH0
jnc KEINUEBERTRAG_1
inc A
KEINUEBERTRAG_1:
mov PCA0CPH0,A
Prof. J. Walter
PWM-SERVO-Quickie
Mikrocomputertechnik
Programmteil: PCA0CPx addieren
17
;T3 betaetigt?
;Compare 0 Low Byte in Akku
;Carry loeschen
;Wieder zurueckschreiben
;High Byte Compare holen
;High Byte Compare schreiben
Stand Dezember 2014
C_AB:
jb P1.3,ISR_PCA_ENDE
mov A,PCA0CPL0
clr C
subb A,#C_ADD
mov PCA0CPL0,A
mov A,PCA0CPH0
jnc KEINUEBERTRAG_2
dec A
KEINUEBERTRAG_2:
mov PCA0CPH0,A
ISR_PCA_ENDE:
ret
Prof. J. Walter
PWM-SERVO-Quickie
Mikrocomputertechnik
Programmteil: PCA0CPx subtrahieren
•
•
•
•
18
Ü01 Kalibrieren Sie ihren Servo auf 0°; 90°; 180°
Ermitteln Sie die dazugehörigen Werte von PCA0CPx
Ü02 Variieren Sie die Schrittweite
Ü03 Variieren Sie die Geschwindigkeit durch
Veränderung der „Interruptanzahl zur Änderung“
Ü04 Ermitteln Sie die maximale Geschwindigkeit °/s,
indem Sie zwischen T2: 0° und T3: 180° fahren und
über 10 Messungen mitteln.
Ü05 Bauen Sie jetzt einen Scheibenwischer der
zwischen 0° und 180° wischt.
Prof. J. Walter
PWM-SERVO-Quickie
Mikrocomputertechnik
•
Stand Dezember 2014
ÜBUNGEN:
19

Stand Dezember 2014
Ziel erreicht!
Prof. J. Walter
PWM-SERVO-Quickie
Mikrocomputertechnik
Quickies – schnell und intensiv lernen
20
Prof. J. Walter
Stand Dezember 2014
PWM-SERVO-Quickie
Mikrocomputertechnik
Metaphern
21
Prof. J. Walter
Stand Dezember 2014
PWM-SERVO-Quickie
Mikrocomputertechnik
Herunterladen