Hi,
solche Displays habe ich auch, nur leider hat das Display keine Beleuchtung. Aber im Prinzip kannst du die nehmen.
So habe jetzt weiter Geprogt.
Es gehen jetzt:
Blinkalarm
Bremslichtabfrage
Fernlichtabfrage
Batt-Spannungsanzeige
Ich habe aus techn. Gründen auf die Blinkeranzeige verzichtet. Es erfolgt ein Alarmsignal von ca. 3 sec sobald der Blinker länger als 1 min eingeschaltet ist. (auf dem Video Verkürzt) Danach geht das ganze von vorne los bzw. wenn die Bremse betätigt wird, fängt der Zähler auch wieder von vorn an. Das habe ich gemacht weil man an Ampeln oft die Bremse gezogen hält und dann soll es ja nicht zum Alarm kommen und es spart mir einen von den beiden Timern im Prozessor die ich später noch für den Tacho und Drehzahmesser benötige.
Die Batt Spannungsanzeig wird alle 2 Sec aktualisiert, damit die Zahlen nicht anfangen zu flackern.
Hier mal ein kleines Video davon
http://home.arcor.de/charly_001/bilder/v02.avi
Hat jemand Lust Beta-Tester zu spielen und das mal an seinem Moped anzubauen ??? Wenn ja dann Meldet euch bitte. Ich kann euch den Prozessor Programmiert zuschicken bzw. am besten währe es wenn jemand einen AVR Programmer hat dann könnte ich einfach nur immer die Aktuellste Software schicken die Ihr dann Flashen könnt. Das würde mir mehr Zeit zum Programmieren geben als wenn ich dann auch noch alles immer ans Moped Bauen muss. So einen Programmieradapter kann man sich auch selbst für ca. 2€ bauen.
Für die Leute die es mal Interessiert wie es hinter den Kolissen aussieht.
\'###############################################################################################################
\'# Simson Multifunktionsanzeige V0.2
\'#
\'# Drehzahlmesser
\'# Batt Spannung ok
\'# Batt Ladestrom
\'# Blinkerkontrolle ok
\'# Bremslichtkontrolle ok
\'# Fernlichtkontrolle ok
\'# Tacho
\'#
\'# Spannungsteiler 10K an zu messende Spannung
\'# 4,7K an GND
\'# Mittelabgriff an PC0
\'#
\'# Piepser an PD0
\'#
\'# Eingänge:
\'# Fernlich an BD5
\'# Bremslicht an PB1
\'# Blinker an PB0
\'#
\'###############################################################################################################
$regfile = \"m8def.dat\" \' Prozessor Mega8
$crystal = 8000000 \' 8MHz Quarz (interner Takt)
\'###############################################################################################################
\'# Portzuweisungen
\'###############################################################################################################
Config Adc = Single , Prescaler = Auto
Config Portc.0 = Input \' ADC C0 auf Eingang schalten
Start Adc \' ADC Einschalten
Config Portb.0 = Input \' Eingang Blinker PB0
Portb.0 = 1 \' Pullup aktivieren PB0
Config Portb.1 = Input \' Eingang Bremslicht PB1
Portb.1 = 1 \' Pullup aktivieren PB1
Config Portb.5 = Input \' Eingang Fernlicht PB5
Portb.5 = 1 \' Pullup aktivieren PB5
Config Portd.0 = Output \' Port auf Ausgang setzen
Portd.0 = 0 \' Port auf low setzen
Dim Z As Word \' Zähler für Blinkzeit
Z = 0 \' Zähler auf 0 setzen
Dim X As Byte \' Zähler für Anzahl Ton-Signale wenn Blinkdauer erreicht
X = 0 \' Zähler auf 0 Setzen
Dim U As Word \'Spannung aus ADC
Dim A As Single \' ADC
Dim B As Byte \' For Next Zähler des Hauptprogramms (Aktualisierung des ADC für BATT Spannung
Blinker Alias Pinb.0 \' Blinkerauswertung an Port PB0
Bremse Alias Pinb.1 \' Bremslichtauswertung an Port PB1
Fernl Alias Pinb.5 \' Fernlichtauswertung an Port PB5
Led Alias Portd.0
\'###############################################################################################################
\'# LCD Grundeinstellungen
\'###############################################################################################################
\'# LCD 20 x 4 an Mega 8
\'# RS = PB2
\'# E = PB3
\'# D4 = PC5
\'# D5 = PC4
\'# D6 = PC3
\'# D7 = PC2
\'###############################################################################################################
Config Lcd = 20 * 4 \' LCD 20x4 mit HD 44780 Controller
Config Lcdpin = Pin , E = Portb.3 , Rs = Portb.2 , Db7 = Portc.2 , Db6 = Portc.3 , Db5 = Portc.4 , Db4 = Portc.5
Display On \' LCD Einschalten
Cls \' LCD-Anzeige löschen
Cursor Off \' Cursor ausschalten
\'###############################################################################################################
\'# Startanzeige
\'###############################################################################################################
Locate 1 , 7 \' Erste Zeile 7 Spalte
Lcd \"Simson\" \' Text ausgeben
Locate 2 , 3 \' Zweite Zeile 3 Spalte
Lcd \"Multifunktions-\" \' Text ausgeben
Locate 3 , 4 \' 3 Zeile 4 Spalte
Lcd \"Anzeige V(0.2)\" \' Text ausgeben
Locate 4 , 3 \'4 Zeile 3 Spalte
Lcd \"(c) by Charly_01\" \' Text ausgeben
Wait 1 \' 1 sec Warten
Cls \' Anzeige löschen
Locate 3 , 8 \' 3. Zeile 8 Spalte
Lcd \"FL.aus\" \' Für Fernlicht Text ausgeben
Locate 3 , 15 \' 3 Zeile 15 Spalte
Lcd \"BL.aus\" \' Für Bremslicht Text ausgeben
Locate 4 , 1 \' 4 Zeile 1 Spalte
Lcd \"Bat. V\" \' Batt. Spannung Text ausgeben
Locate 4 , 12 \' 4 Zeile 11 Spalte
Lcd \"Lade.\" \' Ladestrom ausgeben
\'###############################################################################################################
\'# Hauptprogramm
\'###############################################################################################################
Do
For B = 1 To 255
\'###############################################################################################################
\'# Abfrage Bremslicht
\'###############################################################################################################
If Bremse = 0 Then
Z = 0
Led = 0 \' wenn Bremse betätigt (gegen Masse) dann
Locate 3 , 18 \' Zeile 3 Spalte 18
Lcd \" an\" \' LCD \" an\" schreiben
Else \' sonst
Locate 3 , 18 \' wenn Bremse nicht betätigt
Lcd \"aus\" \' \"aus\" schreiben
End If \' ende schleife
\'###############################################################################################################
\'# Abfrage Fernlicht
\'###############################################################################################################
If Fernl = 0 Then \' wenn Fernlicht an (gegen Masse) dann
Locate 3 , 11 \' Zeile 3 Spalte 11
Lcd \" an\" \' LCD \" an\" schreiben
Else \' sonst
Locate 3 , 11 \' wenn Fernlicht aus
Lcd \"aus\" \' \"aus\" schreiben
End If \' Ende Schleife
\'###############################################################################################################
\'# Abfrage Blinker
\'###############################################################################################################
If Blinker = 0 Then \' wenn Blinksignal erkannt dann
Z = Z + 1 \' Z + 1 Rechnen
If Z > 300 Then
For X = 1 To 7
Cls
Locate 2 , 3
Lcd \"Blinker ALARM\"
Led = 1
Waitms 100
Led = 0
Cls
Waitms 300
Next X
Locate 3 , 8 \' 3. Zeile 8 Spalte
Lcd \"FL.aus\" \' Für Fernlicht Text ausgeben
Locate 3 , 15 \' 3 Zeile 15 Spalte
Lcd \"BL.aus\" \' Für Bremslicht Text ausgeben
Locate 4 , 1 \' 4 Zeile 1 Spalte
Lcd \"Bat. V\" \' Batt. Spannung Text ausgeben
Locate 4 , 12 \' 4 Zeile 11 Spalte
Lcd \"Lade.\" \' Ladestrom ausgeben
Z = 0
End If
End If
If B = 255 Then Gosub Spannung
Next B
Loop
\'###############################################################################################################
\'# Spannungsmessung
\'###############################################################################################################
Spannung:
U = Getadc(0) \' ADC0 Auslesen und in U Speichern
A = U / 63.3 \' ADC0 Wert in Spannung umrechnen
A = A + 0.1 \' Rundugsfehler Komepnsieren
Locate 4 , 5 \' LCD Spannungsanzeige Löschen
Lcd \" \" \' LCD Spannungsanzeige Löschen
Locate 4 , 5 \' LCD Spannungsanzeige schreiben
Lcd Fusing(a , \"#.##\") \' Spannungswert auf 2 Nachstelle abschneiden
Return \' Zurück zum Hauptprogramm
End
Wenn jemand BasicProgrammierung kann, könnte er mir bestimmt bei dem ein oder anderen Problem helfen.
M.f.G.
Charly