Bordcomputer für Benzin-Roller
Hallo!
Ich möchte hier mein in Planung befindliches Projekt vorstellen. Es geht um die Realisierung eines Bordcomputers für einen Benzin-Roller. Der Roller ist im Prinzip ähnlich wie so ein kleiner Akku-Roller, hat nur im Gegensatz zu diesem einen kleinen Kolbenmotorantrieb (vom Hubraum her in etwa so wie eine kleine Motorsäge). Er ist zwar für den Straßenverkehr zugelassen, wird aber nur auf Privatgrund eingesetzt (damit fallen die STVO-Fragen weg).
Hier sind mal die Schaltpläne:
Blockschaltbild:
http://img91.imageshack.us/img91/719...onblockfi2.png
Spannungsversorgung:
http://img88.imageshack.us/img88/475...sorgungjn1.png
µC:
http://img91.imageshack.us/img91/160...ationucux5.png
Einige Fragen sind noch für mich zu klären, deshalb wende ich mich hier im Forum an euch. Es geht um folgendes:
1.) Nach Abschalten der Zündung (=Spannungsversorgung) sollen verschiedene Daten (Kilometerstand, Fahrzeit und ähnliches) in das interne EEPROM des AtMega8 geschrieben werden. Um die Versorgung des µCs zu puffern habe ich mir einen 1F/5,5V-Goldcap gekauft. Doch wie binde ich diesen am Besten ein? Außerdem habe ich eine Abschaltung des LCD-Displays über den Transistor T1 vorgesehen, wenn der Interrupt für "POWER-FAIL" kommt. Ist dies sinvoll?
2.) Die beiden Ports AIN0 und AIN1 sind nach meiner Planung für das erkennen des Spannungsausfalls zuständig. Wenn die Spannung an AIN0 kleiner ist als an AIN1 (4,2V) wird ein Interrupt ausgelöst. Ist dies so realisierbar.
3.) Kann die Diode D4 (im Versorgungs-Schaltplan) weggelassen werden, wenn ich den Abgriff für für R1/D5 vor D1 mache?
4.) Hab ich was generelles falsch gemacht?
Die Drehzahlerfassung erfolgt über das Reed-Relais K1. Dieses ist mit C3 (100nF KerKo) entprellt. Aufgrund der maximalen Geschwindigkeit des Rollers von ca. 25km/h (er fährt zwar schneller, aber das Ding ist dann relativ scher zu halten) und des Raddurchmessers von 30cm denke ich, dass ein Reed-Kontakt da schon mitkommt. Die Berechnung der Drehzahl habe ich mir wie folgt vorgestellt: Es werden nicht die Impule pro Sekunde gezählt, sondern die Zeit, die zwischen zwei Impulsen vergeht. Das sollte wesentlich schneller in der Berechnung sein, als die andere Methode.
Auf dem Display (4x16 Zeichen) sollen angezeigt werden:
* Geschwindigkeit
* Tages/Tourkilometer
* Gesamtkilometerstand
* Durchschnittsgeschwindigkeit
* Betriebszeit seit "Zündung Ein"
* Gesamtbetriebszeit
Die Navigation erfolgt über 4 Cursor-Tasten plus einer Enter-Taste. Damit lassen sich dann verschiedene Menüs anwählen.
Ich hoffe, ihr findet mein Projekt interessant und könnt mir Antworten auf meien Fragen geben, dafür gleich mal vielen Dank im Vorraus!
Freundliche Grüße aus Österreich,
Thomas
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!
Ich habe nun ein wenig weitergeplant.
Der Abgriff für "POWER-FAIL" ist nun über einen Spannungsteiler und A/D-Wandler realisiert werden - womit sich auch die Möglichkeit ergibt, die Bordspannung über das Display anzeigen zu lassen. Die Pufferung der +5V hält mein Freund (hauptberuflich Elektroniker) für genügen, um ins EEPROM zu schreiben.
Ansonsten haben sich nur unwesentliche Dinge verändert.
Lg
Thomas
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo!
Ich werde mal eine R-C-L-Kombination vorsehen, kostet ja nicht die Welt und Roland hat überzeugende Argumente in seinem letzten Beitrag geliefert. ;)
Inzwischen ist die Software schon relativ fertig, ich hab sie mal in den Anhang gepackt.
Folgende Zeilen machen mir noch etwas Gedanken:
Code:
'EEPROM LESEN
Readeeprom Kmges , 10
Readeeprom Kmtag , 20
Passen die beiden Variablen an die dafür vorgesehenen Stellen im EEPROM auch sicher hinein oder überschneiden sie sich? Der Simulator sagt zwar, dass es sich ausgeht aber ich trau ihm nicht so recht.
Code:
Toggle Stat_timer0
If Stat_timer0 = 1 Then Start Timer0 Else Stop Timer0
Tut der das wirklich?
Es fehlen noch:
* Ansteuerung der Status-LEDs
* Stromsparmodus (kommt nur, wenn ich die Schaltung per Batterie versorge)
* Störungstexte + Abfragen (kommen aber erst in V2.0)
* Eventuelle Menü-Erweiterungen
Die Hardware ist noch nicht fertiggestellt, der Roller steht noch immer nicht in meinem Keller. Aus diesem Grund habe ich auch noch keine Spannungsmessungen am Bordnetz durchführen können, welche über die Spannungsversorgung des Bordcomputers entscheiden.
MfG
Thomas
Liste der Anhänge anzeigen (Anzahl: 1)
So, ich habe mir nun das Problem mal genauer angesehen. Zuerst tat sich beim Bewegen des Rollers gar nichts, dann ging ich ins Menü und betätigte die Auswahl "Reset Km-Tag". Anschließend zeigte mir das Display im Grundbild 00.00km an, wo hingegen vorher ein negatives Vorzeichen davorstand. Nun zählte er bei der Radumdrehung die Radumdrehung dazu - funktioniert soweit. Jedoch änderte sich am Gesamtkilometerstand nichts. Ich habe dann per PC den Wert vom Tageskilometerstand in die Position des Gesamtkilometerstandes im EEPROM kopiert - nun zählen beide Kilometerzähler hoch. Anscheinend hatte das negative Vorzeichen irgendwas am addieren der Werte verhindert. (?)
Jedoch bleibt das Problem bestehen, dass ich keine Geschwindigkeit angezeigt bekomme - weder in km/h noch in m/s. Ich habe den Code daraufhin etwas umgeschrieben, was jedoch keinerlei Wirkung zeigte. Allerdings weiß ich jetzt sicher, dass die Interruptroutine bei jeder Radumdrehung zuverlässig angezeigt wird - sonst würde sich ja der Kilometerstand nicht ändern.
Könnte jemand mal kurz den Code durchsehen, speziell die Bereiche
+ Int0_isr
+ Timer0_isr[/list]
+ Berechnung der Geschwindigkeit in der Main-Loop
+ Umwandlung der Werte für die Ausgabe (ebenfalls Main-Loop).
Vielleicht übersehe ich ja die ganze Zeit etwas.
Vielen Dank für eure Mithilfe,
Thomas
;)