Motorüberwachung, Spritcomputer etc. mit
Mikroprozessor (aktuelle Schaltung)
Hinweise:
Diese
Beschreibung
dient mir selbst als Dokumentation, soll aber auch anderen für
ähnliche Projekte eine Hilfestellung geben. ABER! Wie immer
der
Nachbau erfolgt auf eigene Gefahr, ich übernehme keinerlei
Gewähr für die ordnungsgemäße
Funktion und
eventuell rechtliche Folgen für den Nachbauer.
Über eventuelle Kommentare, Fragen etc. zum Thema freue ich
mich
(Mailadresse siehe Startseite). Bitte aber um Verständnis,
wenn
ich Anfragen erst nach einigen Tagen beantworte. Ich arbeite beruflich
täglich 8-10 Stunden mit dem PC und habe deshalb abends meist
keine Lust mehr meine eigene Kiste an zuwerfen und verschiebe dies
deshalb meist auf das Wochenende.
Im Rahmen meiner Möglichkeiten unterstütze ich Bootskollegen
gerne, die diese Schaltung nachbauen wollen. Aber ich bin nicht bereit,
auch nicht gegen Geld, irgendwelche Teile anzufertigen. Wer keinen Spaß am basteln hat und wer nicht weiß wo Anode
oder Kathode einer Diode ist, der sollte lieber zu käuflichen
Serienlösungen greifen.
Links werde ich - wie immer - kaum angeben, ich habe einfach keine Lust
mich eventuell für fremde Inhalte verantwortlich machen zu
lassen.
Aber Tante G.. findet die angegebenen Bezeichnungen etc. auf jeden
Fall.
Diese Seite ist noch im Aufbau!
Warum ein Mikroprozessor?
Nach den bisherigen, eigentlich guten Erfahrungen mit dem PC
an
Bord, möchte ich die Funktionalität weiter
verbessern.
Der PC hat sich zwar grundsätzlich als geeignet erwiesen (im
Auto
möchte ich meinen Car-PC nicht mehr missen), aber es gibt
leider auch
einige Mankos.
So nützt der beste PC und auch das beste
Überwachungsprogramm nichts,
wenn der PC nicht läuft oder wie bereits einmal (aber nur ein
einziges
Mal) geschehen sich mit einem Bluescreen verabschiedet.
Der PC braucht einiges an Strom, auch die eigentlich geringen 3-4A
saugen über Nacht die Batterie leer.
Und es sind einige Klimmzüge nötig um über
den
Startvorgang (Spannungseinbruch) zu kommen, ohne dass der Rechner
abschmiert.
Trotz Ruhezustand braucht der PC einige Zeit um betriebsbereit zu sein.
Auch das Display ist nicht gerade
“sonnenlicht-tauglich” und zudem
schwer vor Spritzwasser zu schützen.
Was plane ich deshalb?
-Unveränderte Datenerfassung mittels 1-wire Komponenten *)
-Meßwerterfassung über ATMega *)
-Grenzwerterfassung und Alarmierung über ATMega *)
-Weiterleitung der Messdaten an einen PC über serielle
Schnittstelle *)
-Funktionen:
-Temperaturüberwachung *)
-Drehzahlmessung Motor *)
-Spritverbrauch Motor *)
-Geschwindigkeit (über GPS) und Log (eventuell auf SD-Karte) *)
-sämtliche denkbaren Spritcomputerfunktionen (u.a. aktueller
Spritverbrauch, l/100km, l/h, Restmenge, voraussichtliche Reichweite..) *)
-Batteriemonitoring (Spannung, Strom, Batterieladezustand etc.)
-Alarmanlage (eventuell mit Alarmierung über Handy)
-Ausgänge (Relais, LED, Hupe) *)
-Display: graphisches, transflektives Display 2,1″
-Bluetooth-Schnittstelle zum Anzeigen und steuern über Tablet bzw. Smartphone
Hab ich was vergessen? Dürfte kein Problem sein, die
Software ist geduldig..
*) Die so gekennzeichneten Funktionen sind bereits verwirklicht (Stand: Januar 2012)
Hier das entsprechende Schema:
Schaltung

Platine
Hier die Ansicht der unbestückten Platine mit den eingezeichneten Bauteilen (Zuordnung nach Stückliste)

(Achtung: Platine ist noch Rev. 03, jedoch habe ich die zusätzlichen Bauteile und Brücken eingezeichnet)
Hinweise:
- Bei den Kondensatoren, habe ich da wo es drauf ankommt den Minuspol mit einem Strich markiert
- Bei den Dioden habe ich die Kathode (Ring am Bauteil) mit einem Strich markiert.
- Pins welche über Drahtbrücken verbunden sind, wurden mit einem Strich verbunden.
- Bei ICs wurde der Pin 1 markiert. Dieser Pin liegt immer auf der Seite des Bauteils, an der sich die Kerbe befindet.
- Im Zweifelsfall gilt immer der Schaltplan!
Die komplett bestückte Platine

Auch hier ist die Lage der Bauteile gut zu erkennen.
Zusätzlich sieht man den roten Draht, welcher von der
Eingangsdrossel zur Klemme A.4 führt. Damit kann vom MC die
Höhe der Versorgungsspannung gemessen und angezeigt werden.
Die beiden seriellen Schnittstellenstecker auf der linken Seite der
Platine habe ich im entgültigen Ausbau nicht bestückt,
sondern an die erste serielle Schnittstelle direkt ein GPS-Modul
angeschlossen. Die zweite serielle Schnittstelle habe ich über
kurze Kabel an die Gehäusewand geführt. So ist diese
einfacher abzudichten (siehe unten).
Stückliste
(nur für Platinenbestückung)
Stückliste Rev. 05
Gehäuse incl. GPS-Modul
Die Platine wurde in ein wasserdichtes Kunststoffgehäuse
eingebaut. Die Kabel wurden über PG-Verschraubungen ins
Gehäuse geführt. Für die zweite serielle Schnittstelle
wurde ein eigener Stecker ins Gehäuse geklebt und dieser mit
kurzen Kabelstücken mit der Platine verbunden.. Die erste serielle
Schnittstelle, die zum Anschluss des GPS-Gerätes dient wurde nicht
nach außen geführt, sondern es wurde ein Navilock GPS-Modul
(Navilock 550ERS) direkt angeschlossen und in das Gehäuse
integriert (siehe Deckel
oben im Bild) . So ist der MC GPS-autark. Dies ist auch für die
später vorgesehene Zusatzfunktion Positionsüberwachung sehr
vorteilhaft, da dann kein zusätzliches externes GPS-Gerät mit
Spannung versorgt werden muss.
Die Flachbandkabel für Taster, Display und LEDs wurden auf eine
Zwischenplatine geführt und von dort wieder mittels zweier
zehnpoliger Stecker zum Display. So kann auch diese Verbindung
jederzeit getrennt werden.
Display
Das verwendete Display ist HD44780 kompatibel und hat 2 x 20 Zeichen und eine weiße Hntergrundbeleuchtung.
Ich habe es über Ebay bezogen. Grundsätzlich läßt sich jedes HD44780 kompatible Display verwenden.
Es wird über einen 10-poligen Stecker mit dem MC verbunden.
Da die Spannung für das Backlight ebenfalls über das
Kabel
geführt wird, besteht die
Möglichkeit dieses
über den MC ein-/auszuschalten.
benötigte Anschlüsse:
Display Pin |
Bez. |
Fkt. |
Anschluss an Verbindungskabel |
Verbindung intern |
Pin # 10-pol. Stecker WS 1 |
Pin MC |
#1 |
Vss |
Gnd |
ja, Gnd |
- |
1 |
- |
#2 |
Vdd |
+5V |
ja, +5V |
- |
2 |
- |
#3 |
Vo |
Kontrast |
- |
Poti |
|
- |
#4 |
RS |
Register select |
ja |
- |
3 |
PA2 |
#5 |
R/W |
read/write |
- |
Gnd |
|
|
#6 |
E |
enable |
ja |
- |
4 |
PC2 |
#7 |
DB0 |
Data |
- |
- |
|
- |
#8 |
DB1 |
Data |
- |
- |
|
- |
#9 |
DB2 |
Data |
- |
- |
|
- |
#10 |
DB3 |
Data |
- |
- |
|
- |
#11 |
DB4 |
Data |
ja |
- |
6 |
PC4 |
#12 |
DB5 |
Data |
ja |
- |
7 |
PC5 |
#13 |
DB6 |
Data |
ja |
- |
8 |
PC6 |
#14 |
DB7 |
Data |
ja |
- |
9 |
PC7 |
#15 |
A |
Backlight +5V |
- |
+5V |
|
- |
#16 |
K |
Backlight Gnd |
ja |
|
10 |
GND |
Das 10-polige Flachbandkabel habe ich an das Display entsprechend oberer Tabelle gelötet,
dabei wurde auf der Displayseite das Kabel #5 abgetrennt. Dieses findet
nur bei Displays mit zwei "Enable"-Leitungen Verwendung.
Nun fehlen noch zwei Drahtbrücken:
1x von LCD Pin#1 (GND) nach LCD
Pin#5 (R/W). Diese wird auf der Displayseite angebracht.
1x von LCD Pin
#2 (+5V) an LCD Pin "A"
(Backlight +5V).
Der LCD
Pin
#3 (Kontrast) wird mit dem mittleren Pol des Drehpotis (Pos. 203)
verbunden. Die beiden anderen Anschlüsse des Potis werden an
+5V
und an Gnd gelegt. Mit dem Poti kann der Kontrast eingestellt werden.
Achtung: Wie ich leidvoll feststellen musste entspricht der Pin
"A" auf der Display-Schmalseite nicht dem Pin "A" am Anschlussfeld. Der
Pin "A" am Anschlussfeld ist der richtige für den
+5V-Anschluss.
Der Pin "A" an der Schmalseite ist ohne Vorwiderstand!.
Bei den gemessenen 140mA waren am falschen Pol angeschlossen.
Lange hat das das Backlight nicht ausgehalten. Jetzt ist es deutlich
dunkler und braucht nur noch 30mA (richtig angeschlossen).
Der 10-polige Stecker wird so angebracht wie auf dem Foto ersichtlich:

Das rot markierte Kabel ist #1.
Pos. |
Name |
Wert |
Artikelnummer Reichelt (wenn nicht anders angegeben) |
Display |
|
|
|
200 |
Display |
|
|
201 |
Flachbandkabel |
AWG 28, 10-pol, |
AWG28-10G 3M |
202 |
Pfostenbuchse |
10-pol. |
PFL 10 |
203 |
Einstellpoti |
10k |
PT 10-S 10k |
Bedientaster
Für die Bedientaster wurden wasserdichte Ausführungen verwendet.
Auch die Bedientaster werden
über
einen 10-poligen Stecker angeschlossen. Durch die Verwendung eines
eigenen Steckers besteht die Möglichkeit die Taster vom
Display
abzusetzen.
Die Taster werden an die MC Pins PD4, PD5, PD6 und PD7 angeschlossen.
Sie schalten den entsprechenden Pin nach Ground (Gnd). Diesmal wird die
entsprechende Aussparung an der Wanne nach hinten gesetzt. So haben wir
einen gewissen Schutz gegen vertauschen mit dem Displayanschluss.
Die vordersten fünf Anschlüsse (Pin 2, 4, 6, 8, 10)
werden
auf Ground gelegt, die linken vier der hinteren Anschlüsse
werden
zu den entsprechenden Verbindungspunkten geführt. So kann die
Verkabelung einfach durchgeführt werden. Damit liegt Pin #1
des
Wannensteckers WS2 rechts hinten. WS2 Pin #1 bleibt frei, WS2 Pin #3
wird mit Anschluss #4 (PD4), WS2 Pin #5 mit Anschluss #5 (PD5), WS2 Pin
#7 mit Anschluss #6 (PD6) und WS2 Pin #9 mit Anschluss #7 (PD7)
verbunden (siehe Tabelle 4 oben). WS2 Pin#1 bleibt frei.
Zusatz: Die oben genannte Belegung entspricht dem Stecker auf der
Platine. Ich habe später dann um Kabel zum Display zu sparen einen
Zwischenstecker angefertigt, der nur GND und die vier
Tastereingänge auf ein zehnpoliges Kabel geführt hat. Die
verbleibenden 5 Adern habe ich dann mit den Ausgängen (GND +
Vorwiderstand) für die fünf LEDs belegt. So reichen mir zwei
zehnpolige Flachbandkabel zum Display. Die für die LEDs
benötigte positive Spannung (+5V) ist ja bereits am Display
vorhanden.
Durch die Zugentlastung (fehlt im Bild noch) ergibt sich die richtige
Anordnung des Steckers.
Pos. |
Name |
Wert |
Artikelnummer Reichelt (wenn nicht anders angegeben) |
Bedientaster |
|
|
|
301-304 |
Taster |
|
beliebig |
305 |
Pfostenbuchse |
10-pol. |
PFL 10 |
306 |
Flachbandkabel |
AWG 28, 10-pol, |
AWG28-10G (gemeinsam mit Pos. 21) |
Gehäuse für Display und Bedientaster
Ein sehr guter Freund hat mir ein
passendes Gehäuse für das Display angefertigt. Es besteht aus
zwei Plexiglasscheiben, zwei Gummimatten und einem Zwischenstück
aus Aluminium.
Wie man sieht (oberhalb der Anzeige) habe ich auch noch 5 Ausgänge
des MCs zum Display geführt und daran LEDs zur Signalisierung
angeschlossen.
Schaltausgänge
a) kein 1-wire
Die Schaltung verfügt über sechs Schaltausgänge (siehe
oben Mitte B.2 bis B.7). Diese Ausgänge sind sog.
Open-Collector-Ausgänge. D.h. der entsprechende Ausgang wird auf
GND (=Masse) geschaltet. An diese Ausgänge habe ich fünf LEDs
zur Statusanzeige und einen 5V-Summer angeschlossen.
Theoretisch lassen sich auch Relais etc. damit betreiben.
Werden Relais angeschlossen so darf die zugehörige
Freilaufdiode nicht vergessen werden!
b) 1-wire
Es ist vorgesehen weitere Schaltausgänge mittels 1-wire
Bausteinen zu verwirklichen. Hierzu werde ich die Unterstützung
von DS2413 und eventuel auch DS2405/6 in den Mikroprozessor integrieren.
Eingänge
a) Bedientaster (siehe oben)
b) Analoge Spannungseingänge
Die Schaltung stellt bis zu vier analoge
Spannungseingänge zur Verfügung. Dabei ist zu beachten, dass
der MC nur Spannungen bis maximal 5V verarbeiten kann. Deshalb ist auf
der Schaltung Platz für entsprechende Spannungsteiler vorgesehen.
Die Spannungsteiler sind immer so auszulegen, dass die maximale
Spannung von 5V nie überschritten wird. Die Widerstände
für den Spannungsteiler sollten im Kiloohm-Bereich liegen.
Zu Zeit wird nur eine Spannung vom MC angezeigt. Diese Spannung liegt
am Eingang "Analog 1" = MC-Eingang A.4 an. Ich messe damit die
Bordspannung (12V) und habe hierfür eine Leitung vom Punkt hinter
der Eingangsdrossel zur entsprechenden Klemme geführt (rotes Kabel
oben im Bild).
b) 1-wire Eingänge
Sämtliche Temperaturen auf dem Boot insbesondere des Motors werden mittels 1-wire Bausteinen (DS18B20) erfasst.
Die 1-wire Verkabelung des Bootes besteht aus 1-wire Ground,
1-wire Data und 1-wire Power (+5V). Ich verwende hierfür
geschirmte 4-adrige ISDN-Kabel. Die MC-Schaltung ist bereits
für zwei getrennte 1-wire Buse ausgelegt. Derzeit wird aber nur
einer davon verwendet (1-wire Data 1). Die entsprechenden Kabel werden
an die entsprechenden Klemmen auf der rechten Seite der Platine
angeschlossen. Genauer gesagt , habe ich die entsprechenden Kabel
durch den Deckel des Gehäuses in einen Anschlusskasten
geführt und gehe von dort über eine Westernbuchse (wie beim
Telefon) auf den 1-wire-Bus.
c) Optokopplereingänge
für Zähler
Um bei den Zähleingängen möglichst
universell zu sein und die Schaltung von externen Störspannungen
zu schützen, werden hierfür Optokoppler eingesetzt. Der
Aufbau entspricht hierbei weitestgehend den von
Digmessa in ihren Datenblättern vorgeschlagenen "optocoupler
interface". Damit können diese Sensoren direkt angeklemmt
werden.
Drehzahlmesser
Hierzu verwende ich eine "Quick and Dirty"-Lösung, welche aber in meinem Boot
bereits seit gut drei Jahren so problemlos funktioniert, dass ich
derzeit keinen Grund sehe etwas daran zu ändern.Die Lösung ist aus
dem Versuch entstanden meinen Gaszähler (im Haus nicht im Boot ;-) )
elektronisch abzutasten. Dazu wird ein sog. Reflexkoppler CNY70
verwendet. Das ist im Grunde genommen eine (IR-)Sende- und
Empfangsdiode in einem Gehäuse.
Das Ausgangssignal wird mittels eines Komparators "digitalisiert" und vom MC gezählt.
Ich
habe dazu auf einer Riemenscheibe am Motor, welche mit
Kurbelwellendrehzahl läuft einen Reflektor aus Alufolie angebracht. Die
Alufolie überdeckt dabei ca. 180°. Der Reflexkoppler befindet sich ca.
5mm davor.
Der große Vorteil dieser Vorgehensweise ist, dass
keinerlei elektrische Verbindung mit der Motorelektronik nötig ist und
somit auch die Gefahr für den MC an Überspannungen zu sterben gering
ist. Auch spielt es keinerlei Rolle, ob es sich beim Motor um einen
Benziner, Diesel, Viertakter, 1-, 2-, 4-, 6- oder 8-Zylinder handelt.
Es treten immer genau zwei Helligkeitswechsel pro Umdrehung auf. Sollte
es mal nicht möglich sein eine mit Kurbelwellendrehzahl laufende
Scheibe abzutasten, so kann der MC selbstverständlich eine
entsprechende Anpassung vornehmen.
Selbstverständlich sind auch
andere Arten der Drehzahlmessung möglich. Wichtig ist nur, dass am
entsprechenden Optokopplereingang ein entsprechendes digitales Signal (open collector) ankommt.
In einer späteren Ausbaustufe werde ich z.B. den
an meinem Motor bereits vorhandenen aber nicht benützten
Kurbelwellensensor verwenden.
Die
Schaltung wird auf einer eigenen kleinen Leiterplatte aufgebaut. Diese Leiterplatte nenne ich nachfolgend nur DS1.
Sensor (Reflexkoppler) CNY 70:
Diesen Sensor wird über drei Anschlussdrähte mit DS1
verbunden (Länge nach Bedarf), da man zwei der vier Pins zusammenfassen
kann.
Jetzt wird's etwas tricky. Grund ist, dass es den CNY70 von
verschiedenen Firmen und leider mit unterschiedlichen Ausführungen der
Anschlüsse gibt.
Der von mir verwendete Vishay-Typ wird folgendermassen angeschlossen:
Sensor
so halten, dass die Anschlüssen von einem weg zeigen, man also auf die
Linsen blickt. Den Sensor so drehen, dass die beschriftete Seite nach
rechts zeigt (3 Uhr).
Nun den Anschluss der sich links oben befindet
mit dem Anschluss, welcher sich rechts unten befindet, diagonal verbinden. An
die beiden verbundenen Pins einen Anschlussdraht löten. Das ist der +5V
Anschluss. Dieser wird mit einem schwarzen Strich am Kabel markiert.
Den Pin
links unten ebenfalls mit einem Draht verbinden, das ist die Kathode
der Sendediode. Dieses Kabel wird mit zwei schwarzen Strichen markiert.
Dieser Anschluss wird dann über den Vorwiderstand auf Masse gelegt.
Nun wird noch der Pin rechts oben mit einem Draht verbunden, das ist er
Emitter des Fototransistors. Dieses Kabel bleibt unmarkiert.
Das sieht dann so aus:

Auf dem Photo nicht gut zu sehen: Das mittlere Kabel geht an die zwei diagonal liegenden Pins.
Um zu überprüfen, ob der Sensor richtig beschaltet ist,
sprich ob die IR-LED leuchtet verwende ich meine Digitalkamera.
Wenn man damit den eingeschalteten Sensor fotografiert, dann sieht das so aus:
Achtung! Auch wenn man
das Licht nicht, bzw. kaum sieht, kann es für die Augen
schädlich sein! Nicht reinsehen! Nur durch die Digicam!
Hier nun der Schaltplan des Messverstärkers: 
Die Verbindungen können fest verlötet oder über Klemmen ausgeführt werden.
Stückliste für Drehzahlmesser
Pos. |
Name |
Wert |
Artikelnummer Reichelt (wenn nicht anders angegeben) |
401 |
Lochrasterplatine |
Hartpapier, 50x100mm |
H25PR050 |
402 |
Reflexkoppler |
CNY 70 |
CNY 70 |
403 |
Comparator, DIP-8 |
LM 393 |
LM 393 DIP |
404 |
Transistor |
BC337 |
BC 337-16 |
405 |
Spindeltrimmer |
10k |
962-20 10K |
406 |
Widerstand |
220 Ohm |
1/4W 220 |
407 |
Widerstand |
330 Ohm |
1/4W 330 |
408 |
Widerstand |
4k7 |
1/4W 4,7k |
409 |
Widerstand |
20k |
1/4W 20k |
410 |
Widerstand |
20k |
1/4W 20k |
411 |
Anschlussklemme |
2-polig |
AKL 101-02 |
412 |
LED |
rot |
LED 5mm RT |

Im linken Bild befindet sich der Reflexkoppler über der Alufolie -> die LED leuchtet.
Im rechten Bild befindet sich der Reflexkoppler über dem schwarzen Klebeband -> die LED ist aus.
Wer den Abgleich nicht nur nach Gefühl machen will sollte folgendermassen vorgehen:
- CNY70 über die dunkle Fläche halten. Spannung am Anschluss 3 des LM393 gegen Masse messen. (z.B. 0,2V)
- CNY70 über die helle Fläche halten. Spannung am Anschluss 3 des LM393 gegen Masse messen. (z.B. 2,4V)
- Mittelwert der beiden Spannungen bilden (im Beispiel (0,2V + 2,4V) /2 = 2,6V / 2 = 1,3 V )
- Nun das Spindelpoti so einstellen, dass am Pin 2 des LM393 genau diese Spannung (im Bsp. 1,3V) anliegen.
Die LED1 und der Widerstand R5 kann selbstverständlich auch
weggelassen werden. Sie dienen nur zur einfacheren Einstellung des
Sensors.
Für den Test der Schaltung habe ich mir einen Drehzahlsimulator aus einem alten Lüfter gebaut.
Da dieser Lüfter nur mit ca. 2000/min läuft wurde durch
entsprechende Gestaltung des Reflektors dafür gesorgt, dass sich
mehrere Helligkeitswechsel pro Umdrehung ergeben.
So kann ich wesentlich höhere Drehzahlen simulieren. Im gegebenen
Fall mit Faktor 4, also bis zu 8000/min. Das sollte reichen.
Testaufbau Stand: 11.12.2010 (noch mit AVR-Net-IO)
Die Plantine DS1
wurde an die Klemmen #18, #19 und #20 angeschlossen. Mit einem
Ozilloskop habe ich nun am Ausgang des Optokopplers bzw. am Eingang PB1
des MC die entsprechenden Drehzahlsignale gemessen.

So wollte ich das haben, astreine Rechtecksignale. Da sollte der MC keine Probleme haben die Drehzahl zu ermittlen.
Sonstige Hardware
Was man sonst noch so braucht:
Anzahl |
Name |
Typ / Wert |
Bemerkung |
1 |
PC |
|
zur Konfiguration und zum Updaten der MC-Software |
beliebig |
Temperatursensoren |
DS18B20 |
|
1 |
Anschlussstecker 12V |
|
zum Anschluss des MC an die Bordstromversorgung
Die Schaltung kann aber auch fest angeschlossen werden! |
1 |
Verbindungskabel, seriell PC-MC |
seriell 9-polig |
je nach Bedarf (Buchsen/Stift nach Bedarf) |
1 |
USB/seriell Wandler |
|
nach Bedarf (bei PC ohne serielle Schnittstelle nötig) |
1 |
GPS-Maus oder GPS-Modul |
|
serielle GPS-Maus (5V) oder
GPS-Modul z.B. Navilock 550ERS (5V, RS232) |
1 |
Verbindungskabel GPS-MC |
seriell 9-polig |
je nach Bedarf (Buchsen/Stift nach Bedarf) |
1 |
Gehäuse für Display |
|
je nach Bedarf |
1 |
Gehäuse für MC Plattine |
|
je nach Bedarf (in EMV-verseuchter Umgebung Metall empfohlen) |
1 |
Hupe |
|
5V |
beliebig |
LEDs |
|
verschiedene Farben nach Bedarf |
Software
Die MC-Software ist in Bascom
programmiert und wird mit Hilfe eines Bootloaders in den Chip
geschrieben. Es reicht hierfür eine serielle Verbindung zwischen
MC und PC wie sie zur Konfiguration und Datenübertragung eh schon
existiert.
Bisher verwirklichte Funktionalität der MC Software:
- Konfiguration über PC-Programm (Datenaustausch zwischen PC und MC)
- Speicherung der Konfigurationsdaten im EEPROM des MC.
- Speicherung der Zähler für Spritverbrauch, Betriebsstunden und Strecke im EEPROM und in der Realtime-Clock.
- Speicherung
der Zählerstände für Jahres-, Tages- und Tripdaten und
der Daten seit dem letzten Tanken im EEPROM, Ausgabe dieser Daten am
Display.
- Abfrage und Auswertung der GPS-Daten (Position, gefahrene Strecke, Geschwindigkeit)
- Ermittlung der Drehzahl eines Motors
- Ermittlung Spritverbrauch eines Motors einschl. Berechnung von
l/h, l/km, l/NM, Restmenge im Tank und Anzeige dieser Werte
am Display
- Überwachung von Temperaturen und schalten von Aktoren bei Erreichen eingestellter Temperaturgrenzwerte.
- Weitergabe der GPS-Daten an den PC
- Weitergabe der Temperaturdaten an den PC
- Wahlmöglichkeit
von verschiedenen Displayanzeigen. Einstellbare Standardausgabe und
Möglichkeit Anzeige per Knopfdruck zu wechseln.
- Funktion "Zutanken"
- Funktion "Volltanken"
- Funktion "Tripreset"
Konfiguration am PC
Das
hierzu erstellte Programm ermöglicht den Zugriff auf
sämtliche im EEPROM gespeicherten Konfigurationswerte und
Zählerstände (Expertenmodus). Bei einer späteren Version
ist ein Usermodus geplant in welchen sich nur allgemeine Werte
beeinflussen lassen.
Hier mal ein paar Screenshots der Einstellungsdialoge:
Konfiguration der Aktoren (Schalter)

Im obenstehenden Dialog werden die entsprechenden Schaltaktoren
konfiguriert. Es können entweder 1-wire Schalter oder
Schaltausgänge des MC verwendet werden.Im oberen Beispiel wurde
der MC-Ausgang B.3 (siehe Bild der LP oben) als Actor 1 konfiguriert
und aktiv geschaltet. Analog dazu "Actor 2" = B.6, "Actor 3" = B.7, "Actor 4" = B.5 und "Actor 5" = A.3
Konfiguration der Temperaturen

Hier werden die Schaltschwellen der einzelnen Temperaturen
festgelegt. Es gibt jeweils zwei Schaltschwellen nach unten und zwei
nach oben.
Dies mal am Beispiel von "Temp 1" erklärt:
"1-wire ID" |
28AC107E020000B1 ist die 1-wire ID des entsprechenden Temperatursensors |
|
"Tmin 2" |
zweite Schaltschwelle nach unten von Temp 1 0°C |
Bei Unterschreitung wird Aktor 1 eingeschaltet und Alarm ausgelöst (AL aktiv) |
"Tmin 1" |
erste Schaltschwelle nach unten von Temp 1, hier 5°C |
Bei Unterschreitung wird kein Aktor eingeschaltet und kein Alarm ausgelöst |
"Tmax 1" |
erste Schaltschwelle nach oben von Temp 1, hier 25°C |
Bei Überschreitung wird Aktor 2 eingeschaltet aber kein Alarm ausgelöst |
"Tmax 2" |
zweite Schaltschwelle nach oben von Temp 1, hier 25°C |
Bei Überschreitung wird Aktor 3 eingeschaltet und Alarm ausgelöst |
"T V min" |
bisherige Minimumtemperatur, hier -38°C |
|
"T V max" |
bisherige Maximumtemperatur, hier 32°C |
|
Ist bei der jeweiligen Temperaturgenze die Schaltfläche "Al."
angewählt, so bedeutet dies, dass ggfs. zusätzlich zum
gewählten Aktor auch der Alarm ausgelöst wird. Im Alarmfall
blinkt das Display (Beleuchtung wird aus-/eingeschaltet) und der
Alarmausgang (B.2.) wird gesetzt. An diesen habe ich einen
entsprechenden Summer angeschlossen. Hier kann man natürlich auch
ein Relais und eine starke Hupe anschliessen.
Konfiguration 1-wire Counter
Hier besteht die Möglichkeit zusätzliche Zähler vom
Typ DS2423 zu konfigurieren. z.B. wenn mehr als zwei Zähler
benötigt werden.
Konfiguration weiterer Einstellung
Benennung |
Funktion |
"act as GPS Proxy" |
Der MC leitet die Ausgabe des GPS-Gerätes/Moduls 1:1 an den PC weiter |
"Calc distance also if RPM < 50 1/min" |
Normalerweise erfolgt keine
Streckenzählung, wenn der Motor nicht läuft. Dadurch wird
verhindert, dass beim Schwoien um den Anker eine Streckenzählung
erfogt. Möchte man diese Funktionalität ausschalten (z.B.
Segelboot), dann muss man diese Option aktivieren. |
"use USB Key for logging" |
Ist diese Option aktiv, so wird auf
einen über ein entsprechendes USB-Modul angeschlossenen USB-Stick
eine Logdatei geschrieben. |
"only Proxy good input" |
Vor der Weitergabe der GPS-Daten an den
PC erfolgt eine Gültigkeitsprüfung. Nur im "Gut-Fall" wird
der Datensatz an den PC weitergeleitet. |
"no GPS error message" |
Es erfolgt keine Fehlermeldung falls
kein GPS-Modul/Gerät gefunden wird. Dann kann
selbstverständlich keine Streckenberechnung etc. erfolgen. |
"only GPS output (no temp, volt, counter) |
Es werden nur GPS-Datensätze an
den PC weitergereicht. Ist diese Option inaktiv, so werden auch
Pseudo-NMEA-Datensätze mit den Temperaturen, Spannungen und
Zählern an den PC gesendet. |
"enable Debug output" |
Es werden auch Debug-Ausgaben an den PC gesendet. |
"use local time" |
Es wird nicht wie sonst UTC verwendet,
sondern die vom GPS übernommene UTC wird um die im nächsten
Dialog konfigurierte Zeitdifferenz angepasst. |
"use Watchdog" |
Der MC überwacht sich selbst,
bleibt das Programm aus irgendeinen Grund hängen, so wird der MC
nach einer bestimmten Zeit neu gestartet. |
"flash screen on error" |
Im Alarmfall wird die Displaybeleuchtung aus-/eingeschaltet um die Aufmerksamkeit des Bootsführers zu erlangen. |
Konfiguration von Variablen etc.

Im Expertenmodus, wie oben dargestellt, werden sämtliche Variablen
die im EPROM des MCs gespeichert sind angezeigt und sind meist auch
änderbar. Eine manuelle Veränderung ist aber nur in
Sonderfällen sinnvoll und kann bei unsachgemäßer
Veränderung zum Verlust der Daten führen!
Bezeichnung |
Bedeutung |
Delta-to-UTC [h] |
Unterschied Ortszeit zu UTC in Stunden |
EP valid |
Prüfsumme für Eprominhalt |
RPM Max 1 |
maximal bisher aufgetretene Drehzahl von Motor 1 |
RPM Max 2 |
maximal bisher aufgetretene Drehzahl von Motor 2 |
V_Fuel_h_max_1 |
Sprit l/h max * 100 Motor 1 |
V_Fuel_h_max_2 |
Sprit l/h max * 100 Motor 2 |
V_Fuel_d_max_1 |
Sprit l/100km max * 100 Motor 1 |
V_Fuel_d_max_2 |
Sprit l/100km max * 100 Motor 2 |
V_speed_max_1 |
bisherige Höchstgeschwindigkeit |
V_impliter_1 |
Impulse pro Liter des Durchflusssensors 1 |
V_impliter_2 |
Impulse pro Liter des Durchflusssensors 2 |
V_impumdreh_1 |
Impulse pro Umdrehung des Drehzahlsensors 1 |
V_impumdreh_2 |
Impulse pro Umdrehung des Drehzahlsensors 2 |
max. Tankvol 1 |
Volumen von Tank 1 in Liter *100 (170000 = 170,0l) |
max. Tankvol 2 |
Volumen von Tank 2 in Liter *100 |
TankLiter1 |
zugetankte Menge Tank 1 in Liter *100 |
TankLiter2 |
zugetankte Menge Tank 2 in Liter *100 |
Counter1T |
Zählerstand Zähler 1 bei letzten Volltanken |
Counter2T |
Zählerstand Zähler 2 bei letzten Volltanken |
Counter3T |
Zählerstand Zähler 3 bei letzten Volltanken |
Counter4T |
Zählerstand Zähler 4 bei letzten Volltanken |
BS 1 T |
Betriebsstunden bei letzten Volltanken Motor 1 in Sekunden * 100 |
BS 2 T |
Betriebsstunden bei letzten Volltanken Motor 2 in Sekunden * 100 |
BS 1 |
aktuelle Betriebsstunden Motor 1 in Sekunden * 100 |
BS 2 |
aktuelle Betriebsstunden Motor 2 in Sekunden * 100 |
BS 1 Heute |
Betriebsstunden Motor 1 Heute 0:00 Uhr |
BS 2 Heute |
Betriebsstunden Motor 2 Heute 0:00 Uhr |
BS 1 Jahr |
Betriebsstunden Motor 1 am 1.1. 0:00Uhr des aktuellen Jahres |
BS 2 Jahr |
Betriebsstunden Motor 2 am 1.1. 0:00Uhr des aktuellen Jahres |
BS 1 Tour |
Betriebsstunden Motor 1 zu Tour(=Trip) -Beginn |
BS 2 Tour |
Betriebsstunden Motor 2 zu Tour(=Trip) -Beginn |
Cnt 1 Jahr |
Zählerstand des Zählers 1 am 1.1. 0:00Uhr des aktuellen Jahres |
Cnt 2 Jahr |
Zählerstand des Zählers 2 am 1.1. 0:00Uhr des aktuellen Jahres |
Cnt 3 Jahr |
Zählerstand des Zählers 3 am 1.1. 0:00Uhr des aktuellen Jahres |
Cnt 4 Jahr |
Zählerstand des Zählers 4 am 1.1. 0:00Uhr des aktuellen Jahres |
Cnt 1 Tour |
Zählerstand des Zählers 1 zu Tour(=Trip) -Beginn |
Cnt 2 Tour |
Zählerstand des Zählers 2 zu Tour(=Trip) -Beginn |
Cnt 3 Tour |
Zählerstand des Zählers 3 zu Tour(=Trip) -Beginn |
Cnt 4 Tour |
Zählerstand des Zählers 4 zu Tour(=Trip) -Beginn |
Cnt 1 Tag |
Zählerstand des Zählers 1 Heute 0:00 Uhr |
Cnt 2 Tag |
Zählerstand des Zählers 2 Heute 0:00 Uhr |
Cnt 3 Tag |
Zählerstand des Zählers 3 Heute 0:00 Uhr |
Cnt 4 Tag |
Zählerstand des Zählers 4 Heute 0:00 Uhr |
Distance [cm] |
aktueller Stand Streckenzähler in cm |
Distance Tag |
Stand Streckenzähler in cm Heute 0:00Uhr |
Distance Jahr |
Stand Streckenzähler in cm 1.1. 0:00Uhr des aktuellen Jahres |
Distance Trip |
Stand Streckenzähler in cm 1.1. zu Tour(=Trip) -Beginn |
Cnt 1 akt |
aktueller Stand Zähler 1 |
Cnt 2 akt |
aktueller Stand Zähler 2 |
Cnt 3 akt |
aktueller Stand Zähler 3 |
Cnt 4 akt |
aktueller Stand Zähler 4 |
Dummy |
frei für zukünftige Erweiterungen |
Dummy |
frei für zukünftige Erweiterungen |
Dummy |
zusammengesetzter Wert für Screen etc. |
Dummy |
frei für zukünftige Erweiterungen |
Dummy |
frei für zukünftige Erweiterungen |
Dummy |
frei für zukünftige Erweiterungen |
Dummy |
frei für zukünftige Erweiterungen |
Dummy |
frei für zukünftige Erweiterungen |
Last Update |
letzter Update der Werte in Unix-time |
Konfiguration der MC-Anzeige
Hier kann der beim Einschalten aktive Screen ausgewählt werden.
(c) Erich Freibert, Januar 2012
Hinweis: Sämtliche Warenzeichen, Markennamen, Trademarks etc.
sind
Eigentum der jeweiligen Firmen auch wenn dieses nicht
ausdrücklich
kenntlich gemacht ist und der Trademarks-Eigener nicht namentlich
genannt wird und werden selbstverständlich anerkannt!
Weiterführende Links dienen nur der Information, liegen
deshalb
außerhalb meiner Verantwortung und bedeuten nicht,
automatisch,
dass dortige Inhalte mit meiner eigenen Meinung übereinstimmen
müssen
Das hier gezeigte ist nur eine Beschreibung von mir vorgenommer Um-
bzw. Einbauten. Es ist keine Aufforderung dies ebenfalls zu tun und ist
auch keine entsprechende vollständige Bauanleitung. Fehler und
Irrtum
ist vorbehalten. Auch die rechtliche Zuläßigkeit
wird von mir nicht
garantiert.
Zurück..