Projekt: Längenmessung mit Hilfe eines Piezomotors



Ähnliche Dokumente
10.0 Quick Start mit AT89LP2052 Elliptecmotor Kit

7.0 PWM - Pulsbreitenmodulation

8.0 Erweiterung mit dem 8 Bit D/A Maxim MAX5382

Zähler- und Zeitgeber-Baugruppen

GeoPilot (Android) die App

MOTORISIERTER COIN FEEDER

Tutorial -

Datensicherung. Beschreibung der Datensicherung

Versuch 3: Sequenzielle Logik

Professionelle Seminare im Bereich MS-Office

TRAVEL POWER 230 V AC, 32 A, 50 Hz ( ) Travel Power

Speichern. Speichern unter

Bedienungsanleitung Version 1.0

11.0 Aufbau für die Steuerung des Elliptecmotors

Projekt 2HEA 2005/06 Formelzettel Elektrotechnik

Aufbau und Bestückung der UHU-Servocontrollerplatine

Bilder zum Upload verkleinern

Das Experimentierbrettchen (Aufbau, Messpunkte): A B + 9V

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

TP 6: Windenergie. 1 Versuchsaufbau. TP 6: Windenergie -TP 6.1- Zweck der Versuche:...

Technische Informatik Basispraktikum Sommersemester 2001

Bedienungsanleitung PC-Konfigurationssoftware des ID Inclinometers

Netzwerk einrichten unter Windows

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

easyident Türöffner easyident Türöffner Art. Nr. FS-0007 FS Fertigungsservice

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Artikel Schnittstelle über CSV

M a i l C r e d i t. \\Burt\user\Soutschek\FP\Technik\Frankiermaschinen\00_PC Software\MailCredit\Anleitung MailCredit Installation.

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

PowerPoint: Text. Text

1 Konto für HBCI/FinTS mit Chipkarte einrichten

Einkaufslisten verwalten. Tipps & Tricks

Hier ist die Anleitung zum Flashen des MTK GPS auf der APM 2.0. Prinzipiell funktioniert es auch auf der APM 2.5 und APM 1.

EasyWk DAS Schwimmwettkampfprogramm

Die Solarzelle als Diode

Hex Datei mit Atmel Studio 6 erstellen

Wie halte ich Ordnung auf meiner Festplatte?

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Windkraft-Ersatzlastregler bzw. Heizungsversion

Dieser Ablauf soll eine Hilfe für die tägliche Arbeit mit der SMS Bestätigung im Millennium darstellen.

Kostenstellen verwalten. Tipps & Tricks

Elektrische Logigsystem mit Rückführung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Allgemeine USB Kabel Installation und Troubleshooting

Wie wird ein Jahreswechsel (vorläufig und endgültig) ausgeführt?

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Technische Informatik Basispraktikum Sommersemester 2001

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Anleitung TempCW 2011

Anleitung über den Umgang mit Schildern

Installation und Sicherung von AdmiCash mit airbackup

Der Kalender im ipad

! " # $ " % & Nicki Wruck worldwidewruck

METTLER TOLEDO USB-Option Installation der Treiber unter Windows XP

Bedienungsanleitung LCQ-Meter (DG5MK) Stand

Local Control Network Technische Dokumentation

10. Elektrische Logiksysteme mit

Quanton Manual (de) Datum: URL: )

Autoradio On Off Schaltung

PowerPoint vertonen. by H.Schönbauer 1

AUSBILDUNG eines OBEDIENCE HUNDES

CdsComXL. Excel add-in für Bearbeitung und Auswertung der CDS-daten. ComXL-020/D, Spur Spur Spur Spur

Bedienungsanleitung für das Tektronix Oszilloskop TDS 2002B

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

Aufgaben Wechselstromwiderstände

LPT1 Anschluss mit PCMCIA Karte

S O L U T I O N S ::::: CSE-H55 Ethernet/RS422 Wandler. Installationsanleitung

Oszilloskope. Fachhochschule Dortmund Informations- und Elektrotechnik. Versuch 3: Oszilloskope - Einführung

Local Control Network

"Memory Stick" zur Programmierung der comfort 8+ Lichtsteuranlage mit PC Software "scenes editor"

Dokumentation IBIS Monitor

Bedienungsanleitung für den SecureCourier

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Update Anleitung I-STAT unter Windows 7 WICHTIG. > Version A30 Die Aktivierung der Barcodefunktion muß vor dem Update aktiviert werden

Übungsaufgaben zum 2. Versuch. Elektronik 1 - UT-Labor

ACDSee 2009 Tutorials: Rote-Augen-Korrektur

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Installationsanleitung

file://c:\documents and Settings\kfzhans.BUERO1\Local Settings\Temp\ e...

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Umgang mit der Software ebuddy Ändern von IP Adresse, Firmware und erstellen von Backups von ewon Geräten.

Der Anschluss an einen Computer

Wenn keine Verbindung zwischen den Computern besteht, dann bist du offline.

Aufbau der Cutmaster Einheit

Bedienungsanleitung Control DC Supply

ARCO Software - Anleitung zur Umstellung der MWSt

FastBill Automatic. Dokumentation Versand. FastBill GmbH. Holteyer Straße Essen Telefon Telefax

OP-LOG

Computeria Solothurn

TeamSpeak3 Einrichten

Fotos verkleinern mit Paint

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

Wasserzeichen mit Paint-Shop-Pro 9 (geht auch mit den anderen Versionen. Allerdings könnten die Bezeichnungen und Ansichten etwas anders sein)

Eigenen Farbverlauf erstellen

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Neue Schriftarten installieren

Umwandelung einer Physikalischen Größe in eine Elektrische

Inhalt. Inhalt Voraussetzungen Liegenschaften und Adressen auswählen Abgleich mit Internet-Office Dokumente...

Installationsanleitung Forest shuttle. Home Automation by

Transkript:

Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 0 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 1 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 2 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 3 von 88

1. Das Piezoteam Martin Eberhard Jochen Thomsen Volker Gossens Herr Schwarzer Projektbetreuer Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 4 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 5 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 6 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 7 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 8 von 88

2.2 Das Zusammenspiel zwischen inversem und direktem Piezo- 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 9 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 10 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 11 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, Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 12 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 13 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 14 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 15 von 88

3.4 Technische Daten Schubkraft 0,2 0,4 N Höhere Kräfte sind durch einfache Hebelmechanismen oder mehrere Motoren möglich. Haltekraft 1N 5 Ansteuersignalamplitude 5-8V, 5 10V (Motor) 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 10µm (Schrittweite) 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 16 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 17 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 18 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 19 von 88

4.3.1 Der erste Testlauf des Motors 7 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 20 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 21 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 22 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 23 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 24 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 25 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 26 von 88

6.2 Maße des Gestells 280 60 60 65 40 275 335 Die Profilschienen bestehen aus 30 X 30 mm großem Aluminiumvierkant. Die Angaben sind alle in mm. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 27 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 28 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) Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 29 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 30 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 31 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 32 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 Laserstrahl umgeleitetem direkt auftreffender Laserstrahl Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 33 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 34 von 88

9.1 Schaltplan des Ghost Entwicklungshelfers R17=300Ω Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 35 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 36 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 37 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 38 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 nop mov A,R1 acall TX ; R1 schreiben ON time ; R1 lesen ; Wert zurücksenden ; zweiten Wert holen acall RX Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 39 von 88

mov R2,A nop mov A,R2 acall TX ; R2 schreiben OFF time ; R2 lesen ; 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 acall TX sjmp NEXT ; Portpins P1 holen ; und über RS232 senden ; 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 40 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 41 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 RX TX mov A,P1 acall TX sjmp NEXT jnb RI,RX mov A,SBUF clr RI ret jnb TI,TX clr TI mov SBUF,A ret.end Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 42 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 43 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 44 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 45 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 46 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 47 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 48 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 49 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 50 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 51 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 52 von 88

10.7 Das Umwandeln der Assemblerdatei und Überspielen 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 53 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 54 von 88

Zahlenwert um. Der Microcontroller ist nun geflasht. Das heißt, in ihm ist jetzt das selbst geschriebene Programm. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 55 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 56 von 88

Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 57 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 58 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 59 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 60 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 61 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. Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 62 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 Eberhard, Thomsen, Gossens Datum: 12.01.2007 Seite 63 von 88