Drehzahlmessung mit Drehrichtungsanzeige

Drehzahlmessung mit Drehrichtungsanzeige Drehzahlmessung mit Drehrichtungsanzeige

26.10.2012 Aufrufe

Drehzahlmessung mit integrierter Richtungsanzeige Christian Radtke, Stefan Goerke -> G01 Bearbeitungszeitraum: 03.02.2009 - 30.06.2009

<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!