Schriftliche
Problemlösung
Der Versuchsaufbau wurde wie oben beschrieben mit einer
Gabellichtschranke erweitert. Die Leuchtdiode der Gabellichtschranke
wird über einen Vorwiderstand von 330 Ω fortwährend mit Spannung
versorgt (siehe Abbildung unten). Je nach Position der Lochscheibe
beleuchtet die Leuchtdiode den Fototransistor, der im gleichen Gehäuse
untergebracht ist. Wenn der Fototransistor abgedunkelt ist und somit
sperrt (hochohmig), liegt zwischen ihm und dem vorgeschalteten
Pullup-Widerstand 2,2 kΩ die gesamte Betriebsspannung an. Diese wird
dann am Port D5 des ATmega8 als HIGH-Signal gewertet. Wenn der
Fototransistor von der Leuchtdiode beleuchtet wird, wird er
niederohmig und "zieht" das Potential am Port D5 auf 0 Volt
(LOW-Signal). Die Gabellichtschranke verhält sich also analog der
Taster, die sich auf dem myAVR-Board befinden.
Bei sich drehender Lochscheibe ist dann eine Rechteckspannung am
Port D5 messbar, die zur Geschwindigkeitsbestimmung herangezogen
werden soll. Geschwindigkeit ist in diesem Fall als Umdrehungen pro
Zeiteinheit definiert. Die eingehenden Impulse müssten in einer
Variablen gezählt werden. Zum Beispiel so: Warten auf das
LOW-Signal, Zählvariable inkrementieren, solange noch LOW-Signal,
nichts tun, erneutes Warten auf das LOW-Signal für den nächsten
Zählschritt. Zu klären wäre, ob Gabellichtschranken prellen.
Parallel hierzu muss z. B. eine Zeitspanne von einer Sekunde
(U/Sekunde) ablaufen, die bei Erreichen der Sekunde die Zählvariable
zurücksetzt. Ideal wäre ein Timer des ATmega8, da er parallel zu der
Impulszählung arbeiten könnte. Bei der Konfiguration des Timers sind
noch zwei Punkte zu berücksichtigen: die Lochscheibe hat vier Löcher
und die Geschwindigkeit soll in Umdrehungen pro Minute angegeben
werden.
Das Zählergebnis wird nun in regelmäßigen Abständen über die
serielle Schnittstellen des ATmega8 an das Hyperterminal des PCs
gesendet. Die Konfiguration und Verwendung der Schnittstelle des
ATmega8 kann in dem unten stehenden C-Quelltext eingesehen werden.
Der Zeilenumbruch nach jedem Messwert im oben dargestellten
Hyperterminal muss ebenfalls vom ATmega8 gesendet werden (Tipp:
sende ("\n\r Text Text"); ).
Das Importieren der gemessenen Geschwindigkeiten in MS Excel setzt
voraus, dass das Hyperterminal die Daten in einer Textdatei
aufzeichnet (siehe Screenshots unten). Der Abfrageassistent in Excel
liest die Textdatei automatisch ein, leider mit dem Nachteil, dass
eine Aktualisierung minimal minütlich erfolgen kann. Um
zweisekündlich einzulesen, müsste ein Makro z. B. mit der
VBA-delay-Funktion das Importieren der Daten übernehmen.
Der Verlauf der Umdrehungszahl kann in MS Excel anschaulich
dargestellt werden. Hierfür ist es jedoch einfacher, wenn die
Umdrehungszahl nicht in der gleichen Zelle steht wie die Maßeinheit
(U/s bzw. U/min). Dies lässt sich dadurch bewirken, dass vor der
Maßeinheit noch ein Leerzeichen gesendet wird. Der
Textimportassistent in MS Excel kann anhand eines Leerzeichens zwei
Daten voneinander trennen. Mit der Spalte der Umdrehungszahl soll
abschließend eine Kennlinie erzeugt werden.
Unter anderem lässt sich mit der Kennlinie ermitteln, welche Arbeit
aufgebracht werden musste um den Motor auf Nenndrehzahl zu
beschleunigen. Könnte MS Excel dies auch automatisch berechnen?
Gutes Gelingen!!!
Noch ein Tipp zum Testen mit dem Board:
Zu Hause ist die Motorstrecke nicht verfügbar. Zur Simulation der
Gabellichtschrankenimpulse
kann jedoch die die PWM verwendet werden, die sonst den
Motortreiberbaustein L 293 D ansteuert.
Vorab ist zu überlegen, auf welchen sinnvollen Wert die PWM in
diesem Fall zu konfigurieren ist.
|
|