26.10.2012 Aufrufe

Drehzahlmessung mit Drehrichtungsanzeige

Drehzahlmessung mit Drehrichtungsanzeige

Drehzahlmessung mit Drehrichtungsanzeige

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Drehzahlmessung</strong><br />

<strong>mit</strong> integrierter Richtungsanzeige<br />

Christian Radtke, Stefan Goerke -> G01<br />

Bearbeitungszeitraum:<br />

03.02.2009 - 30.06.2009


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 2


Inhaltsverzeichnis<br />

1Information und Planung....................................................................................................................1<br />

1.1Lastenheft....................................................................................................................................1<br />

1.2Pflichtenheft................................................................................................................................2<br />

1.3Lösungsansatz.............................................................................................................................3<br />

1.3.1Beschreibung des Lösungsansatzes im Überblick..............................................................3<br />

1.3.2Technologieschema.............................................................................................................4<br />

1.3.3Blockschaltplan...................................................................................................................4<br />

1.4Arbeitsplanung............................................................................................................................5<br />

1.5Kostenplanung............................................................................................................................5<br />

1.5.1Entwicklungskosten............................................................................................................5<br />

1.5.2Fertigungskosten.................................................................................................................6<br />

2Durchführung.....................................................................................................................................7<br />

2.1Hardware.....................................................................................................................................7<br />

2.1.1Schaltungsbeschreibung......................................................................................................7<br />

2.1.2Schaltplan............................................................................................................................8<br />

2.1.3Bestückungsplan für Prototypen ........................................................................................8<br />

2.1.4Bauteilliste ........................................................................................................9<br />

2.1.5Platinenlayout für Serienfertigung ( <strong>mit</strong> EAGLE)..............................................................9<br />

2.1.6Bestückungsplan für Serienfertigung ( <strong>mit</strong> EAGLE)..........................................................9<br />

2.1.7Verdrahtungs- und Anschlussplan....................................................................................10<br />

2.2Software....................................................................................................................................11<br />

2.2.1Entwicklungsumgebung / Programmiersprache...............................................................11<br />

2.2.2Programmbeschreibung....................................................................................................11<br />

2.2.3Programmablaufplan / Struktogramm...............................................................................12<br />

2.2.4Quelltext............................................................................................................................13<br />

3Kontrolle und Dokumentation..........................................................................................................20<br />

3.1Inbetriebnahme, Mess- und Prüfprotokolle..............................................................................20<br />

3.2Bedienungsanleitung.................................................................................................................21<br />

3.3Fotos..........................................................................................................................................22<br />

3.3.1Gesamtaufbau....................................................................................................................22<br />

3.3.2Bestückungsseite der Platine (beschriftet)........................................................................22<br />

3.4Kritik der eigenen Projektplanung und – durchführung...........................................................23<br />

3.4.1Zeitplanung.......................................................................................................................23<br />

3.4.2Kostenplanung, tatsächliche Kosten.................................................................................23<br />

3.4.3Gewählter Lösungsansatz..................................................................................................23


4Quellenverzeichnis...........................................................................................................................24<br />

4.1Datenblätter...............................................................................................................................24<br />

4.2Beispielprojekte........................................................................................................................40<br />

4.3Fachliteratur..............................................................................................................................42<br />

5.0 Fehlersuche/Probleme.............................................................................................................42<br />

5.1 Überschreitung der Zeitplanung.............................................................................................43


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

1 Information und Planung<br />

1.1 Lastenheft<br />

Projektbezeichnung: Drehzahlmesser für Motor<br />

Projektleiter: Stefan Goerke, Christian Radtke<br />

Liefertermin: 30.06.2009<br />

Zielbestimmung:<br />

Es soll die Motordrehzahl über eine 7 Segment Anzeige wieder gegeben werden,<br />

sowie die Drehrichtung <strong>mit</strong>tels LED´s sichtbar gemacht werden soll.<br />

Produkteinsatz:<br />

Es findet Anwendung in unserer Lackierstrecke, um sicherzustellen, dass sie <strong>mit</strong> der richtigen<br />

Geschwindigkeit läuft. Die Anzeige der Drehzahl, sowie der Richtungsanzeige eines Rotors, ist für<br />

die Farbcodierung wichtig.<br />

Produktfunktion:<br />

Die neue Schaltung soll es unserer Mitarbeiter ermöglichen, die Drehzahl zu überwachen. Sie muss<br />

Benutzerfreundlich aufgebaut sein und so<strong>mit</strong> leicht ersichtlich sein. Für die Drehrichtung stellen wir<br />

uns ebenso eine optische Anzeige vor. Die neue Schaltung muss erweiterbar für eine eventuelle<br />

Motorsteuerung sein.<br />

Produktdaten:<br />

Der geplante Drehzahlmesser soll möglichst präzise und genau messen. Aufgrund unserer Initiative<br />

„Energiebewusster Betrieb“ soll die Steuerung einen sehr niedrigen Stromverbrauch haben und sich<br />

von unseren Maschinenfahrern leicht ausschalten lassen. Um Software – Updates vorzunehmen und<br />

in der Firma <strong>mit</strong> Mikrocontroller von Atmel vertraut sind, bitten wir diese zu verwenden.<br />

Technische Spezifikationen:<br />

- niedriger Energieverbrauch<br />

- Anzeigen des Wertes (in U/min) auf einer 7-Segment-Anzeige (4 Glieder)<br />

- Versorgungsspannung durch Batterie: 9V<br />

- Mikrocontroller: Atmel<br />

Kosten: max. 20€<br />

Garantie: 2 Jahre<br />

Seite 1


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Lieferumfang:<br />

- Dokumentation von Materialien etc.<br />

- Schaltplan<br />

- Bedienungsanleitung<br />

- Mikrocontroller Programm<br />

- Präsentation für Kunden<br />

Datum der Erstellung: 03.02.2009<br />

Auftraggeber:<br />

1.2 Pflichtenheft<br />

Projektbezeichnung: Drehzahlmesser für Motor<br />

Projektleiter: Stefan Goerke, Christian Radtke<br />

Liefertermin: 30.06.2009<br />

Kosten: 19,75€<br />

Garantie: 3 Jahre<br />

Zielbestimmung:<br />

Die Drehzahl eines Motors einer Lackstrecke wird auf einer 7-Segment-Anzeige wieder gegeben.<br />

Als zusätzliche Funktion wird die Richtung über zwei unterschiedlich farbige LED´s angegeben.<br />

Produktfunktion:<br />

Mittels einer Gabel – Lichtschranke, werden zwei Signale pro Umdrehung der Rotorscheibe an den<br />

Mikrocontroller über<strong>mit</strong>telt. Aufgrund von unterschiedlichen Zeitabständen er<strong>mit</strong>telt der<br />

Mikrocontroller ob eine linke oder rechte Drehrichtung vorliegt.<br />

Die Drehzahl wird über eine 7-Segment Anzeige ausgegeben. Eine grüne LED zeigt rechte und eine<br />

rote LED linke Drehrichtung an. Die Schaltung wird von einer 9V Batterie gespeist und ist <strong>mit</strong> 1A<br />

abgesichert. Für das komfortable Ein- und Ausschalten dient ein Schiebeschalter. Ein<br />

Mikrocontroller der Firma Atmel ist <strong>mit</strong> einem ISP Adapter versehen und kann so<strong>mit</strong> direkt auf der<br />

Platine programmiert, so wie Software Updates vorgenommen werden.<br />

Der Mikrocontroller ist zusätzlich durch einen externen 4 MHz Quarzoszillator getaktet.<br />

Seite 2


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Produktdaten:<br />

Technische Spezifikationen:<br />

- <strong>Drehzahlmessung</strong> über Gabellichtschranke<br />

- Batteriehalterung vormontiert<br />

- Einschalten <strong>mit</strong>tels Kippschalter<br />

- Messbereich: 300…5000 U/min<br />

- Versorgungsspannung durch Batterie: 9V<br />

- Spannungsstabilisierung durch 5V Festspannungsregler<br />

- Mikrocontroller: Atmel<br />

Lieferumfang:<br />

- Dokumentation von Materialien etc.<br />

- Schaltplan<br />

- Bedienungsanleitung<br />

- Mikrocontroller Programm<br />

- Präsentation für Kunden<br />

Datum der Erstellung: 10.02.2009<br />

Auftraggeber:<br />

1.3 Lösungsansatz<br />

1.3.1 Beschreibung des Lösungsansatzes im Überblick<br />

Die Aufgabe beinhaltet die Anforderungen der Drehrichtungserkennung sowie die dazugehörige<br />

<strong>Drehzahlmessung</strong>. Als Vorgabe wurde ein 24V Gleichstrommotor gestellt. Aufgrund dessen wurde<br />

eine Rotorscheibe gefertigt, die auf den Anker des Motors montiert wurde. Um ein Signal zu<br />

erzeugen, was von der Lichtschranke erfasst werden kann, wurde eine dreieckige Aussparung in die<br />

Rotorscheibe integriert. Für die Drehrichtungserkennung wurde eine zweite Lichtschranke benötigt.<br />

Diese stellt sicher, dass aufgrund von unterschiedlichen Zeitzyklen die Drehrichtung exakt erfasst<br />

werden kann.<br />

Seite 3


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

1.3.2 Technologieschema<br />

1. Im Programmablauf des<br />

Mikrocontrollers wird immer erst der<br />

Interrupt durch Lichtschranke1 ausgelöst.<br />

Diese startet den Timer12.<br />

2. Wenn nun Lichtschranke2 einen „High“<br />

Pegel ausgibt, wird der Wert aus Timer12<br />

in einem Interrupt zwischengespeichert<br />

und zurückgesetzt. Timer21 wird gestartet.<br />

3. Gibt nun Lichtschranke1 ein erneutes „High“ Signal aus, wird nun der Wert aus Timer21<br />

zwischengespeichert und zurückgesetzt. Timer12 wird gestartet.<br />

Ein Ablauf aus Schritt 2. und 3. wiederholt sich. Einmal pro Sekunde werden die<br />

zwischengespeicherten Werte <strong>mit</strong>einander verglichen und die Richtung durch die LED´s sichtbar<br />

gemacht.<br />

1.3.3 Blockschaltplan<br />

Seite 4


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

1.4 Arbeitsplanung<br />

Anhand dieser Tabelle wird ersichtlich, wann und über welche Zeitdauer einzelne Arbeitsschritte<br />

geplant worden sind und durchgeführt wurden.<br />

1.5 Kostenplanung<br />

Die Kostenplanung wurde durch eine Kombination aus den Entwicklungskosten, sowie den<br />

Fertigungskosten erstellt. Für das Material wurde ein Budget von maximal 20€ angesetzt.<br />

1.5.1 Entwicklungskosten<br />

Arbeitslohn: pro Person / Stunde = 8 * 20,00€ = 160,00€<br />

Dienstleistungskosten / Stunde: = 8 * 2,00€ = 16,00€<br />

Auflistung der Arbeitstage: 03.02.2009 10.02.2009 17.02.2009<br />

24.02.2009 03.03.2009 10.03.2009<br />

17.03.2009 24.03.2009 31.03.2009<br />

28.04.2009 05.05.2009 12.05.2009<br />

19.05.2009 26.05.2009 09.06.2009<br />

16.06.2009 23.06.2009 30.06.2009<br />

= 18 Tage * ((Arbeitslohn *2)+Dienstleistungskosten = 336,00€) = 6048,00€<br />

Seite 5


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

1.5.2 Fertigungskosten<br />

Die Fertigungskosten, bzw. Materialkosten belaufen sich auf 19,61€ und sind so<strong>mit</strong> im Soll-Bereich<br />

des Budgets. Die sonstigen anfallenden Kosten, wie Stromkosten für den PC etc., die Benutzung der<br />

Werkzeuge, Kleinmaterial wie Lötzinn und ähnliches wurde bereits bei den Entwicklungskosten<br />

unter Dienstleistungen berücksichtigt.<br />

Gesamtkosten: Entwicklungskosten + Fertigungskosten<br />

6048,00€ + 19,71€<br />

= 6067,71€<br />

Seite 6


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

2 Durchführung<br />

2.1 Hardware<br />

Nachdem die Art der Durchführung bekannt war, wurde der entsprechende Schaltplan dazu<br />

entworfen und die Bauteile daraufhin dimensioniert. Die Hardware wurde auf einer Europlatine<br />

untergebracht, auf der gleichzeitig auch der Motor <strong>mit</strong> der Rotorscheibe montiert ist. Um die<br />

Wartungs- und Reparaturarbeiten zu minimieren wurden die IC´s alle gesockelt, um ein schnelles<br />

Austauschen zu gewährleisten. Für die komfortablere Anschlussmöglichkeit des Motors wurden<br />

Buchsen in die Platine integriert. Der sichere Stand der Platine wird durch Aluminiumfüße <strong>mit</strong><br />

rutschfestem Kunststoffuntergrund gestellt. Als Schutzfunktion wurde eine Feinsicherung verbaut,<br />

die bei zu großem Strom auslöst. Zusätzlich dazu lässt sich die Schaltung durch einen<br />

Schiebeschalter ein- und ausschalten. Das Signal, das von den Lichtschranken an den<br />

Mikrocontroller weitergegeben wird, sieht folgendermaßen aus:<br />

Hier sieht man ganz deutlich, dass saubere Rechtecksignale herausgegeben werden.<br />

2.1.1 Schaltungsbeschreibung<br />

Unsere Schaltung besteht aus einer integrierten Spannungsversorgung, sowie dem eigentlichen<br />

Steuerstromkreis. Als Spannungsquelle dient eine 9 Volt Blockbatterie, die in eine Halterung<br />

eingefasst ist. Um die Schaltung komplett ausschalten zu können, wurde ein Schiebeschalter<br />

vorgesehen, der die Spannungsversorgung unterbricht. Der Überstromschutz wurde durch eine 1<br />

Ampere Feinsicherung realisiert. Da die integrierten Schaltkreise, sowie die meisten Bauteile eine<br />

Versorgungsspannung von 5 Volt benötigen, haben wir einen entsprechenden Festspannungsregler<br />

<strong>mit</strong> Beschaltung zur Spannungsglättung verwendet. Zur eigentlichen Funktion ist nun folgendes zu<br />

sagen: Das Signal der Rotorscheibe wird durch die beiden Gabellichtschranken abgegriffen und die<br />

Signale an den Mikrocontroller weitergegeben. Dort werden diese verarbeitet und als BCD - Code<br />

an die 7-Segment Treiber weitergeleitet. In diesen IC´s werden die Daten in den Zwischenspeicher<br />

abgelegt, umgewandelt in 7-Segment und an die 7-Segment Anzeigen ausgegeben. Für die<br />

<strong>Drehrichtungsanzeige</strong> sind 2 LED´s zuständig, welche durch den Mikrocontroller angesprochen<br />

werden. Für den Systemtakt wird ein 4 MHz Quarzoszillator verwendet. Um das Programmieren<br />

des Mikrocontrollers in der Schaltung zu ermöglichen, wurde der ISP Adapter <strong>mit</strong> in die Schaltung<br />

eingebunden.<br />

Seite 7


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

2.1.2 Schaltplan<br />

2.1.3 Bestückungsplan für Prototypen<br />

Der Bestückungsplan für den Prototypen gleicht dem der Stückliste der Bauteile. Hierbei wurden<br />

die gleichen Mengen verbaut, wie es auch später in der Serienfertigung erfolgen soll. Der Prototyp<br />

besitzt ein spezielles Platinenlayout, welches durch die „Wire-Wrap“ - Technik realisiert wurde.<br />

Dieses ist ein dünner Draht <strong>mit</strong> einer Kunststoffisolierung. Vorteil dieser Technik ist es, dass man<br />

beliebig viele Drähte übereinander verlegen kann, ohne das eine Gefahr des Überspringen der<br />

Signale auf einen anderen Leiter besteht. Das fixieren erfolgt durch Schlaufen auf der Platine, die<br />

jederzeit geöffnet werden können, um neue Hardwareerweiterungen vorzunehmen.<br />

Seite 8


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

2.1.4 Bauteilliste<br />

2.1.5 Platinenlayout für Serienfertigung ( <strong>mit</strong> EAGLE)<br />

Aufgrund unserer eingeschränkten Möglichkeiten beim Ätzen von Platinen, wird der Schaltplan<br />

inklusive des Bestückungsplanes an eine Fachkundige Firma weitergegeben. Diese fertigen daraus<br />

das Platinenlayout, sowie alle dazugehörigen Komponenten, wie beispielsweise den<br />

Bestückungsplan. Diese Maßnahme ist bereits in der Kostenauflistung <strong>mit</strong> vorgesehen, sodass für<br />

sie in dieser Hinsicht keinerlei Kosten anfallen werden.<br />

2.1.6 Bestückungsplan für Serienfertigung ( <strong>mit</strong> EAGLE)<br />

Wie schon in Punkt 2.1.5 beschrieben wird der Bestückungsplan durch eine Fremdfirma realisiert.<br />

Die entsprechenden Pläne etc. erhalten Sie, sobald der Vertrag für eine Serienfertigung Ihrerseits<br />

unterschrieben wurde.<br />

Seite 9


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

2.1.7 Verdrahtungs- und Anschlussplan<br />

Der Verdrahtungs- und Anschlussplan ist dem Schaltplan zu entnehmen. Dort sind alle Bauteile <strong>mit</strong><br />

den entsprechenden Pinbelegungen und Bezeichnungen aufgeführt. Um die Verdrahtung des<br />

Prototypen noch einmal zu verdeutlichen sind nachfolgend ein Paar Bilder aufgeführt, welche<br />

Aufschluss über die Verlegeweise und Bezeichnungen geben.<br />

Seite 10


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

2.2 Software<br />

2.2.1 Entwicklungsumgebung / Programmiersprache<br />

– Umgebung: AVR Studio 4.16 SP2<br />

– Programmiersprache: C<br />

2.2.2 Programmbeschreibung<br />

– Die Signale der Gabellichtschranken lösen jeweils einen Interupt aus.<br />

– Der Interupt von Lichtschranke1 inkrementiert den unsigned int „usec“. Außerdem wird der<br />

unsigned char „lichtschranke“ auf „1“ gesetzt, da<strong>mit</strong> festgelegt wird, dass Lichtschranke1 als<br />

letztes ausgelöst wurde. Der Wert vom long int „timer21“* wird in den long int „wert21“<br />

„zwischengespeichert“ und zurückgesetzt. Durch eine if-Anweisung werden diese Befehle nur<br />

ausgeführt, wenn „lichtschranke“ den Wert „0“ hat. Dadurch können die Interupts der<br />

Lichtschranken nur abwechselnd ausgelöst werden.<br />

– Im Interupt von Lichtschranke2 wird der unsigned char „lichtschranke“ auf „0“ gesetzt, da<strong>mit</strong><br />

festgelegt wird, dass Lichtschranke2 als letztes ausgelöst wurde. Der Wert vom long int<br />

„timer12“* wird in den long int „wert12“ „zwischengespeichert“ und zurückgesetzt. Durch eine<br />

if-Anweisung werden diese Befehle nur ausgeführt, wenn „lichtschranke“ den Wert „1“ hat.<br />

Dadurch können die Interupts der Lichtschranken nur abwechselnd ausgelöst werden.<br />

* „timer 12“ und „timer21“ werden im nächsten Abschnitt erläutert<br />

– Der Timer0 löst alle 5 Systemtakte eine ISR (Interupt Service Routine) aus, in der „timer12“<br />

oder „timer21“ (abhängig davon, welchen Wert „lichtschranke“ hat) inkrementiert wird.<br />

– Der Timer1 löst einmal in der Sekunde aus und hat 2 Funktionen:<br />

– Die long ints „wert12“ und „wert21“ werden verglichen:<br />

– Ist „wert12“ größer, wird LED2 (Rechtslauf) angesteuert.<br />

– Ist „wert21“ größer, wird LED1 (Linkslauf) angesteuert.<br />

– Aus dem unsigned int „usec“ wird eine Drehzahl errechnet, und rechnerisch auf 4 Ziffern<br />

aufgeteilt. Diese Ziffern werden über den Datenbus nacheinander ausgegeben, während über<br />

4 weitere Leitungen jeweils der „Latch Enable“-Eingang von einem der 7-Segment-Treiber<br />

angesteuert und die Ziffer dadurch zwischengespeichert wird.<br />

Seite 11


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

2.2.3 Programmablaufplan / Struktogramm<br />

Seite 12


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

2.2.4 Quelltext<br />

#include <br />

#include <br />

//Jede Änderung an PIN C0 (Lichtschranke 1) oder PIN D5 (Lichtschranke 2)<br />

//löst einen Interrupt aus<br />

unsigned char lichtschranke; //legt fest, welcher Interupt ausgelöst werden darf<br />

unsigned char drehrichtungstimer; //zählt zeit für LS1->LS2 und LS2->LS1<br />

long timer12; //Timer von LS1 nach LS2 (inkrementiert bei Output<br />

Compare Match Flag UND lichtschranke=0b0000 0001)<br />

long timer21; //Timer von LS1 nach LS2 (inkrementiert bei Output<br />

Compare Match Flag UND lichtschranke=0b0000 0000)<br />

long wert12; //Ausgelesener Wert von Timer 12<br />

long wert21; //Ausgelesener Wert von Timer 21<br />

unsigned int a;<br />

unsigned char b;<br />

unsigned char c;<br />

unsigned char d;<br />

unsigned char e;<br />

long umin;<br />

long usec;<br />

//======================================================================<br />

============================<br />

Seite 13


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

ISR(PCINT1_vect) //Interrupt-Service-Routine (ISR)<br />

{ //für Lichtschranke 1<br />

if(lichtschranke==0b00000001) //char lichtschranke verhindert, dass einer der<br />

Lichtschranken-<br />

{ //Interupts zwei mal hintereinander<br />

ausgelöst wird<br />

}<br />

lichtschranke=0b00000000;<br />

wert21=timer21;<br />

timer21=0b00000000;<br />

}<br />

//======================================================================<br />

============================<br />

ISR(PCINT2_vect) //Interrupt-Service-Routine (ISR)<br />

{ //für Lichtschranke 2<br />

if(lichtschranke==0b00000000) //char lichtschranke verhindert, dass einer der<br />

Lichtschranken-<br />

{ //Interupts zwei mal hintereinander<br />

ausgelöst wird<br />

}<br />

lichtschranke=0b00000001;<br />

wert12=timer12;<br />

timer12=0b00000000;<br />

usec = usec + 1;<br />

}<br />

Seite 14


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

//======================================================================<br />

============================<br />

ISR(TIMER1_COMPA_vect)<br />

{<br />

TCNT1=0;<br />

if (wert12-wert21>0)<br />

{<br />

PORTB=PORTB & 0b11111100;<br />

PORTB=PORTB | 0b00000001;<br />

}<br />

if (wert12-wert21


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

d = d


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

}<br />

ISR(TIMER0_COMPA_vect)<br />

{<br />

TCNT0=0;<br />

if (lichtschranke==0b00000000) //Wenn Lichtschranke 1 aktiv is<br />

timer12=timer12+1; //...wird timer12 ein größer<br />

if (lichtschranke==0b00000001) //Wenn Lichtschranke 2 aktiv is<br />

timer21=timer21+1; //...wird timer21 ein größer<br />

}<br />

//======================================================================<br />

============================<br />

void init (void)<br />

{<br />

TCCR0B = TCCR0B | 0b00000001; //Systemtakt für Counter 0<br />

OCR0A = OCR0A | 0b00000001; //Output Compare Register A auf 21 setzen<br />

TCCR0A = TCCR0A | 0b01000010; //Set OC0A on Compare Match (OC0A wird gesetzt wenn<br />

counter 0 bis "5" zählt) / bit1 für ctc-modus<br />

Seite 17


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

TIMSK0 = TIMSK0 | 0b00000010; //Timer/Counter0 Output Compare Match A Interrupt Enable<br />

TCCR1B = TCCR1B | 0b11000101; //Systemtakt/1024 für Counter 1<br />

TCCR1A = TCCR1A | 0b01000010; //Set OC1A on Compare Match (OC1A wird gesetzt wenn<br />

counter 1 bis "65536" zählt) / bit1 für ctc-modus<br />

OCR1AH = OCR1AH | 0b11111111; //Output Compare Register (High/also die<br />

höherwertigen Bits)<br />

OCR1AL = OCR1AL | 0b11111111; //Output Compare Register (Low) beides zusammen<br />

ergibt 65536<br />

TIMSK1 = TIMSK1 | 0b00000010; //Timer/Counter1 Output Compare Match A Interrupt Enable<br />

}<br />

//======================================================================<br />

============================<br />

int main (void)<br />

{<br />

init();<br />

lichtschranke=0b00000001; //Initialisierungswert für lichtschranke<br />

DDRB=0b01000011; //PortB als Eingabe- und Ausgabeport<br />

DDRC=0b00011110; //PortC als Eingabe- und Ausgabeport<br />

DDRD=0b00001111; //PortD als Eingabe- und Ausgabeport<br />

Seite 18


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

PCICR = 0x06; //PCINT8 bis PCINT14 und PCINT16 bis PCINT23 global freischalten<br />

PCMSK1 =0x01; //PCINT8-Pin als Quelle zulassen<br />

PCMSK2 =0x20; //PCINT21-Pin als Quelle zulassen<br />

sei(); //Interrupts global freischalten<br />

while (1) //Hauptprogrammschleife<br />

}<br />

{<br />

}<br />

Seite 19


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

3 Kontrolle und Dokumentation<br />

3.1 Inbetriebnahme, Mess- und Prüfprotokolle<br />

Seite 20


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

3.2 Bedienungsanleitung<br />

Die Schaltung lässt sich durch den Schiebeschalter S1 ein- und ausschalten.<br />

An die Buchsen wird die Spannung für den Motor angelegt. Die maximale Spannung darf dort 24<br />

Volt betragen.<br />

Die Drehzahl wird auf der 7-Segment Anzeige in Umdrehungen pro Minute angezeigt. Die Grüne<br />

LED zeigt, dass der Motor rechts herum dreht und die Rote LED steht für linke Drehrichtung.<br />

Sollte die Schaltung mal nicht funktionieren, muss die Sicherung im Sicherungshalter überprüft<br />

oder die Batterie getauscht werden.<br />

Seite 21


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

3.3 Fotos<br />

3.3.1 Gesamtaufbau<br />

3.3.2 Bestückungsseite der Platine (beschriftet)<br />

Seite 22


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

3.4 Kritik der eigenen Projektplanung und – durchführung<br />

3.4.1 Zeitplanung<br />

Von der Zeitplanung her hat es nicht ganz so geklappt wie wir uns das vorgestellt hatten. Die<br />

Planungsphase war relativ schnell abgeschlossen. So hatten wir noch einen gewissen Zeitpuffer für<br />

die Durchführungsphase. Allerdings erwies auch der sich als nicht besonders groß, sodass wir<br />

Anfang Juni merkten, dass im Bereich der Softwareentwicklung die Zeit zu knapp werden würde.<br />

Etliche kleine Fehler beim Programmieren sorgten für akuten Zeitmangel. Trotz festgesetzter<br />

Stichtage für Abschnitte konnten wir zum Schluss nicht mehr gegen die Zeit arbeiten. Für das<br />

nächste Mal werden wir die Auslastung verändern und mehr Zeit für die Entwicklung berechnen.<br />

Die Aufgabe erwies sich umständlicher, als zuerst vermutet.<br />

3.4.2 Kostenplanung, tatsächliche Kosten<br />

Von den Kosten her würden wir sagen haben wir eine gute Planung an den Tag gelegt. Auch wenn<br />

das Projekt als noch nicht ganz abgeschlossen gilt, würden wir die benötigten „Überstunden“ <strong>mit</strong><br />

unserem eingeplanten Kostenvoranschlag abdecken können. Die 20€ stellten sich beim ersten hören<br />

als Problem dar. Allerdings machten wir uns dann zur Aufgabe, trotz stark begrenzter<br />

Budgetvorgabe, möglichst alle Funktionen durch günstige ,aber trotzdem qualitativ hochwertige,<br />

Bauteile zu bewältigen. Dieses ist uns so<strong>mit</strong> auch gut gelungen.<br />

3.4.3 Gewählter Lösungsansatz<br />

Unser Lösungsansatz war uns von Anfang an klar. Wir hatten während der gesamten Projektarbeit<br />

unser Ziel vor Augen. Es muss eine optische, sowie funktionelle einwandfreie Lösung gefunden<br />

werden. Deshalb stand auch sofort fest, dass wir alle möglichen Missverständnisse, sowie<br />

Sicherheitsdefizite vermeiden müssen. So haben wir beispielsweise einen Batteriehalter eingebaut,<br />

da<strong>mit</strong> es ersichtlich wird, dass eine 9V Blockbatterie als Spannungsquelle dient. Weiterhin dienen<br />

ein Schalter sowie eine Sicherung für Bedienerfreundlichkeit sowie als Schutzfunktion vor<br />

Überlastung.<br />

Seite 23


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

4 Quellenverzeichnis<br />

Das Projekt, sowie alle dazugehörigen Dateien lassen sich unter folgender Adresse wieder finden:<br />

4.1 Datenblätter<br />

Z:\EGS 3 - 2008 - Projekt\Projekte\G01 - Goerke, Radtke<br />

➢ 7-Segment Anzeige<br />

➢ Festspannungsregler<br />

➢ Quarzoszillator<br />

➢ Gabellichtschranke<br />

➢ Mikrocontroller<br />

➢ BCD/7-Segment Wandler / Treiber<br />

➢ Transistor<br />

Seite 24


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 25


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 26


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 27


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 28


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 29


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 30


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 31


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 32


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 33


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 34


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 35


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 36


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 37


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 38


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 39


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

4.2 Beispielprojekte<br />

➢ Projekt der <strong>Drehzahlmessung</strong> eines PC Lüfters<br />

Unser Projekt basiert auf einem Beispiel aus dem Internet. Allerdings hat wurde es in jeglicher<br />

Form abgewandelt und dementsprechend um modelliert. Um einen Einblick darüber zu geben,<br />

haben wir dieses Projekt hier noch einmal in Bildern zusammengefasst.<br />

Seite 40


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

Seite 41


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

4.3 Fachliteratur<br />

➢ http://www.sprut.de/electronic/pic/projekte/dehfan/drehfan.htm<br />

➢ http://de.wikipedia.org/wiki/Mikrocontroller<br />

➢ http://de.wikipedia.org/wiki/C_(Programmiersprache)<br />

➢ http://www.reichelt.de/<br />

➢ Tabellenbuch Automatisierungstechnik<br />

5.0 Fehlersuche/Probleme<br />

Während der Projektarbeit traten einige Fehler auf, die eigentlich nicht hätten auftreten sollen. So<br />

hatten wir beispielsweise das Problem, dass unsere Software in der Simulation auf dem PC<br />

einwandfrei funktionierte. Auf der Platine allerdings nicht. So<strong>mit</strong> fingen wir <strong>mit</strong> der Fehlersuche an,<br />

die nun in folgende Schritte gegliedert ist:<br />

1. Kontrolle ob ISP Adapter richtig funktioniert -> ok<br />

2. Kontrolle ob Strom vom MC für LED´s ausreicht -> nicht ok<br />

-> Schaltplan <strong>mit</strong> Transistoren ergänzt<br />

3. Kontrolle ob die Signale von den Gabellichtschranken kommen -> nicht ok<br />

-> eine Gabellichtschranke getauscht<br />

4. Kontrolle ob Funktion da -> ok<br />

5. Programmierung weiter durchgeführt<br />

Dementsprechend wurden auch auf der Platine zusätzliche Transistoren inklusive<br />

Basisvorwiderständen verbaut. Diese sind bereits im Schaltplan sowie den Stücklisten<br />

berücksichtigt. Folgendes Bild zeigt diese Änderung:<br />

Seite 42


<strong>Drehzahlmessung</strong>- und Richtungsanzeige<br />

5.1 Überschreitung der Zeitplanung<br />

Aufgrund von mangelnder Fertigstellung des Projektes wurde im Einverständnis <strong>mit</strong> dem<br />

Auftraggeber die Terminfrist auf den 07.07.2009 verschoben. Wir bedauern, dass es uns nicht<br />

möglich war diesen vereinbarten Termin einzuhalten.<br />

Seite 43

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!