mikrocomputertechnik 1 einführung prof. j. walter stand oktober 2009 1 mikrocomputertechnik jürgen...
Post on 06-Apr-2015
109 Views
Preview:
TRANSCRIPT
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
1
MikrocomputertechnikJürgen Walter
„PWM-SERVO-Quickie“Ansteuerung eines Servomotors
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
2
Lernziele:
· Ansteuerung eines Servomotors· Zusammenhang: Pulsweite – Winkelstellung· Belastung des Controllers minimieren
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
3
Voraussetzungen
· IDE-Quickie
· PWM-LED-Quickie
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
4
Wiederholung 1
· PWM-LED· Es werden 3 LEDs mit verschiedenem Duty-Cycle
angesteuert – 25% - 50% - 75%
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
5
Wiederholung 2 – Vergleich PCA0 - CPx
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
6
Funktion des Servos
· Die Pulsbreite entspricht einer Winkelstellung zwischen 0° und 180°
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
7
Datenblatt des Servos HITEC HS-311
· 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).
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
8
Datenblatt Servo HITEC HS-311
· 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
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
9
T=20msU
t
Servo – Datenblatt - Übersetzung
• Wiederholrate 50Hz 20ms• 0,9ms – 2.1ms• Neutralposition: 1,5ms
0,9ms1,5ms2,1ms
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
10
T=21,84ms
U
t
Servo – PCA0 - Übersetzung
• Wiederholrate 45,77Hz 21,84ms• 0,9ms = 62835 – 2.1ms = 59234• Neutralposition: 1,5ms = 61035
0,9ms
1,5ms
2,1ms
Sysclk 300000021,84 65536
0,9 62835 F5731,5 61035 EE6B2,1 59234 E762
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
11
Programm: SERVO_LR
· 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.
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
12
Interrupt PCA0 – Vector / ISR
;ORG ORG 05Bh ;Interrupt Vector PCAclr CF ;Interrupt bestaetigtcall ISR_PCA0 ;RETI
ISR_PCA0:djnz R2,ISR_PCA_ENDE ;Sind bereits n Interrupts
;aufgetreten?mov R2,#PCA0_INT ;Wiederladen des Zaehlregisters
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
13
Programmteil: PCA0CPx addieren
jb P1.2,C_AB ;T2? Abfrage AUF?mov A,PCA0CPL0 ;Compare 0 Low Byte in Akkuclr C ;Carry loeschenadd A,#C_ADDmov PCA0CPL0,A ;Low Byte wieder zurücksch.mov A,PCA0CPH0 ;High Byte Compare holenjnc KEINUEBERTRAG_1inc AKEINUEBERTRAG_1:mov PCA0CPH0,A ;HB Compare schreiben
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
14
Programmteil: PCA0CPx subtrahieren
C_AB:jb P1.3,ISR_PCA_ENDE ;T3 betaetigt?mov A,PCA0CPL0 ;Compare 0 Low Byte in Akkuclr C ;Carry loeschensubb A,#C_ADDmov PCA0CPL0,A ;Wieder zurueckschreibenmov A,PCA0CPH0 ;High Byte Compare holenjnc KEINUEBERTRAG_2dec AKEINUEBERTRAG_2:mov PCA0CPH0,A ;High Byte Compare schreibenISR_PCA_ENDE:ret
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
15
ÜBUNGEN:
• Ü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.
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
16
Quickies – schnell und intensiv lernen
· Ziel erreicht!
Mik
rocom
pu
tert
ech
nik
1 E
infü
hru
ng
Pro
f. J
. W
alt
er
Sta
nd
Okto
ber
20
09
17
Metaphern
top related