88
Projekt: Längenmessung mit Hilfe eines Piezomotors © Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 0 von 88

Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Embed Size (px)

Citation preview

Page 1: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 0 von 88

Page 2: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 1 von 88

1.0 Piezoteam ………………………………………………………………………………….. 4

1.1 Autorenverzeichnis………………………………………………………………………… 5

2.0 Der Piezo-Effekt …………………………………………………………………………… 6

2.1 Das Prinzip………………………………………………………………………………….. 7

2.1.1 Der direkte Piezo-Effekt und seine Anwendung………………………………………. 7

2.1.2 Der inverse Piezo-Effekt…………………………………………………………………. 8

2.2

Das Zusammenspiel zwischen inversem und direktem Piezo-Effekt - Der

Schwingkreis…………………………………............................................…………….. 9

2.3 Piezoelektrische Materialien …………………………………………………………….. 9

2.4 Anwendung für Piezos…………………….…………………………………………….... 10

3.0 Der Elliptecmotor …..…………………………………………………………………….. 11

3.1 Anwendungen des Piezomotors………………………………………………………… 11

3.2 Der Aufbau……………………………………………………………………………….... 13

3.3 Funktion……………………………………………………………………………………... 15

3.4 Technische Daten…..……………………………………………………………………... 16

3.5 Merkmale des Piezomotors……………………………………………………………… 17

4.0 Erste Inbetriebnahme des Elliptecmotors …………………………………………… 18

4.1 Aufbau und Anschluss der Hardware…………………………………………………… 18

4.2 Behandlung des Motors………………………………………………………………….... 19

4.3 Die Software………………………………………...…………………………………….... 19

4.3.1 Der erste Testlauf………………………..……………………………………………….... 20

5.0 Vom Grundgedanken bis zum endgültigen Entwurf ………………………………. 22

5.1 Die ersten Gedanken zum Prinzip………………………………..…………………….... 22

5.2 Der fertige Entwurf……………………………………………………………………….... 24

6.0 Der Aufbau ……………………………………………………………………………….... 25

6.1 Fertigung des Stativs…………………………………………………………………….... 25

6.2 Maße des Gestells……………………………………………………………………….... 27

6.3 Materialliste………………………………………………………………………………… 28

7.0 Verdrahtung der Messeinrichtung …………………………………………………… 29

Page 3: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 2 von 88

7.1 Anschluss der lichtabhängigen Widerstände…………………………………………… 30

8.0 Weiterentwicklung ………………………………………………………………………. 32

9.0 Das sichere Programmieren des AT89LPx052 Entwicklungshelfers …………… 34

9.1 Schaltplan des Ghost Entwicklungshelfers……………..…………………………….... 35

10.0 Assembler …………….………………………………………………………………….... 36

10.1 Die Erzeugung der Betriebsfrequenzen……………………………………………….... 36

10.2 Das Assemblerprogramm……………………………………………………………….... 36

10.3 Das Assemblerprogramm zur Übersicht……………………………………………….... 41

10.4 Die Include Datei……………...………………………………………………………….... 43

10.5 Was ist ein Interrupt?…………………………………………………………………….... 47

10.6 PWM- Erzeugung mit Hilfe eines 16- Bit-Timers……..……………………………….... 47

10.7 Das Umwandeln der Assemblerdatei und Überspielen auf den MC…………………. 53

11.0 Spannungsverlaufsmessung mit dem Oszilloskop ………...…………………….... 56

12.0 Das Visual Basic Programm …………….…………………………………………….... 58

12.1 Die Benutzeroberfläche………………………………………………………………….... 58

12.2 Die Justierung…………………………………………………………………………….... 59

12.3 Resetten der Messeinrichtung………………………………………….……………….... 60

12.4 Das Starten der Messung…………………………………………………………………. 61

12.5 Der Quellcode des VB Programms…………………………………………………….... 63

12.6 Die Rechnung…………………………………………………………………………….... 70

13.0 Die Genauigkeit der Messung …….………………………………………………….... 71

14.0 Der Zeitablaufplan ……………………………………………..……………………….... 74

15.0 Die Kosten …….………………………………………………………………………….... 75

16.0 Verbesserungsvorschläge für eine noch genauere Messung ............................. 76

16.1 Erster Verbesserungsvorschlag..……………………………………………………….... 76

16.2 Zweiter Verbesserungsvorschlag……………………………………………………….... 76

16.3 Dritter Verbesserungsvorschlag…………..…………………………………………….... 77

Page 4: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 3 von 88

16.4 Vierten Verbesserungsvorschlag……………………………………………………….... 78

16.5 Fünfter Verbesserungsvorschlag………………………………………………………… 78

16.6 Sechster Verbesserungsvorschlag…………………………………………………….... 79

17.0 Fazit………….…………………………………………………………………………….... 79

18.0 Schlusswort …….……………………………………………………………………….... 79

19.0 Quellenangabe …….…………………………………………………………………….... 81

Anhang:

CD mit Software

Pflichtenheft

Page 5: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 4 von 88

1. Das Piezoteam

Martin Eberhard Jochen Thomsen

Volker Gossens Herr Schwarzer Projektbetreuer

Page 6: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 5 von 88

1.1 Autorenverzeichnis

Kapitel Autor Bearbeiter

2 Eberhard Thomsen

3 Thomsen Eberhard

4 Thomsen Eberhard

5 Eberhard Thomsen

6.1 Gossens Eberhard

6.2-6.5 Thomsen Eberhard

7 Thomsen Eberhard

8 Eberhard Thomsen

9 Eberhard Thomsen

10 Eberhard Thomsen

11 Thomsen Eberhard

12 Thomsen Eberhard

13 Thomsen Eberhard

14 Thomsen Eberhard

15 Gossens Eberhard

16 Eberhard Thomsen

17 Eberhard Thomsen

18 Eberhard Thomsen

Page 7: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 6 von 88

2.0 Der Piezo-Effekt

Der Effekt der Piezoelektrizität (auch piezoelektrischer Effekt, oder: Piezo-Effekt

genannt) beschreibt das Zusammenspiel von mechanischem Druck (griech.

piezein - drücken) und elektrischer Spannung in Festkörpern. Man unterscheidet

zwischen dem direkten und dem inversen Piezo-Effekt.

Page 8: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 7 von 88

2.1 Das Prinzip

2.1.1 Der direkte Piezo-Effekt und seine Anwendung

Durch eine gerichtete Verformung eines piezoelektrischen Materials entstehen

innerhalb der Elementarzellen mikroskopisch kleine Dipole (Verschiebung der

Ladungs-Schwerpunkte). Da sich die Dipole über den ganzen Kristall

aufsummieren, führt dies zu einer makroskopisch messbaren elektrischen

Spannung. Unter einer gerichteten Verformung versteht man, dass der angelegte

Druck nicht von allen Seiten auf den Kristall wirkt, sondern beispielsweise nur von

gegenüberliegenden Seiten aus.

Dieser Effekt

findet z.B.

Anwendung in der Musik als Tonabnehmer für akustische Instrumente. Sie werden

Page 9: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 8 von 88

hauptsächlich bei Saiteninstrumenten wie Gitarre, Geige oder Mandoline

eingesetzt. Die dynamische Verformung des Instrumentes (Vibration des

Klangkörpers) wird in eine kleine Wechselspannung umgewandelt. Die Spannung

des Ausgangssignals verhält sich dabei analog zur Vibration, also zum Ton und

muss lediglich elektrisch verstärkt werden, um das Signal sinnvoll zu nutzen. Aber

auch in Feuerzeugen mit Piezo-Zünder macht sich dieser Effekt nützlich. Hier wird

ein plötzlicher und großer Druck verwendet, um eine kurzzeitige hohe elektrische

Spannung zu erzeugen. Durch den entstehenden Funkenüberschlag wird dann die

Gasflamme entzündet.

2.1.2 Der inverse Piezo-Effekt

Umgekehrt zum direkten Piezo-Effekt kann sich der Kristall (bzw. das Bauteil aus

Piezo-Keramik) durch das Anlegen einer elektrischen Spannung verformen.

Dieser Effekt wird unter anderem zur Tonausgabe, also in einem Lautsprecher,

genutzt. Da die Verformungen durch eine angelegte Spannung jedoch sehr gering

ausfallen, sind diese Lautsprecher nur zu Hochtonzwecken einsetzbar. Ein

Piezomotor, oder auch Ultraschallmotor genannt wird, macht sich genau diese

gerin-gen Verformungen zu Nutzen und findet dort Einsatz, wo es auf absolute

Präzision ankommt, wie z.B. bei dem Fokus eines Rastermikroskops.

Page 10: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 9 von 88

2.2 Das Zusammenspiel zwischen inversem und direktem Pi ezo-

Effekt - Der Schwingkreis

Piezoelektrische Körper können (wie jeder andere Festkörper auch) mechanische

Schwingungen ausführen. Legt man eine elektrische Spannung an einen Piezo-

Element, so verformt es sich. Entfernt man die angelegte Spannung, springt das

Element wieder in seine Ursprungsposition zurück. Da aber auch ein Piezo-

Element eine gewisse Massenträgheit hat, schwingt es bevor es zur Ruhe kommt

noch einige Male hin und her. Wirken Kräfte auf einen Piezo, so kommt der direkte

Piezo-Effekt zum Tragen und erzeugt bei jeder Schwingung eine Spannung (vgl.

2. 1. 1). Die Resonanzfrequenz des Piezos ist nur von dem Material und der

Geometrie des piezoelektrischen Körpers abhängig. Der Schwingkreis wird durch

ein regelmäßiges Anlegen einer Spannung - wie das regelmäßige Anstoßen eines

Pendels - in Schwingung gehalten. Eingesetzt wird der so genannte Quarz in

Uhren, Fernbe-dienungen und überall dort, wo man eine genaue Taktung benötigt.

2.3 Piezoelektrische Materialien

Bei piezoelektrischen Materialien unterscheidet man zwischen polykristallinen

(keramischen) und monokristallinen (Einkristall) Werkstoffen. Das am häufigsten

verwendete Material ist der Quarz-Kristall. Weitere Einkristalle sind z.B.:

Galliumorthophosphat, Berlinit, Turmalin und alle Ferroelektrika wie Bariumtitanat

(BTO) oder Blei-Zirkonat-Titanat (PZT). Zu den keramischen Werkstoffen zählen

die hauptsächlich für Hochvolt-Aktoren hergestellten modifizierten Blei-Zirkonat-

Titanate (PZT) und für Niedervolt-Aktoren Blei-Magnesium-Niobate (PMN). Wie

man sich vorstellen kann, gibt es noch weitere Materialien mit den

unterschiedlichsten Anwendungsbereichen sowie Vor- und Nachteile, deren

Erläuterung und Zuordnung jedoch an dieser Stelle den Rahmen sprengen würde.

Page 11: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 10 von 88

2.4 Anwendungen für Piezos

• Piezofeuerzeuge zur Erzeugung des Zündfunkens

• Piezomikrofon (Kristallmikrofon)

• Schallköpfe von Ultraschallgeräten, zur Erzeugung mechanischer

Schwingungen

• Beschleunigungssensoren

• Drucksensoren

• Kraftsensoren

• Drehratensensoren

• Tonabnehmer

• Einspritzdüsen von Pkw (Serienstart 2000 für Dieselmotoren Common-Rail-

Technik)

• Druckköpfe von Tintenstrahldruckern

• Ultraschallmotoren für z.B. die Objektivautofokussierung

• Sensoren von Messgeräten zur Verkehrsüberwachung, den sogenannten

Starenkasten

• Verzögerungsleitungen (z.B. in PAL- oder SECAM-Farbfernsehern) u.v.a.

mehr angewendet

• batterielose Funktechnik (Schalter)

• Rastertunnelmikroskop

• Rasterelektronenmikroskop

• Rasterkraftmikroskop

• Michelson-Interferometer

• Quarzmikrowaage

Page 12: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 11 von 88

3.0 Der Elliptecmotor

Die Elliptec AG ist eine Tochterfirma der Siemens AG. Am Standort Berkeley

(USA) wurde ein Motor auf Basis von Piezokeramiken entwickelt. Der Motor stellte

zahlreiche Einsatzmöglichkeiten in Aussicht. Das Forscherteam löste sich im Jahr

2001 vom Siemens-Konzern, um die Möglichkeiten dieses Motors im Rahmen

eines unabhängigen Unternehmens schnellstmöglich zu realisieren.

So wurde 2001 die Elliptec Resonant Actuator AG, kurz Elliptec AG, gegründet.

Die Siemens AG übertrug dem Unternehmen alle Rechte an der Technologie und

blieb dem Unternehmen als Investor verbunden.

Der erste Piezomotor kam 2004 auf den Markt und wird seit dem sehr oft in allerlei

Geräten eingebaut. Er ist nicht nur wegen seiner kleinen Größe und absolute

Genauigkeit sehr beliebt, sondern auch wegen seinem günstigen Preis. Früher

musste man für einen Piezomotor mehrere hundert Euro bezahlen und heute ist er

so günstig, dass er sogar den Einbau in die Lokomotive einer Modelleisenbahn

rechtfertigt.

3.1 Anwendungen des Piezomotors

Der Piezomotor hat ein sehr weit gefächertes Anwendungsgebiet. Hier ist ein

kleiner Überblick der Einsatzmöglichkeiten aufgeführt.

Spielwaren:

Hier wird der Motor z.B. im Bereich der Modelleisenbahn eingesetzt. Märklin hat

mit dem Piezomotor realisiert, den Stromabnehmer einer Elektrolok zu bewegen.

Da in einer Modelllokomotive naturgemäß nicht all zu viel Platz ist, eignet sich

hierfür der leichte und kleine Piezomotor.

Page 13: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 12 von 88

Medizintechnik:

In der Medizintechnik wird der Piezomotor unter anderem zur genauesten

Dosierung von flüssigen Medikamenten und anderen medizinischen Substanzen

verwendet.

Consumer Elektronik:

Der Piezomotor wird unter anderem beim Autofokus von Fotoapparaten

eingesetzt. Der platzsparende Motor sorgt für geringere Fokussier- und

Zoomzeiten. Der Elliptecmotor hat keinen Rotor, der mechanische Energie

speichert. Das gewohnte Nachlaufen herkömmlicher Antriebssysteme entfällt.

Daraus resultiert eine präzise Positionierung, welche die Qualität des Produkts

signifikant erhöht.

Des Weiteren werden Elliptecmotoren in Thomson Fernseher eingebaut. In

Thomson Rückprojektionsgeräten wird eine hohe Auflösung (und die damit

zusammenhängende Bildqualität) durch einen vom Elliptecmotor kippbaren

Spiegel erreicht. Das Kippen ermöglicht im Thomson Gerät die Projektion zweier,

Page 14: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 13 von 88

um eine halbe Zeile verschobener Halbbilder zur Verdoppelung der vertikalen

Bildauflösung.

Industrie:

Piezoelektrische Antriebe sind schon länger auf dem Markt und werden vor allem

in hochpräzisen Nischenanwendungen verwendet. In der Chipfertigung z.B.

werden Silizium-Wafer Nanometer genau im Belichtungsautomat positioniert.

3.2 Der Aufbau

Der Elliptecmotor, oder auch Piezomotor genannt, besteht aus nur wenigen

Bauteilen. Dazu gehören:

1. Anschlussleitung

2. Piezokristall

3. Resonator

4. Feder

5. Angetriebenes Element

Man muss den Motor entweder direkt in ein Gerät oder mindestens in ein

Kunststoffgehäuse einbauen, um Versuche durchzuführen.

Page 15: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 14 von 88

Es gibt zwei Bauarten von Piezomotoren. Es gibt den linear- und den rotatorischen

Antrieb. Der Antrieb wird je nach Anwendungsbereich ausgewählt.

Beim Einbau ist darauf zu achten, dass die Einbaulage korrekt eingehalten wird.

Sonst kann unter Umständen die Funktionalität nicht mehr gewährleistet sein.

Page 16: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 15 von 88

3.3 Funktion

Das Funktionsprinzip des Elliptecmotors beruht auf dem inversen Piezoeffekt. Ein

Microcontroller sowie zwei winzige Transistoren genügen, um die Piezokeramik

mit einer elektrischen Spannung zwischen 2,4V – 30V zu versorgen. Bei einer

Frequenz von 75 kHz bis 100 kHz dehnt sich diese nach dem Einschalten um

weniger als einem Mikrometer aus, nach dem Abschalten zieht sie sich wieder

zusammen. Während des Betriebs findet dieses Wechselspiel etwa 100.000 Mal

in der Sekunde statt.

Mit Hilfe der Bewegung der Piezokeramik wird der Resonator zum Schwingen

angeregt und in Resonanz gebracht. Die Forscher der Elliptec AG haben die Form

des patentierten Resonators so weit optimiert, dass die Schwingungen der

Piezokeramik verstärkt und in ellipsenförmige Bewegungen umgewandelt werden.

Mit einer Feder wird die auf einer elliptischen Kreisbahn schwingende Motorspitze

gegen das anzutreibende Element gedrückt, welches mit jeder Schwingung um

wenige Mikrometer weitergeschoben wird. Durch periodische Wiederholungen

entsteht eine gleichförmige, kontinuierliche Bewegung.

Die Laufrichtung des Motors hängt von der Frequenz der Schwingung ab. Bei

einer Frequenz von rund 75 kHz bewegt sich der Motor vorwärts und bei 95 kHz

rückwärts.

Page 17: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 16 von 88

3.4 Technische Daten

Schubkraft

0,2 – 0,4 N

Höhere Kräfte sind durch einfache Hebel-

mechanismen oder mehrere Motoren möglich.

Haltekraft 1N 5

Ansteuersignalamplitude

(Motor)

5 - 8V, 5 – 10V

Betriebsspannung Elektronik 2,4 - 30V

entsprechendes Endstufendesign erforderlich

Stromaufnahme Elektronik 1 - 450mA bei 5V Betriebsspannung

geschwindigkeitsabhängig

Gewicht 1,2g

Länge ohne Feder 20mm

Breite ohne Feder 3mm

8mm im Einpressbereich d. Piezokeramik

Höhe ohne Feder 3mm

4mm im Einpressbereich d. Piezokeramik

Positionierungsgenauigkeit

(Schrittweite)

10µm

Reaktionszeit < 100µs

Vorwärtsbetriebsfrequenz 73 - 84kHz (typ. 79kHz)

Rückwärtsbetriebsfrequenz 91 - 108kHz (typ. 97kHz)

Laufleistung (ohne Last) 40.000m bei Läufermaterial PF7595

Page 18: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 17 von 88

3.5 Merkmale des Piezomotors

• geringe Baugröße und Gewicht von 1,2gr

• kein Getriebe

• Haltekraft bis 4N, Schubkraft 0,2-0,4N, mit Hilfe von Hebelmechanismen

oder mehreren Motoren kann die Kraft erhöht werden

• spielfrei

• integrierte Rutschkupplung

• Positioniergenauigkeit bis in den Mikrometerbereich (bei Verwendung von

genauester Frequenzsteuerung)

• auch im Vakuum, Magnetfeldern und feuchter Umgebung einsetzbar

• vom Stand bis zur Vollgeschwindigkeit in 100µs

• hohe Dynamik beim Starten und Stoppen des Motors

• lautloser Antrieb

• gleichermaßen für Rotations- als auch Linearantriebe geeignet

• Betriebspannung lt. Elliptec schon ab 2,4 Volt möglich

• Eine Richtungsumkehr erfolgt einfach durch eine andere Betriebsfrequenz.

• kollektorlos, d.h. keine Zündfunken, kein Elektrosmog

• kostengünstige Achslagerungen

• keine Korrosion

• Keine Speicherung mechanischer Energie, dadurch kann der Motor im µs-

Bereich gestoppt werden.

Page 19: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 18 von 88

4.0 Erste Inbetriebnahme des Elliptecmotors

Diese Kapitel beschreibt die erste Inbetriebnahme des Elliptecmotors mit der

mitgelieferten Software.

4.1 Aufbau und Anschluss der Hardware.

• Die serielle Schnittstelle des Boards muss mit der seriellen Schnittstelle des

PC’s verbunden sein. Es ist ein 1:1 Kabel notwendig. Das heißt, Pin1 ist

mit Pin1, Pin2 mit Pin2… Pin9 mit Pin9 verbunden.

• Der Elliptecmotor wird mit dem Board (PHE Buchse) verbunden. Dabei

sollte auf jeden Fall Berührungen mit dem Kunststoffrad vermieden werden.

• Die Stromversorgung (7,5 Volt bis max. 15 Volt Gleichspannung) wird an

die + und – Klemmen angeschlossen. Die Power LED neben dem

Kühlkörper sollte jetzt leuchten und die Betriebsfähigkeit anzeigen.

• Die PROG LED neben dem Jumper JP_PROG sollte nicht leuchten.

Leuchtet die Diode trotzdem, so muss der rote Jumper umgesetzt werden.

Fertiger Aufbau

Page 20: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 19 von 88

4.2 Behandlung des Motors

• Der Motor darf nicht zu lange eingeschaltet sein, auch wenn dieser

aufgrund falscher Frequenzeinspeisung nicht läuft, da die gesamte Energie

in Wärme gewandelt und der Motor zerstört wird!

• Es muss jegliche Berührung am Umfang des Antriebsrades vermieden

werden, da Verschmutzungen den Kontakt vom Elliptecmotor zum

Kunststoffrad unterbrechen und damit den Elliptecmotor ggf. zum Stillstand

bringt und trotzdem noch mit hoher Frequenz angesteuert wird.

• Vorsicht bei längerer Betriebsdauer kann der Motor bis zu 80 Grad

Temperatur entwickeln!

• Im Betriebsfall wird sich ein dunkler Abrieb auf dem Kunststoffrad bilden,

der völlig normal ist. Eine Reinigung des Kunststoffteils ist aber nicht

erforderlich.

4.3 Die Software

Die Elliptec Testsoftware wurde in Access 2K / XP VBA geschrieben und befindet

sich auf der vom Hersteller mitgelieferten CD oder ist als Download im Internet

verfügbar. Desweitern muss Microsoft Acces und Chart Control MS Chart Version

6 auf dem PC installiert sein.

Page 21: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 20 von 88

4.3.1 Der erste Testlauf des Motors

Zuerst muss die Serielleschnittstelle geöffnet werden. Dies geschieht, indem man

mit der Maus auf den Button COM OPEN (5) klickt.

Nun kann man den Piezotestlauf starten, in dem man den mit Frequency search

(1) startet. Man kann erkennen, das sich der Elliptecmotor nach kurzer zeit

vorwärts und rückwärts dreht. Am Ende baut sich in dem Grafikfeld (8) eine

Frequenzgrafik auf. Die Vorwärtsfrequenz eines Elliptecmotors liegt in etwa in der

Mitte der ersten größeren fallenden Flanke bei ca. 80kHz und wurde nachträglich

zum Verständnis mit einem vertikalen Strich und fwd versehen. Die

Rückwärtsfrequenz liegt in etwa beim tiefsten Punkt von rechts aus betrachtet und

7

Page 22: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 21 von 88

liegt bei diesem Elliptecmotor bei ca. 100Khz (bwd). Diese Betriebsfrequenzen

wurden bei Raumtemperatur ermittelt und der Motor war noch kalt. Nach einem

längeren Betrieb erwärmt sich er Motor und die Betriebsfrequenz verringert sich

dabei um bis zu 2KHz!

Die Betriensfrequenz kann auch per Hand eingestellt werden. Der obere

Schieberegler muss auf ON Time = 200 eingestellt bleiben. Es wird nur der untere

Schieberegler(9) verändert. Es kann eine beliebige Frequenz gewählt werden.

Dann muss mit dem Button Start Piezo (2) der Motor gestartet werden. Wenn sich

der Motor nicht dreht, muss die Frequenz solange geregelt werden, bis sich der

Motor in die gewünschte Richtung und mit der gewollten Geschwindigkeit dreht.

Vorsicht: Bei längerem Betrieb erwärmt sich der Motor und die Frequenz

verschiebt sich zu etwas geringeren Frequenzen. Wenn die

Antriebsgeschwindigkeit nachlässt, dann kann die Frequenz während des

Betriebes auch etwas nachgeführt werden.

Drückt man auf den Button sequenz up (3) oder auf sequenz down(4) so wird der

Frequenzbereich vorwärts beziehungsweise rückwärts durchfahren.

Mit dem Button Step (7) kann man den Motor eine gewünschte Zeit lang

eingeschaltet lassen. Dies wäre in dem eingestellten Fall eine Dauer von 100ms.

Abschließend kann man sagen, dass man mit der Software die Funktionsweise

des Piezomotors sehr gut kennen lernen kann und Grundlegende Versuche

durchführen kann. Wie z.B die Erwärmung des Motors.

Page 23: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 22 von 88

5.0 Vom Grundgedanken bis zum endgültigen Entwurf

5.1 Die ersten Gedanken zum Prinzip

Erreicht werden sollte das präzise und berührungslose Vermessen eines

Werkstückes. Es wurde überlegt, ein Objekt vor eine Wand, die mit

Fotowiderständen bestückt ist, zu stellen und mit Hilfe eines Laserstrahles

abzutasten. Zum Antrieb des Lasers bot sich aufgrund der genauen

Positionierbarkeit ein Piezomotor der Firma Elliptec an.

Im Moment I trifft der Laserstrahl auf die LDR Wand (LDR’s parallel geschaltet),

welche dadurch einen niedrigeren Widerstandswert annimmt. Nun fängt der Motor

sich an zu drehen und bewegt den Laser abwärts. Im nächsten Moment II trifft der

Laserstrahl auf das Werkstück, so dass die LDR’s, da sie jetzt nicht mehr vom

Laser beleuchtet werden, einen höheren Widerstand annehmen. Nachdem eine

Widerstandsänderung erfolgt ist, beginnt der Microcontroller die Pulse zu zählen,

die der Motor für seinen Vorschub benötigt. Dies macht er solange, bis der Laser

das Werkstück verlässt (Moment III), nun wieder auf einen LDR trifft und sich der

Page 24: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 23 von 88

Widerstand wieder ändert. Anhand der Anzahl der benötigten Pulse lässt sich der

Winkel α bestimmen. Über eine Winkelfunktion kann man, da sich die Strecke S

nicht geändert hat, die Höhe H errechnen.

Theoretisch ist dies ein funktionsfähiges Modell. Berücksichtigt man allerdings die

Übergänge zwischen den einzelnen LDR’s, so bemerkt man, dass, sobald der

Laser von einem LDR zum nächsten wandert, sich ein höherer Widerstandswert

einstellt, da sich der Strahl in diesem Augenblick zwischen zwei Fotowiderständen

befindet. Dieses Verhalten könnte den Microcontroller irritieren und den erhöhten

Widerstandswert als Startsignal für seine Pulszählung missverstehen.

Page 25: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 24 von 88

Außerdem führt dieser Aufbau der Einrichtung zu erheblichen Verfälschungen des

Messergebnisses, da sich die LDR-Wand unerwünschtes Umgebungslicht

einfängt. Eine steigende Anzahl LDR´s bringt eine steigende

Messungsverfälschung mit sich. Dies ist ein weiterer Grund, die Zahl der

verwendeten Fotowiderstände so gering wie möglich zu halten.

5.2 Der fertige Entwurf

Um den optischen Problemen aus Kapitel 4.1 aus dem Weg zu gehen, wurde die

minimale Anzahl von zwei LDR´s gewählt. Dies lässt sich realisieren, indem man

nicht ein Werkstück vor eine LDR-Wand stellt, sondern in eine Spannvorrichtung,

welche je einen dieser LDR’s vor Kopf montiert hat, verwendet

Page 26: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 25 von 88

6.0 Der Aufbau 6.1 Fertigung des Stativs

Das Stativ wurde aus Nutschiene gefertigt. Erst musste die passende Nutschiene

ausgewählt werden, dieses stellte keine größeren Probleme dar, da es durch das

Internet und Kataloge zahlreiche Anbieter gab. Als die einzelnen Teile bestellt

waren und eine Woche später eintrafen, konnte man zur Montage übergehen.

Das Grundgerüst war schnell fertiggestellt. Hierauf wurden später Motor, Platine

und Fotowiderstände montiert.

Page 27: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 26 von 88

Das benötigte Material wurde im Internet bei der Firma ITEM aus dem

Internetkatalog herausgesucht. Die Firma erstellte ein Angebot, anhand dessen

das Material umgehend bestellt wurde. Des Weiteren wurde auch ein

Fachgespräch mit einem Vertriebsvertreter von ITEM geführt, in dem technische

Probleme gelöst wurden.

Page 28: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 27 von 88

6.2 Maße des Gestells

Die Profilschienen bestehen aus 30 X 30 mm großem Aluminiumvierkant. Die

Angaben sind alle in mm.

275

280

60

40

335

60

65

Page 29: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 28 von 88

6.3 Materialliste

Pos Bezeichnung Stück Einzelpreis

Gesamtpreis

1 0.0.419.22 8 0,62 € 4,96 €

Abdeckkappe 6 30x30,

Schwarz

2 0.0.419.06 1 8,89 € 8,89 €

Profil 6 30x30 leicht

natur, Zuschnitt

L= 970,0 mm

3 0.0.026.30 1 2,05 € 2,05 €

Sägebearbeitung für kleine

Querschnitte

4 0.0.419.67 4 4,71 € 18,84 €

Winkelsatz 6 30x30

5 0.0.478.22 4 7,32 € 29,28 €

Stellfuß D30, M6x45,

Rostfrei

6 0.0.441.97 4 5,61 € 22,40 €

Gelenkwinkel 6

7 0.0.439.72 10 1,65 € 16,50 €

Nutenstein 6 St M5,

Rostfrei

Summe 102,92 €

16% MwSt 16,47 €

Gesamt 119,39 €

Page 30: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 29 von 88

7.0 Verdrahtung der Messeinrichtung

Die Widerstände wurden vorn an die Enden der Einspanneinrichtung montiert und

die Anschlussleitung wurde in die Nut der Schienen verlegt, wozu kleine Löcher in

die Schiene gebohrt wurden. Die Platine wurde auf eine Plexiglasscheibe gesetzt

und auf die Hauptführung montiert. Der Piezomotor wurde ebenfalls auf eine

Plexiglasscheibe montiert. Die Verbindung wurde auf einen kleinen Sockel, der

sich auf der Hauptschiene befand, aufgeschraubt. Die Anschlussleitungen wurden

ebenfalls in der Nut der Schiene verlegt. Seitlich der Hauptschiene wurde die

Batterie für den Laser angebracht.

(seitliche Ansicht)

Page 31: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 30 von 88

(Draufsicht)

7.1 Anschluss der lichtabhängigen Widerstände

An den Ports 1.5 und 1.3 sowie an P1.3 und P1.7 müssen die LDR’s

angeschlossen werden. Da an dem Ports P1.5 und P1.7 mindestens 2,5V

anliegen muss, wird jeweils ein Potentiometer parallel zu den LDR’s geschaltet.

So wird der Gesamtwiderstand von dem LDR und dem Potentiometer verkleinert,

um den Spannungsabfall bei der Parallelschaltung zu verringern.

Page 32: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 31 von 88

Das ergibt dann für jeden lichtabhängigen Widerstand folgendes Schaltbild:

Das Potentiometer ist so eingestellt, dass bei normalen Lichtverhältnissen der

Spannungsabfall U1 so groß ist, dass U2 nicht größer als 2,5V wird. Wird aber der

Laserstrahl auf den LDR gerichtet, so verringert sich der Gesamtwiderstand von

R1 und R2 und die Spannung U1 sinkt. Dafür steigt dann aber die Spannung U2

über 2,5V und an dem Port P1.0 würde nun ein digitales Einssignal liegen.

Page 33: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 32 von 88

Der erste Versuch mit den Potentiometern Fertige Schaltung mit den Potentiometern

.

Bei der Erprobung der Messeinrichtung stellte sich aber bald heraus, dass das

sich dauernd ändernde Tageslicht zu einem Problem wird. Bei einer Wolke oder

direkter Sonneneinstrahlung verkleinert oder vergrößert sich - je nachdem - der

lichtabhängige Widerstand. So mussten andauernd die Potentiometer neu

eingestellt werden, wozu man ein wenig Fingerspitzengefühl benötigte. Da dies

auf die Dauer sehr mühsam war, wurde nach anderen Möglichkeiten gesucht.

Es wurden Kabelhülsen über die LDR’s geschoben, womit das Problem mit dem

einfallenden Tageslicht behoben werden sollte. Diese Lösung war auch nicht

ausreichend und so blieb man bei der ursprünglichen Idee.

8.0 Weiterentwicklung

Im endgültigen Entwurf ist der Laser direkt mit einem Adapter auf der Motorwelle

montiert, was beim genaueren Hinsehen so aussieht, als brächte diese Methode

eine Reihe Nachteile mit sich.

Man könnte annehmen, dass die bewegte Masse die Motorbewegung stört. Das

größte Problem sind allerdings die etwas unflexiblen Anschlussleitungen des

Page 34: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 33 von 88

Lasers, die ab einem bestimmten Neigungswinkel des Lasers sogar den Motor

zum Stoppen bringen.

Die ideale Lösung - so schien es zumindest - wäre es doch, nicht den ganzen

Laser zu bewegen, sondern nur einen Spiegel, der anstelle des Lasers auf der

Motorwelle montiert ist und lediglich von einem extern montierten Laser

angestrahlt wird. Theoretisch eine super Idee, aber in der Praxis stellte sich

heraus, dass der umgeleitete Laserstrahl seine Lichtbündelung verliert und nicht

mehr als Punkt, sondern stattdessen als gestreutes Feld auf einen Gegenstand

auftrifft. Da durch ein solches Streufeld die LDR’s keinen schlagartigen

Beleuchtungsunterschied mehr wahrnehmen können, führt diese Methode

ebenfalls zu Messfehlern, die größer sind, als die bei der anderen Methode mit

bewegtem Laser.

Laserpunkt mit durch Spiegel umgeleitetem

Laserstrahl

direkt auftreffender Laserstrahl

Page 35: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 34 von 88

9.0 Das sichere Programmieren des AT89LPx052

Entwicklungshelfers

Sobald man eigene Mikrocontrollerprogramme entwickelt und den Mikrocontroller

damit betreiben möchte, muss auf jeden Fall darauf geachtet werden, dass man

im geschriebenen Programm berücksichtigt den Pin P3.4 zu löschen. Vergisst

oder ignoriert man dies, so würde, falls der Port 3.4 ein high Signal führt (wer weiß

schon ob der Port P3.4 gerade auf high oder low steht) ein sehr hoher Strom über

den angeschlossenen FET und die Entstörspule fließen, der diese Bauteile, auch

wenn kein Elliptec Motor angeschlossen ist, zerstören würde.

Um ein fehlerhaftes Programmieren in diesem Sinne von vornherein

auszuschließen, wurde von den Entwicklern des Entwicklungshelfers ein Platz für

einen Widerstand, der das Gate des angeschlossenen FET auf Masse ziehen soll,

vorbereitet. Lötet man den mit R17 bezeichneten Widerstand an der für ihn

vorgesehenen Stelle ein, so darf man ruhig einmal vergessen, P3.4 mit dem

Befehl clr P3.4 zu löschen. Der verwendete Widerstand sollte mit 300 Ohm und

wenn möglich in SMD Bauweise gewählt werden. Die Funktion des Boards bleibt

unbeeinträchtigt.

Page 36: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 35 von 88

9.1 Schaltplan des Ghost Entwicklungshelfers

R17=300Ω

Page 37: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 36 von 88

10.0 Assembler

10.1 Die Erzeugung der Betriebsfrequenzen

Um den Elliptecmotor betreiben zu können, wird ein PWM-Signal von 70-100kHz

benötigt. Um das benötigte Signal mit einer solch hohen Frequenz erzeugen zu

können, kommt längst nicht jeder Mikrokontroller in Frage. In den ersten

Versuchen ließen sich mit anderen Mikrocontrollern der Atmel LP Familie nur bis

1/512 bzw. 1/256 der Oszillatorfrequenz erzeugen (Oszillatorfrequenz =

Taktfrequenz die vom Quarz des MC erzeugt wird). Diese Mikrocontroller hatten

Taktfrequenzen von 11.059 MHz. Teilt man dies durch 256, so erhält man eine

erlaubte, zu erzeugende Frequenz von 43,2 kHz, was zur Ansteuerung unseres

Motors keinesfalls ausreichen würde. Abhilfe für dieses Problem schafft die

„Single Cycle 8051 Corelogic“ des Atmel MCs, die eine Interrupt gesteuerte

Erzeugung von Frequenzen und Pulsbreiten von bis zu 1 MHz bei einer

Oszillatorfrequenz von 11.059 MHz, erlaubt. Bei Verwendung dieses Verfahrens,

so der Hersteller des Entwicklungsbords, muss darauf geachtet werden, dass ein

erzeugter Interrupt schnell genug abgearbeitet wird, und zwar bevor der nächste

Interrupt gestartet wird. Geschieht dies nicht, so kommt der Baustein ins stolpern.

Geschieht dies, so muss gegebenenfalls ein reset durchgeführt werden (einmal

ausschalten und neu starten).

10.2 Das Assembler Programm

An dieser Stelle wird das benötigte Assemblerprogramm beschrieben, das dem

MC ermöglicht, die passenden Betriebsfrequenzen für den Elliptecmotor zu

erzeugen.

Page 38: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 37 von 88

Die Steuerung des Programms auf dem MC erfolgt mit einem separaten Visual

Basic Programm, welches sich auf einem Rechner befindet, der mit dem Bord

verbunden ist.

Beim Start des Assemblerprogramms sind die Register R1 und R2 auf die Werte

200 für RLO und FFH (255) für RHO voreingestellt. Das heißt nach 256

Taktimpulsen erhält man einen Interrupt, der den Ausgang P3.4 invertiert. Die

jeweils eingestellte Betriebsfrequenz lässt sich durch eine leichte Rechnung

überprüfen:

Das Mikrocontrollerprogramm macht nichts anderes, als sich die Werte für die

Frequenzeinstellung (RL0 für Timer0) zu holen, dann einen Wert für die Zeitdauer

(wie lange der Motor eingeschaltet wird) zu holen, und dann den Motor (den

Timer0) zu starten.

Um die Funktionsweise näher zu erläutern, folgt nun der Assemblercode mit

Kommentaren zum besseren Verständnis:

; Messung mit dem Elliptec Piezomotor ; = Kommentarzeile

Page 39: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 38 von 88

; bei 11.059 MHz Quartz ca 247 kHz max ; mit R1=R2=200 und RH0=255 ergibt eine Frequenz von 98,745 kHz ; every step in R1 or R2 will result in time = time + step*1/11.0592 MHz (=90,42 ns) ; Timer 1 wird für die Steuerung über die serielle Schnittstelle verwendet ; Timer0 für die Frequenzerzeugung für den Elliptecmotor ; Steuerung über serielle Schnittstelle: ; 1. R1 übergeben / für die Frequenz Werte um 200 (0-255) ; und zurücklesen ; 2. R2 übergeben / für die Frequenz Werte um 200 (0-255) ; und zurücklesen ; 3. Zeitschleifenwert / 0-255 wie lange soll der Motor laufen ; der Motor startet nach der Übergabe dann automatisch ; und Wert P1 lesen ; dann kommt der Wert von P1 zurück, wenn der Motor nach der Zeitschleife ;gestoppt hat ; der Status der PortPins P1.5 und P1.7 können so bequem abgefragt werden ; P1.5 und P1.7 liegen auf dem ISP Stecker dabei in günstiger Lage ; die LDRs sollten nach Vcc schalten #include LPx052.H .org 0000H sjmp start ; der Timerinterrupt liegt auf 0BH ; und bei jedem Interrupt wird der Ausgang an P3.4 ; invertiert .org 000BH ; TF0 Timer 0 overflow cpl P3.4 ; toggle Port pin jb P3.4, pwm_on ; next on or off ? pwm_off: mov RL0, R2 ; set off time reti pwm_on: mov RL0, R1 ; set on time reti ; Startwerte setzen start: mov P1M0,#03H ; Ports auf quasi bi-direktional mov P1M1,#00H ; P1.0 /P1.1 auf Input mov P3M0,#00H mov P3M1,#10H ; push pull output für P3.4 mov SP,#20H ; Stack pointer clr TR1 ; Stop timer 0 / 1

Page 40: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 39 von 88

clr TR0 ; Werte 9600/19200 Baud für ser. Schnittstelle mit 19.200 Baud ; bei 11.059 Mhz Oszillator einstllen ; ändert man den Oszillator, dann muss man auch ; die Werte entsprechend ändern! mov TH1,#0DCH ; 256-6: 9600 baud mov TL1,#0DCH ; 11.059MHz for SMOD1 =0 anl TMOD,#00H ; Timer1: 8 bit autoreload orl TMOD,#20H setb TR1 ; TCON Start timer 1 anl PCON,#3FH ; PCON: SM0D0 and SM0D0 löschen mov SCON,#50H ; InitRS232 8 bit UART Mode1 setb TI orl PCON,#80H ; SMOD=1 double Baudrate ; Timer 0 ; Standardwert für die Frequenzerzeugung über Timer 0 Interrupt ; RL0 wird bei jedem Interrupt über R1/R2 neu gesetzt und der Ausgang des Timers ;an P3.4 ; jedes mal einfach invertiert mov RL0,#0BAH ; RL und RH setzen mov RH0,#0FFH ; default mov R1,#0C8H ; = 98,745 khz mit 11.059Mhz Osz mov R2,#0C8H ; = 200 orl TMOD,#1 ; 16 bit autoreload orl ACSR,#08H ; comparator inputs aktivieren clr P3.4 ; FET Strom im Ruhezustand minimieren!! nop mov IE,#82H ; Interrups EA+ET0 aktivieren ; RL0: R1 ON Time, R2 OFF Time; R3 Zähler; R4 Zeitdauer verlängern ; ersten Wert holen- Beginn der Schleife NEXT acall RX mov R1,A ; R1 schreiben ON time nop mov A,R1 ; R1 lesen acall TX ; Wert zurücksenden ; zweiten Wert holen acall RX

Page 41: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 40 von 88

mov R2,A ; R2 schreiben OFF time nop mov A,R2 ; R2 lesen acall TX ; Wert zurücksenden ; Zeitdauer holen und Motor starten acall RX ; Zeitdauer holen mov R3,A ; übermittelten Startwert setb TR0 ; Timer0 / Motor starten ; R3 * ca. 90ns * 3cyc loopr nop ; nop ; jedes nop +90ns djnz R3,loopr ; R3 immer einen runterzählen bis 0 ; und weiter bei 0 ; sonst nach loopr ; Motor dann anhalten TimerOFF clr TR0 clr P3.4 ; Strom reduzieren ! ; denn wer weiss schon wie P3.4 steht ; ist ein LDR an P1.5 und P1.7 durchgeschaltet / low aktive ? ; kann dann einfach in der Software analysiert werden mov A,P1 ; Portpins P1 holen acall TX ; und über RS232 senden sjmp NEXT ; und weiter in der Schleife ; und hier die Aufrufe für die serielle Kommunikation ; Werte stehen jeweils im Accumulator RX jnb RI,RX ; ser./RS232 Wert holen mov A,SBUF clr RI ret TX jnb TI,TX ; Wert über ser./RS232 senden clr TI mov SBUF,A ret .end

Page 42: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 41 von 88

10.3 Das Assemblerprogramm zur Übersicht

#include LPx052.H .org 0000H sjmp start .org 000BH cpl P3.4 jb P3.4, pwm_on pwm_off: mov RL0, R2 reti pwm_on: mov RL0, R1 reti start: mov P1M0,#03H mov P1M1,#00H mov P3M0,#00H mov P3M1,#10H mov SP,#20H clr TR1 clr TR0 mov TH1,#0DCH mov TL1,#0DCH anl TMOD,#00H orl TMOD,#20H setb TR1 anl PCON,#3FH mov SCON,#50H setb TI orl PCON,#80H mov RL0,#0BAH mov RH0,#0FFH mov R1,#0C8H mov R2,#0C8H orl TMOD,#1 orl ACSR,#08H clr P3.4 nop mov IE,#82H NEXT acall RX mov R1,A nop

Page 43: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 42 von 88

mov A,R1 acall TX acall RX mov R2,A nop mov A,R2 acall TX acall RX mov R3,A setb TR0 loopr nop ; nop djnz R3,loopr TimerOFF clr TR0 clr P3.4 mov A,P1 acall TX sjmp NEXT RX jnb RI,RX mov A,SBUF clr RI ret TX jnb TI,TX clr TI mov SBUF,A ret .end

Page 44: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 43 von 88

10.4 Die Include Datei

In dem Assemblerprogramm wird die Include Datei LPx052 verwendet. In der

Include Datei sind unter anderem die Register definiert. An der Datei wurde nichts

geändert. Der Hersteller hat die Original-Datei extra für das Elliptec Board

umgeschrieben. Mit dieser Datei wurde sich nicht viel befasst. Sie wurde einfach

einmal in den Mikrocontroller gespeichert und nie wieder geändert.

;*****************************************************

;* TASM LPx052 SFR BIT/BYTE MNEMONIC EQUATES LIST *

;* GMS 2005 added equations for Atmel AT89LPx0523 *

;*****************************************************

SP .equ 081H ;Stack pointer

DPL .equ 082H

DPH .equ 083H

SPDR .equ 085H ;SPI Data register AT89LPx0523

PCON .equ 087H

TCON .equ 088H

TMOD .equ 089H

TL0 .equ 08AH

TL1 .equ 08BH

TH0 .equ 08CH

TH1 .equ 08DH

P1 .equ 090H ;Port 1

TCONB .equ 091H ;Atmel AT89LPx052

RL0 .equ 092H ;Atmel AT89LPx052

RL1 .equ 093H ;Atmel AT89LPx052

RH0 .equ 094H ;Atmel AT89LPx052

RH1 .equ 095H ;Atmel AT89LPx052

ACSR .equ 097H ;AT89LPx052

SCON .equ 098H

SBUF .equ 099H

WDTRST .equ 0A6H ;AT89LPx052 Watchdog

Page 45: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 44 von 88

WDTCON .equ 0A7H ;AT89LPx052 Watchdog Control register

IE .equ 0A8H

SADDR .equ 0A9H ;Slave Address Atmel AT89LPx052

SPSR .equ 0AAH ;Atmel AT89LPx052

P3 .equ 0B0H ;Port 3

IP .equ 0B8H

SADEN .equ 0B9H ;Atmel AT89LPx052 Slave Address enable

P1M0 .equ 0C2H ;Atmel AT89LPx052 Port config

P1M1 .equ 0C3H ;Atmel AT89LPx052

P3M0 .equ 0C6H ;Atmel AT89LPx052

P3M1 .equ 0C7H ;Atmel AT89LPx052

T2CON .equ 0C8H ;8052, 80154 only

RCAP2L .equ 0CAH ;8052, 80154 only

RCAP2H .equ 0CBH ;8052, 80154 only

GHOST: Ein AT89LPx052 (8051) Entwicklungshelfer

Seite 77 von 116

TL2 .equ 0CCH ;8052, 80154 only

TH2 .equ 0CDH ;8052, 80154 only

PSW .equ 0D0H

SPCR .equ 0D5H ;SPI control register Atmel AT89LPx052

ACC .equ 0E0H ;Accumulator

B .equ 0F0H ;Secondary Accumulator

IOCON .equ 0F8H ;80154 only

;PORT 1 BITS

P1.0 .equ 090H ;Port 1 bit 0

P1.1 .equ 091H ;Port 1 bit 1

P1.2 .equ 092H ;Port 1 bit 2

P1.3 .equ 093H ;Port 1 bit 3

P1.4 .equ 094H ;Port 1 bit 4

P1.5 .equ 095H ;Port 1 bit 5

P1.6 .equ 096H ;Port 1 bit 6

P1.7 .equ 097H ;Port 1 bit 7

;PORT 3 BITS

P3.0 .equ 0B0H ;Port 3 bit 0

P3.1 .equ 0B1H ;Port 3 bit 1

P3.2 .equ 0B2H ;Port 3 bit 2

P3.3 .equ 0B3H ;Port 3 bit 3

Page 46: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 45 von 88

P3.4 .equ 0B4H ;Port 3 bit 4

P3.5 .equ 0B5H ;Port 3 bit 5

P3.6 .equ 0B6H ;Port 3 bit 6

P3.7 .equ 0B7H ;Port 3 bit 7

;ACCUMULATOR BITS

ACC.0 .equ 0E0H ;Acc bit 0

ACC.1 .equ 0E1H ;Acc bit 1

ACC.2 .equ 0E2H ;Acc bit 2

ACC.3 .equ 0E3H ;Acc bit 3

ACC.4 .equ 0E4H ;Acc bit 4

ACC.5 .equ 0E5H ;Acc bit 5

ACC.6 .equ 0E6H ;Acc bit 6

ACC.7 .equ 0E7H ;Acc bit 7

;B REGISTER BITS

B.0 .equ 0F0H ;Breg bit 0

B.1 .equ 0F1H ;Breg bit 1

B.2 .equ 0F2H ;Breg bit 2

B.3 .equ 0F3H ;Breg bit 3

B.4 .equ 0F4H ;Breg bit 4

B.5 .equ 0F5H ;Breg bit 5

B.6 .equ 0F6H ;Breg bit 6

B.7 .equ 0F7H ;Breg bit 7

;PSW REGISTER BITS

P .equ 0D0H ;Parity flag

F1 .equ 0D1H ;User flag 1

OV .equ 0D2H ;Overflow flag

RS0 .equ 0D3H ;Register bank select 1

RS1 .equ 0D4H ;Register bank select 0

GHOST: Ein AT89LPx052 (8051) Entwicklungshelfer

Seite 78 von 116

F0 .equ 0D5H ;User flag 0

AC .equ 0D6H ;Auxiliary carry flag

CY .equ 0D7H ;Carry flag

;TCON REGISTER BITS

IT0 .equ 088H ;Intr 0 type control

IE0 .equ 089H ;Intr 0 edge flag

IT1 .equ 08AH ;Intr 1 type control

Page 47: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 46 von 88

IE1 .equ 08BH ;Intr 1 edge flag

TR0 .equ 08CH ;Timer 0 run

TF0 .equ 08DH ;Timer 0 overflow

TR1 .equ 08EH ;Timer 1 run

TF1 .equ 08FH ;Timer 1 overflow

;SCON REGISTER BITS

RI .equ 098H ;RX Intr flag

TI .equ 099H ;TX Intr flag

RB8 .equ 09AH ;RX 9th bit

TB8 .equ 09BH ;TX 9th bit

REN .equ 09CH ;Enable RX flag

SM2 .equ 09DH ;8/9 bit select flag

SM1 .equ 09EH ;Serial mode bit 1

SM0 .equ 09FH ;Serial mode bit 0

;IE REGISTER BITS

EX0 .equ 0A8H ;External intr 0

ET0 .equ 0A9H ;Timer 0 intr

EX1 .equ 0AAH ;External intr 1

ET1 .equ 0ABH ;Timer 1 intr

ES .equ 0ACH ;Serial port intr

ET2 .equ 0ADH ;Timer 2 intr

;Reserved 0AEH Reserved

EA .equ 0AFH ;Global intr enable

;IP REGISTER BITS

PX0 .equ 0B8H ;Priority level-External intr 0

PT0 .equ 0B9H ;Priority level-Timer 0 intr

PX1 .equ 0BAH ;Priority level-External intr 1

PT1 .equ 0BBH ;Priority level-Timer 1 intr

PS .equ 0BCH ;Priority level-Serial port intr

PT2 .equ 0BDH ;Priority level-Timer 2 intr

;Reserved 0BEH Reserved

PCT .equ 0BFH ;Global priority level

Page 48: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 47 von 88

10.5 Was ist ein Interrupt?

Hier eine grobe Erläuterung:

Ein Interrupt (lat. interruptus, Unterbrechung) ist die kurzfristige Unterbrechung

eines Programms durch eine von der CPU abzuarbeitenden Befehlssequenz. Wird

ein Interrupt ausgelöst, dann wird das aktuelle Programm angehalten und es wird

ein Unterprogramm ausgeführt. Anschließend, nach Beendigung des

Unterprogramms, wird die Ausführung des Hauptprogramms an der

Unterbrechungsstelle fortgesetzt.

Sinn eines Interrupts ist es, z.B. bei einem PC, schnell auf Ein-/Ausgabe-Signale

(z. B. Tastatur, Maus, Festplatte, Netzwerk usw.) oder Zeitgebern (Timern) zu

reagieren. Interrupts sind nötig, um auf zeitkritische Ereignisse reagieren zu

können.

10.6 PWM- Erzeugung mit Hilfe eines 16-Bit-Timers

Die untenstehende Grafik soll die Funktionsweise des 16-Bit-Timers näher

beschreiben. Der 16-Bit-Timer (Timer 0) besteht aus einem Highbyte (RHO) und

einem Lowbyte (RLO). Mit jedem Takt des Oszillators (11.0952MHz) wird der

Timer um eins erhöht. Da der Timer 0 ein 16-Bit-Timer ist, benötigt er 2¹⁶ (65536)

Takte um einen Überlauf zu erreichen. Bei jedem Überlauf entsteht ein Interrupt.

Page 49: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 48 von 88

Wird der Timer mit keinem Wert voreingestellt, d.h. fängt der Timer bei null an zu

zählen, so erhält man bei einer Taktfrequenz von 11.0592MHz 168,75 Überläufe

Page 50: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 49 von 88

und damit auch 168,75 Interrupts pro Sekunde. Mit einem geeignetem

Assemblerprogramm, welches mit jedem Interrupt das Ausgangssignal des Ports

3.4 invertiert (vgl. 10.2), würde man mit 168,75 Interrupts pro sec. eine

Rechteckfrequenz von 168,75/2, also 84,735Hz, erzeugen. Für den Piezomotor,

der ein Rechtecksignal zwischen 70 und 100kHz benötigt, ist dies etwas zu wenig.

Um die Frequenz zu erhöhen muss man also die Anzahl der Interrupts pro sec. ,

also die Zeit der Timer0-Durchläufe verkürzen. Kürzere Durchlaufzeiten erhält

man, indem man den Timer nicht bei null anfangen lässt zu zählen, sondern das

Highbyte und das Lowbyte mit einem Startwert beschreibt, bei dem er dann zu

zählen beginnt.

Im Beispiel wurde das Highbyte mit dem Maximum, also 255d beschrieben und

das Lowbyte mit 200d beschrieben. Startet der Timer nun statt null erst bei

65480d (11111111 11001000 b), so entsteht alle 56 Takte ein Interrupt.

Page 51: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 50 von 88

Bei einer Oszillatorfrequenz bedeutet das, dass man jetzt nicht mehr 168,75

Interrupts pro Sekunde, sondern wie folgendes Rechenbeispiel veranschaulicht,

197485 Interrupts pro Sekunde erreicht.

Page 52: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 51 von 88

Das oben dargestellte Diagramm soll die interruptgesteuerte Frequenzerzeugung

näher erklären. Bei jedem Interrupt wird das Ausgangssignal des P3.4 invertiert,

es entsteht eine Rechteckspannung von 98,742kHz.

Diese Frequenz eignet sich hervorragend zur Ansteuerung des Piezomotors.

Folgender Programmausschnitt erläutert, wie der Timer mit entsprechenden

Werten geladen wird und der P3.4 zum ständigen Umschalten gebracht wird.

Page 53: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 52 von 88

Je nachdem mit welchen Werten Register R1 und Register R2 beschrieben

werden, lassen sich die Pulspausen bzw. die Pulse verlängern oder verkürzen.

Verändert man nur die Pulspausen, so verändert man die Frequenz. Das gleiche

gilt umgekehrt.

Es hat sich als vorteilhaft für das Motordrehmoment erwiesen, die ON-time auf

einem fest eingestellten Wert von R1=200 zu belassen und eine andere

gewünschte Frequenz, z.B. 75kHz für eine Rückwärtsbewegung des Motors

lediglich über das Verstellen des Wertes für die Pulspausen in R2 zu realisieren.

Page 54: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 53 von 88

10.7 Das Umwandeln der Assemblerdatei und Überspiel en auf

den MC

Um ein geschriebenes Assemblerprogramm zur Funktion zu bringen, braucht man

erst einmal ein Programm zum Kompilieren. Dies steht im Internet als Freeware

zum download bereit. Wenn das Programm installiert ist und geöffnet wird, sieht

es wie folgt aus:

Durch Betätigung des Buttons open kann man das Verzeichnis auswählen, wo die

Datei mit der Endung .ASM abgespeichert ist. Wenn die Datei geöffnet wird,

erscheint der Assemblercode einschließlich der Kommentare in dem linken

Fenster.

Page 55: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 54 von 88

Damit der Code umgewandelt werden kann, muss mit der Maus auf den Button

TASM geklickt werden. Es erscheint nun im rechten Fenster der umgewandelte

Code in der linken Spalte. In der rechten Spalte steht immer noch der

ursprüngliche Code mit den Kommentaren.

Um das Programm in den Mikrocontroller zu laden, muss der Button Run betätigt

werden. Das Programm wandelt den Code noch einmal in einen reinen

Page 56: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 55 von 88

Zahlenwert um. Der Microcontroller ist nun geflasht. Das heißt, in ihm ist jetzt das

selbst geschriebene Programm.

Page 57: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 56 von 88

11.0 Spannungsverlaufsmessung mit dem Oszilloskop

Es sollte die Ausgangsfrequenz am Board und am Motor gemessen werden. Um

die Frequenz am Board zu messen, muss der Motor abgeklemmt werden.

Die Spannung wurde auf 2V /DIV und die Zeit auf 2µs/DIV am Oszilloskop

eingestellt. Wenn man nun an am Board misst, stellt sich folgendes Bild auf dem

Oszilloskop dar.

Auf dem Bildschirm ergibt sich eine sehr saubere Rechteckspannung. Wenn eine

andere Frequenz im Softwareprogramm eingestellt wäre, würden sich die Impulse

- je nachdem - vergrößern oder verkleinern.

Wenn die Frequenz direkt am Motor gemessen wird und der Motor betrieben wird,

sieht man auf dem Bildschirm einen fast sinusförmigen Verlauf der Spannung.

Page 58: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 57 von 88

Page 59: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 58 von 88

12.0 Das Visual Basic Programm

12.1 Die Benutzeroberfläche

Es wurde in Visual Basic ein Programm entwickelt, mit dem der Motor und die

Messung gesteuert werden.

1= Startbutton 6= eingestellte Frequenz

2= Dauer der Schwingpakete 7= gemessene Länge

3= Anzahl Vorschübe 8= Einstellung der Faktoren

4= Stoppbutton 9= Zustand der Sensoren(LDR’s)

5= Restebutton 10= Auswahlfeld Justierung oder Messung

Page 60: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 59 von 88

12.2 Die Justierung

Wenn die Datei Längenmessung.exe geöffnet wird und der Computer eine

Verbindung mit dem Board hat, zeigt sich auf dem Bildschirm die oben gezeigte

Benutzeroberfläche. Bevor die Messung beginnen kann, müssen die LDR’s an die

im Augenblick herrschenden Lichtverhältnisse angepasst werden.

Im Modus (10) muss der Radiobutton Justierung gesetzt werden. Beide

Potentiometer müssen nach ganz rechts gedreht werden. Beide Kontrollkästchen

(9) sind jetzt gesetzt. Das heißt, dass es für die lichtabhängigen Widerstände jetzt

zu dunkel ist, um durchzuschalten. Der Laserpointer muss nun auf einen LDR

gerichtet werden. Das dazugehörige Potentiometer muss nun ganz langsam nach

links gedreht werden. Gleichzeitig muss immer nach einer Bewegung am

Potentiometer der Startbutton betätigt werden, damit sich die Software neu

initialisiert. Dies muss so lange geschehen, bis der Haken nicht mehr gesetzt ist.

Um sicher zu gehen, dass alles korrekt eingestellt ist, sollte der Laserpointer noch

einmal neben den LDR gerichtet werden. Der Haken sollte jetzt wieder gesetzt

sein. Wenn das der Fall ist, muss man bei dem zweiten LDR genauso verfahren.

Page 61: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 60 von 88

12.3 Resetten der Messeinrichtung

Weil der Motor in der Mitte steht und der Laserpunkt keinen Fotowiderstand

beleuchtet und so beide Ports hochohmig sind, sind beide Kontrollkästchen

gesetzt. Um die Messung zu starten, muss der Motor resettet werden. Dies

geschieht, indem der Resetbutton betätigt wird. Die Zeitdauer der

Schwingungspakete der Motorspannung beträgt beim Rückwärtsfahren 4ms. Beim

Resetten ändert der Motor die Frequenz (6) von der Standart eingestellten

Vorwärtsfrequenz von 98743Hz auf 79563HZ. Der Motor fährt solange rückwärts,

bis das Laserlicht den unteren LDR beleuchtet. Der Haken bei Port P1.5 ist nun

auch nicht mehr gesetzt. Der Motor ist nun betriebsbereit.

Page 62: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 61 von 88

12.4 Das Starten der Messung

Bevor die Messung gestartet werden kann, sollte man noch beim Feld Faktor (8)

wählen, wie groß das Werkstück ist, um die Messung so genau wie möglich zu

gestalten. Bei kleinen Werkstücken bis ca. 2cm sollte der Radiobutton klein

gesetzt sein. Bei Werkstücken ab 2cm bis ca. 6cm sollte man den mittleren

wählen. Der Radiobutton groß sollte ab einer Größe von 6cm gewählt werden. Die

Standarteinstellung ist immer auf Radiobutton klein. Wenn diese Einstellungen

vorgenommen worden sind, kann die Messung mit dem Startbutton gestartet

werden. Der Motor fährt nun los.

Page 63: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 62 von 88

Wenn der Motor losfährt, dann verlässt er nach einigen Stepps den unteren LDR.

Das bedeutet, dass Port 1.5 nun nicht mehr beleuchtet ist. Die Anzahl der Stepps

wird laufend aktualisiert, genauso wie die bis dahin schon abgetastete Länge. Die

Messung kann nur mit dem Stopbutton gestoppt werden. Die anderen Buttons

sind ausgeschaltet. Dies kann man an der transparenten Schrift in den Feldern

erkennen.

Das Programm führt die Messungen immer weiter aus, bis das Licht von dem

Laserpointer den oberen LDR erreicht hat. Der LDR schaltet Port 1.7 durch und

dieser gibt an das Visual Basic Programm weiter, dass die Messung beendet

werden muss. Das Programm beendet die Messung und gibt die Endwerte aus.

Nun kann die Messung wieder von vorne beginnen, indem man den Restbutton

betätigt.

Page 64: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 63 von 88

12.5 Der Quellcode des VB- Programms

Option Strict Off Friend Class A Inherits System.Windows.Forms.Form Dim swert As Short ' die Frequenzen für den Vorwärts und Rückwärtslauf des Motors werden eingestellt Const RL0 As Integer = 200 ' bleibt immer gleich Const RH0_vorwaerts As Integer = 200 Const RH0_rueckwaerts As Integer = 173 Dim RH0 As Integer = RH0_vorwaerts ' speichert ob der Benutzer "Stop" gedrückt hat Dim StopGedrueckt As Boolean = False Private Sub SendReadSeriell() Dim dummyread As Short ' wenn kein Wert da, dann gibt es eine -1 über seriell ' dieses SUB übermittelt und holt die Daten so wie ' es das Mikrocontrollerprogramm verlangt ! OPENCOM( "COM1:19200,N,8,1" ) ' On time / Wert R1 schicken und zurücklesen SENDBYTE(RL0) ' RL0: fest auf 200 gesetzt dummyread = -1 While dummyread = -1 ' warten auf gelesenen Wert dummyread = READBYTE End While ' On time / Wert R2 schicken und zurücklesen SENDBYTE(RH0) dummyread = -1 While dummyread = -1 ' warten auf gelesenen Wert dummyread = READBYTE End While

Page 65: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 64 von 88

' wie lange soll der Motor laufen? Wert von Zeitdau er übermitteln SENDBYTE(Val( Me.Zeitdauer.Text)) ' starten und warten auf Antwort ' jetzt auf Antwortbyte warten dummyread = -1 While dummyread = -1 ' P1 Wert anzeigen dummyread = READBYTE End While ' und Kommunikationskanäle schließen CLOSECOM() ' und Zustand des LDR's anzeigen ' beleuchtetes LDR setzt Pin auf low If (dummyread And 2 ^ 5) Then Me.P1_5.CheckState = System.Windows.Forms.CheckState.Unchecked Else Me.P1_5.CheckState = System.Windows.Forms.CheckState.Checked End If If (dummyread And 2 ^ 7) Then Me.P1_7.CheckState = System.Windows.Forms.CheckState.Unchecked Else Me.P1_7.CheckState = System.Windows.Forms.CheckState.Checked End If End Sub Reset Private Sub ResetMotor() ' alten Wert sichern Dim alteZeitDauer As String = Me.Zeitdauer.Text Me.Zeitdauer.Text = "4 ms" Me.Zeitdauer.Refresh() ' setze die Frequenz auf Rückwärtslauf RH0 = RH0_rueckwaerts Call FrequenzAnzeigen() ' noch hat niemand stop gedrueckt

Page 66: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 65 von 88

StopGedrueckt = False ' fahre den Motor in die Ausgangsstellung zurück While ( Me.P1_5.CheckState = CheckState.Checked And StopGedrueckt = False ) Call SendReadSeriell() ' bearbeite Klicks auf den Stopknopf Application.DoEvents() End While ' alten Wert wiederherstellen Me.Zeitdauer.Text = alteZeitDauer Me.Zeitdauer.Refresh() End Sub Private Sub A_Load( ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load ' Frequenzanzeige für User aktualisieren ' standardmäßig wird die Frequenz für den Vorwärtslauf angezeigt Call FrequenzAnzeigen() ' stelle die initialen Werte für P1.5 und P1.7 fest Call InitialisiereP15P17() End Sub Private Sub A_FormClosed( ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed ' muss nicht aber vielleicht besser wenn Software sich mal aufhängt CLOSECOM() End Sub Private Sub InitialisiereP15P17() ' führe eine Messung im Rückwärtslauf aus und anschließend im Vorwärtslauf ' dadurch sollte der Motor in die alte Stellung zurückkehren und ' P1.5 und P1.7 korrekt gemessen werden RH0 = RH0_rueckwaerts Call SendReadSeriell() RH0 = RH0_vorwaerts Call SendReadSeriell()

Page 67: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 66 von 88

End Sub Private Sub StartLauf() ' setzte die Frequenz auf Vorwärtslauf RH0 = RH0_vorwaerts Call FrequenzAnzeigen() ' Zähler für die Anzahl der Messungen Dim Anzahl As Integer = 0 ' Variable für die Länge Dim Laenge As Double = 0.0 ' initial ist Stop noch nicht gedrückt worden StopGedrueckt = False ' führe solange Messungen durch bis entweder P1.7 erreicht wurde oder ' der Benutzer "Stop" gedrückt hat While ( Me.P1_7.CheckState = CheckState.Checked And StopGedrueckt = False ) ' And StopGedrueckt = False) Call SendReadSeriell() Anzahl = Anzahl + 1 Me.txtAnzahl.Text = Anzahl 'Auswahl der Faktoren Dim faktor As Double = 0 If ( Me.radioKlein.Checked) Then faktor = 0.01451565622 ElseIf ( Me.radioMittel.Checked) Then faktor = 451565622 ' ändern Else 'Me.radioGross.Checked faktor = 1.01451565622 ' ändern End If ' berechne die Länge Laenge = Math.Tan(Anzahl * faktor * (Ma th.PI / 180)) * 15.4 ' anzeigen der Länge Me.txtLaenge.Text = VB6.Format(Laenge, "0.00 cm" ) Me.txtLaenge.Refresh() Me.txtAnzahl.Refresh()

Page 68: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 67 von 88

' gucke nach, ob jemand den Stopknopf gedrueckt hat Application.DoEvents() End While End Sub Private Sub FrequenzAnzeigen() ' berechne die Frequenz und zeige sie an Me.freq.Text = VB6.Format(11059200 / (512 - RL0 - RH0), "###### Hz" ) Me.freq.Refresh() End Sub ' Bei Reset click werden die Messwerte auf null ges etzt Private Sub Reset_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReset.Click ' setzte die Felder zurück Me.txtLaenge.Text = "0,00 cm" Me.txtLaenge.Refresh() Me.txtAnzahl.Text = "0" Me.txtAnzahl.Refresh() ' Knoepfe aus Call KnoepfeAus() ' setze den Motor zurück Call ResetMotor() ' Knoepfe an Call KnoepfeAn() End Sub Private Sub btnStop_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStop.Click ' setze StopGedrueckt auf True um die Messungen abzubrechen StopGedrueckt = True End Sub Private Sub btnStartLauf_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStartLauf.Click

Page 69: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 68 von 88

' Führe entweder eine Messung oder eine Justierung durch If Me.radioMessung.Checked Then ' schalte die Knoepfe aus Call KnoepfeAus() ' Mache die Messung Call StartLauf() ' schalte die Knoepfe wieder ein Call KnoepfeAn() Else Call SendReadSeriell() End If End Sub 'Alle nicht sinnvollen Felder werden ausgeschaltet Private Sub KnoepfeAus() Me.btnStop.Enabled = True Me.btnStartLauf.Enabled = False Me.btnReset.Enabled = False Me.radioKlein.Enabled = False Me.radioMittel.Enabled = False Me.radioGross.Enabled = False End Sub 'Alle sinnvollen Felder werden angeschaltet Private Sub KnoepfeAn() Me.btnStop.Enabled = False Me.btnStartLauf.Enabled = True Me.btnReset.Enabled = True Me.radioKlein.Enabled = True Me.radioMittel.Enabled = True Me.radioGross.Enabled = True End Sub 'Einstellung der Zeitdauer bei RadiobuttonKlein Private Sub radioKlein_CheckedChanged( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radioKlein.CheckedChanged ' If radioKlein.Checked = True Then

Page 70: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 69 von 88

Me.Zeitdauer.Text = "1 ms" End If End Sub 'Einstellung der Zeitdauer bei RadiobuttonMittel Private Sub radioMittel_CheckedChanged( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radioMittel.CheckedChanged ' If radioMittel.Checked = True Then Me.Zeitdauer.Text = "4 ms" End If End Sub 'Einstellung der Zeitdauer bei RadiobuttonGroß Private Sub radioGross_CheckedChanged( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles radioGross.CheckedChanged ' If radioGross.Checked = True Then Me.Zeitdauer.Text = "6 ms" End If End Sub End Class

Page 71: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 70 von 88

12.6 Die Rechnung

Um die Anzahl der Schritte in ein gängiges Längenmaß umzurechnen, muss ein

gegebener Winkel in einen Faktor umgerechnet werden. Bei 270 Schritten wurde

ein Winkel von 25,36° gemessen.

Schritt

Grad30939259259,0

270

36.25 =°

Anhand dieser Rechnung ergibt sich pro Schritt ein Winkel von 0,09392592593.

Mit diesem Wert kann die Höhe ausgerechnet werden. Die Länge vom Kopf des

Laserpointers bis hin zum eingespannten Werkstück beträgt 15,4cm. Daraus

ergibt sich folgende Formel zur Errechnung der Höhe des Messobjekts.

Page 72: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 71 von 88

4.15*)0939259259,0*tan( Anzahlh =

Im Visual Basic Programm kann man aber nicht so rechnen, denn der Computer

rechnet im Bogenmaß.

4,15*180

*0939259259,0*tan.

PiAnzahlMath

13.0 Die Genauigkeit der Messung

Um die Genauigkeit der Messungen festzustellen wurden Vergleichsmessungen

durchgeführt. Ein kleines Werkstück wurde einmal von dem Laser mit 2ms

Schwingungspaketen und einmal mit 6ms Schwingungspaketen abgetastet.

Es wurden jeweils 10 Messungen am Stück durchgeführt. Zwischen Änderungen

der Einstellungen wurde jeweils immer eine 15-minütige Pause eingelegt, damit

sich der Motor abkühlen könnte. Es wurde darauf geachtet, dass das

Messergebnis nicht durch äußere Einflüsse wie z.B. Verbiegen der

Anschlussleitung vom Laser beeinflusst wird.

Bei einem 5cm langen Werkstück wurden im Schnitt 122 Stepps mit 6ms

Schwingungspaketen benötigt. Der maximale Messfehler liegt dabei bei bis zu 9

Stepps. Das ergibt mit dem errechneten Faktor 0,1498 einen Messfehler von ca.

0,52cm.

Page 73: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 72 von 88

Werden 2ms Schwingungspakete gewählt, liegt der Durchschnitt der Stepps bei

422. Der Unterschied zwischen der größten Messung und der kleinsten Messung

liegt bei 153 Stepps. Das ergibt mit dem Faktor 0,0433 eine Toleranz von 2,11cm.

Page 74: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 73 von 88

Bei kleinen Größen ergab sich Folgendes: Bei den 6er Schritten hatten die Stepps

einen Durchschnitt von 61,4 bei gleichbleibender Länge. Der Abstand zwischen

der höchsten und niedrigsten Anzahl beträgt 3 Stepps. Bei einem Faktor von

0,1205 ergibt sich errechnet eine mögliche Abweichung von 0,097cm.

Wenn die Messung mit 2er Stepps durchführt wird, erhält man einen Wert von 187

Stepps. Der errechnete Faktor beträgt 0,0395 Stepps. Es würde sich eine

Abweichung von ca. 0,77cm ergeben.

Würde man den 6 Wert auf 190 angleichen, käme man auf einen

Durchschnittswert von 178. Dies würde einen Faktor von 0,0415 betragen. Daraus

würde sich eine mögliche Abweichung von 0,2677 cm ergeben. Der „Ausreißer“

könnte durch ein Software-Problem oder einen kleinen mechanischen Defekt

entstanden sein.

Page 75: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 74 von 88

Große Längen sollten allein schon aus Zeitgründen mit relativ großen Stepps

gemessen werden. Sehr kleine Längen sollten mit 1ms Stepps gemessen werden,

da die Sprünge bei 6ms zu groß sind.

14.0 Der Zeitablaufplan

Der Zeitablaufplan wurde erstellt, um das Projekt genau zu planen.

Erstaunlicherweise hat auch ziemlich alles gepasst. Da die Idee schon vor Beginn

der Sommerferien begonnen wurde, konnte man nach den Ferien direkt anfangen

zu planen und die Idee weiter reifen lassen. Es gab auch Abweichungen von der

Planung. In dem Zeitablaufplan werden die aufgewendeten Zeiten schwarz

dargestellt. Die mit grün gekennzeichneten Felder stehen für die Arbeiten, die

weniger und die blauen Felder für die Arbeiten, die mehr Zeit als ursprünglich

geplant, in Anspruch genommen haben.

August September Oktober November Dezember Januar

KW 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 1 2 3 4

Materialien Auswählen

Angebote einholen

Material bestellen

Funktionsschema

Pflichtenheft

Einlesen in die Piezotechnik

Aufbau Montage

Einlesen in Assembler

Programmierung Mc

Tests

Programmierung VB

Vorbereitung Präsentation

Dokumentation

Page 76: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 75 von 88

15.0 Die Kosten

Pos Bezeichnung Stück Einzelpreis Gesamtpreis

1 Potentiometer 2 3.19€ 6.38€

44804-66

2 Lasermodul 1 29.95 29.95

158550-66

3 Fotowiderstand 2 1.08€ 2.16€

145483-62

4 Netzgerät 1 0 € 0 €

(gestellt)

5 Batteriefach 1 7.95€ 7.95€

227859-66

6 DSUB 9 Kabel 1 8.95€ 8.95€

980927-66

7 Starterkit V1 1 138.40€ 138.40€

8 Mikrofonkabel 0,40m 0.55€ 0.55€

606600-66

9 Rabatt 1 -23.40€ -23.40€

Starterkit V1

10 Gestell 1 119.39€ 119.39€

Summe inkl.

MwSt 290.28€

Page 77: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 76 von 88

16.0 Verbesserungsvorschläge für eine noch genauere Messung

16.1 Erster Verbesserungsvorschlag:

Der erste Verbesserungsvorschlag für dieses Projekt wäre, um eine höhere

Genauigkeit zu erreichen, eine Untersetzung zwischen Laser und Motor (z.B. ein

Uhrengetriebe) einzubauen. Bei Verwendung eines Getriebes mit der

Untersetzung von 10:1 erhielte man statt den bisherigen Schrittwinkeln von

0.093925 Grad eine Schrittweite von 0.0093925 Grad. (Erläuterung Schrittwinkel:

Kapitel 8.4)

Die theoretische Genauigkeit würde sich durch dieses Verfahren verzehnfachen.

Nachteile:

• komplizierte Mechanik

• durch die Untersetzung, sehr langsame Messung

16.2 Zweiter Verbesserungsvorschlag:

Der zweite Verbesserungsvorschlag für dieses Projekt wäre, statt dem

verwendeten Rotationsantrieb auf einen Linearantrieb der Firma Elliptec, wie er in

Kapitel 3 beschrieben ist, zurückzugreifen. Bei der Verwendung eines solchen

Antriebes entfällt die Winkelumrechnung im Visual Basic Programm und man hätte

keine Unterschiede in der Schrittbreite des Lasers, denn je weiter sich der Laser

(mittels Rotationsantrieb) nach oben bewegt, desto größer werden die einzelnen

Schritte (Winkelfunktion).

Page 78: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 77 von 88

16.3 Dritter Verbesserungsvorschlag

Da die Stromversorgung des Lasers trotz des geringen Leitungsquerschnittes

immer noch einen gewissen mechanischen Widerstand hat, wäre es eine

Überlegung wert, den Laser über eine Knopfzelle mit Strom zu versorgen, welche

dann ebenfalls an der Welle montiert wird, oder gar direkt auf einen Laserpointer

mit eingebauten Batterien und Schalter zurückgreift. Belässt man die Konstruktion

mit den Anschlussleitungen wie sie ist, dann sollte jedoch in Erwägung gezogen

Page 79: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 78 von 88

werden, die beiden Zuleitungsdrähte des Lasers mit einer Art Plexiglaskuppel zu

schützen, da die Biegeform der Drähte Einfluss auf das Messergebnis hat.

16.4 Vierter Verbesserungsvorschlag

Wenn sich der Piezomotor durch den normalen Betrieb erwärmt, verschieben sich

die Betriebsfrequenzen um ca. 2000Hz nach unten. Diese

Betriebsfrequenzverlagerung zieht eine Drehzahländerung mit sich und ist der

Hauptgrund für Messabweichungen bei direkt aufeinanderfolgenden Messungen.

Um diesem Betriebsverhalten des Elliptecmotors entgegenzuwirken, müsste man

das Assemblerprogramm so umschreiben, dass der Piezomotor nicht mit

konstanter Frequenz betrieben wird, sondern die Betriebsfrequenz langsam um

2000Hz abgesenkt wird, so dass die Drehzahl konstant bleibt.

16.5 Fünfter Verbesserungsvorschlag

Da die Taktung der Schwingungspakete für die Betriebsfrequenzen über das

Visual Basic Programm und die PWM Frequenz einzig und allein vom

Assemblerprogramm gesteuert wird, ist die Betriebsfrequenz von zwei

Mikrocontrollern abhängig.

Die Verwendung des PCs als Taktgeber für die Schwingungspakete kann

Nachteile mit sich ziehen. Man hat einen ständigen Datenfluss auf der seriellen

Schnittstelle und eine Messunterbrechung (kurzzeitiger Stillstand des Motors)

sobald der PC einen betriebsmäßigen Interrupt erfährt.

Wollte man die Messeinrichtung um ein Display und den benötigten Tastern zum

Starten und Stoppen ergänzen, um auch Messungen ohne einen PC durchführen

zu können, wäre dieser Verbesserungsvorschlag ohnehin unentbehrlich.

Page 80: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 79 von 88

16.6 Sechster Verbesserungsvorschlag

Als Lichtsensoren wurden LDR’s verwendet. LDR’s reagieren im Vergleich zu

Fotodioden eher langsam auf eine Änderung der Lichtverhältnisse und reagieren,

wenn man nicht gerade die LDR’s mit Farbfilter verwendet, im Gegensatz zu

Fotodioden auf Tageslicht. Bei der Verwendung der richtigen Fotodioden ließen

sich daher „zwei Fliegen mit einer Klappe schlagen“. Bei einer ordentlichen

Grundeinstellung kann man dann auch auf die Justierung mit den Potis verzichten.

Von der Verwendung eines passiven Kompensations-LDR ist abzuraten, da sich

gezeigt hat, dass sich nach einigen Minuten, nachdem der Mikrocontroller

spannungslos geschaltet wurde, das Assemblerprogramm gelöscht ist.

17.0 Fazit

Das berührungslose Vermessen eines Werkstückes, sowie das Erproben der

realisierbaren Genauigkeit mit Hilfe des reinen Piezomotors als Rotationsantrieb,

ist geglückt. Die Genauigkeit von ca. 1mm lässt sich unter Berücksichtigung der

Verbesserungsvorschläge mit Sicherheit noch steigern.

18.0 Schlusswort:

Als Projektgruppe Piezomotor 06/07 haben wir die Ziele, die wir uns stellten, mehr

als erreicht. Um die von uns gestellten Ziele umzusetzen, mussten wir uns mit

dem Aufbau des Entwicklungshelfers sowie dessen Dokumentation befassen.

Nach den ersten Versuchen mit dem Piezomotor und den von der Firma GMS

2000 bereitgestellten Testprogrammen stellten wir uns die Frage, ob wir den Mund

gegenüber Herrn Schwarzer bezüglich unserer Vorhaben nicht etwas voll

genommen haben. Zur erfolgreichen Absolvierung dieses Projektes blieb uns

keine andere Wahl, als neben kleinen handwerklichen Arbeiten uns in die

Programmierung von Assembler, Visual Basic, Crosscompilern, Mikrocontroller-

Page 81: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 80 von 88

Flashprogrammen, sowie die Kommunikation zwischen Mikrokontroller und PC

einzuarbeiten. Um eine fristgerechte Abgabe sicherzustellen und damit unseren

Vorstellungen zu Beginn des Projekts gerecht zu werden, mussten wir neben den

gegebenen Projekttagen viele Sonderschichten einlegen. Sollte sich eine

nachfolgende Gruppe dazu entschließen an diesem Projekt weiter zu arbeiten,

sollte sie sich auf dies einstellen.

Page 82: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 81 von 88

19.0 Quellenangabe

www.elektronik-kompendium.de

www.conrad.de

www.elliptec.de

www.gms-shop2000.de

www.microcontroler.net

www.erikbuchmann.de

Handbuch: ATMEL AT89LP2052

GHOST von Dipl. Ing. Jürgen Hulzebosch

Buch: Basiskurs MC ISBN 3-89576-141-9

Wir bedanken uns bei Herrn Schwarzer für seine Unterstützung sowie bei Herrn

Jürgen Hulzebosch vom Bentheimer Softwarehaus, der uns immer mit Rat und Tat

zur Seite stand und dem Hans-Sachs-Berufskolleg den Piezomotor sowie dessen

Entwicklungshelfer für den Atmel Mikrocontroller zum Sonderpreis verkaufte.

Page 83: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 82 von 88

Anhang

Page 84: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 83 von 88

Pflichtenheft

Projekt : Längenmessung mit Hilfe eines Piezomotors Thema : Automatisierungstechnik

Projektgruppe :

Martin Eberhard Jochen Thomsen Volker Gossens

Projektbetreuer: Herr Schwarzer

Page 85: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 84 von 88

1. Einleitung 2. Komponentenbeschreibung 3. Projektaufbau 4. Durchzuführende Arbeiten 5. Ziel 6. Unterschriften 1. Einleitung Der Elliptecmotor ist der einzige Piezomotor der sowie Links- als auch Rechtslauf hat. Der Motor wird häufig eingesetzt, wo wenig Platz und eine genaue Positionierung erforderlich ist (Autofokus bei Kameras). Er zeichnet sich außerdem durch enorme Drehmomente aus. 2. Komponentenbeschreibung

• Motor Ein Piezomotor Starter Kit V1mit: Testprogramm ATMEL - Microcontroller. (Wird gekauft)

• 2 Fotowiderständer Als Sensor (Wird gekauft)

• Lasermodul (3V 1mW) Zur Werkstückabtastung (Wird gekauft)

• Gestell mit Einspannvorrichtung aus BOSCH Profilschiene (Material wird gekauft und selbst zusammen gebaut)

• Netzteil (2,4V – 30V)

Page 86: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 85 von 88

Betriebsspannung Elektronik (Herr Feldkamp stellt das Netzteil) 3. Projektaufbau Gefertigt wird ein Gestell, auf welchem ein Piezomotor montiert ist. Ein beliebiges Werkstück mit den Höchstmaßen von 100 mm x 100 mm x 60 mm kann in die Vorrichtung eingespannt werden. Am Kopf der Einspannungsvorrichtung, befinden sich an beiden Schenkeln jeweils Fotowiderstände. Der Laser, der an der Welle des Motors befestigt ist, befindet sich in Ausgangposition. Der Laserstrahl ist auf den unteren LDR gerichtet. Der Motor beginnt nun mit einer bestimmten Geschwindigkeit zu drehen. Nun verlässt der Laserstrahl den Fotowiderstand und der Microcontroller beginnt die Impulse des Motors zuzählen. Erreicht der Laserstrahl den oberen LDR, so hört der Microcontroller auf zu zählen. Nun ist das Werkstück vermessen und der Microcontroller wandelt die Impulse in ein Längenmaß um. Der Microcontroller gibt die Werte über den Bildschirm des Computers aus. Nach Beendigung der Messung fährt der Piezomotor in seine Ausgangsstellung zurück.

4. Durchzuführende Arbeiten

• Planung des Projekts • Aussuchen der Komponenten und Materialien • Preise verhandeln • Komponenten und Materialien bestellen • Gestell aus Boschprofilschienen anfertigen • Testen des Motors auf Funktion • Montage des Motors auf das Gestell • Montage des Lasers auf die bewegliche Achse des Motors • Messen und Testen des Winkelvorschubs

Gestell

Fotowiderstand

Laser

Laserstrahl

Motor

Page 87: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 86 von 88

• Ausrichten und einstellen des Motors und der Komponenten • Programmierung des Microcontrollers • Umwandlung des analogen Fotowiderstandssignal in ein digitales Signal • Umrechnung der Frequenz in eine Maßeinheit • Ausgabe der Länge des Werkstück auf dem Bildschirm des Computers

5. Ziel Ziel des Projektes ist es eine sehr genaue berührungslose Messung durchzuführen und auszugeben und herauszufinden, wie genau man mit dieser Methode messen kann. 6. Unterschriften Projektteam Projektbetreuer _______________ _____________ Martin Eberhard Herr Schwarzer _______________ Jochen Thomsen ______________ Volker Gossens Oberhausen, 29. August 2006

Page 88: Dokumentation: Längenmessung mit Hilfe eines Piezomotors

Projekt:

Längenmessung mit Hilfe eines Piezomotors

© Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 87 von 88

Software

Auf dieser CD befindet sich:

• Dokumentation • Programm • Präsentation