Seite 1 von 2

Alternative zum Schaltblitz

Verfasst: 29 Jun 2009 7:32
von antanis
Ich führe den Thread hier mal weiter, da er unter "Videothek" nicht so ganz reinpasst.

Ausgangspunkt ist folgender Thread gewesen:

http://www.zxr750.de/board/vie ... hp?t=44846

Tja..soviel zu meinem Winterprojekt...

Hab übers Wochenende das Programm fertig geschrieben und als Option auch gleich noch ein LCD mit 16*2 Ziffern integriert.

Wer Basic kann, kann hier ja gerne mal reinsehen:

$regfile = "m8def.dat"
$crystal = 8000000
$baud = 19200
$hwstack = 32
$swstack = 10
$framesize = 40
$sim

Config Portd = Output 'Pin 0 Port C ist Neutralschalter
Config Pinc.6 = Input 'Pin 1 Port C ist Fernlicht
Config Pinc.5 = Input
Config Adc = Single , Prescaler = Auto
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0
Config Lcdbus = 4
Config Lcd = 16 * 2

Start Adc
'System steuert Farbe der Cockpitbeleuchtung
Dim System As Byte '= Pin ADC0 Drehzahl wird im LCD angezeigt und fließt in Temp.Mod
Dim Drehzahl As Word '= Neutralschalter vom Getriebe
Dim Neutral As Bit '=Fernlichtschalter
Dim Beam As Bit '= Pin ADC1 Temp wird im LCD angezeigt und fließt in Temp.Mod.
Dim Temp As Word 'Temp.mod. ist der Modifikator für Drehzahl/Temperatur
Dim Tempmode As Word

Cls
Locate 1 , 1 : Lcd "Welcome to"
Locate 2 , 1 : Lcd "Kawasaki ZXR 750"
Wait 1
Cls

Do

Neutral = Pinc.6
Beam = Pinc.5
Drehzahl = Getadc(0)
Temp = Getadc(1)
Tempmode = 0
System = 0

Select Case Drehzahl
Case 0 To 600 : Tempmode = Tempmode + 0
Case 601 To 799 : Tempmode = Tempmode + 30
Case 800 To 899 : Tempmode = Tempmode + 40
Case 900 To 999 : Tempmode = Tempmode + 60
Case 1000 To 1099 : Tempmode = Tempmode + 80
Case Else : Tempmode = Tempmode + 100
End Select

Select Case Temp
Case 0 To 20 : Tempmode = Tempmode + 70
Case 21 To 40 : Tempmode = Tempmode + 60
Case 41 To 60 : Tempmode = Tempmode + 50
Case 61 To 80 : Tempmode = Tempmode + 0
Case 81 To 100 : Tempmode = Tempmode + 20
Case 101 To 110 : Tempmode = Tempmode + 50
Case 111 To 120 : Tempmode = Tempmode + 60
Case Else : Tempmode = Tempmode + 100
End Select


If Tempmode => 100 Then System = System + 10
If Neutral = 1 Then System = System + 1 'Systemzähler S Erhöhen , Wenn Neutral Eingelegt
If Beam = 1 Then System = System + 2 'Systemzähler erhöhen, wenn Fernlicht eingeschaltet

Select Case System
Case 1 : Portd = &B00000001 'Änderung Tachobeleuchtung auf Grün
Case 2 : Portd = &B00000010 'Änderung Tachobeleuchtung auf Blau
Case 3 : Portd = &B00000010 'Änderung Tachobeleuchtung auf Rot
Case 4 To 16 : Portd = &B00000100 'Änderung Tachobeleuchtung auf Gelb
Case Else : Portd = &B00000111
End Select

Locate 1 , 1 : Lcd "Drehzahl:"
Locate 1 , 10 : Lcd Drehzahl 'Ausgabe LCD Drehzahl
Locate 2 , 1 : Lcd "Temperatur:"
Locate 2 , 12 : Lcd Temp
Waitms 500
Cls

Locate 1 , 1 : Lcd "Neutral"
Locate 2 , 1 : Lcd Neutral 'Ausgabe LCD Neutral
Locate 1 , 9 : Lcd "Beam "
Locate 2 , 9 : Lcd Beam 'Ausgabe LCD Fernlicht

Cls

Loop

End


Das Drehzahlsignal sowie der Temperatursensor müssen noch angepasst werden. Das geht aber erst, wenn die Teile da sind. Das Signal vom Drehzahlmesser wird evtl. vorher über einen LM207 gejagt, je nachdem wie gut das mit dem AD-Wandler vom Atmega8 funktioniert.

Heute kommen die Schaltungsteile, die ich dann verlöten und auch mal außerhalb des Simulators betreiben kann. Die wird wohl bis Ende dieser Woche fertig sein.

Kann jemand ein paar Foto´s vom ausgebauten Tacho machen? (Frontansicht/Rückansicht). Und hat jemand eine Bezugsquelle für günstige weiße Tachoscheiben??

Gruß

Markus

Verfasst: 01 Jul 2009 14:04
von heizer_2
Auswertung des drehzahlsignals:

Nimmst n kleinen NPN kleinsignaltransistor (BC560 oder so) mit nem 100k basiswiderstand. Damit gehst zur zyndspule an das schwarze oder gruene kabel (rot ist dauerplus). Der transistor schaltet einen 5k widerstand, der an v+ deiner schaltung hängt, ueber seinen kollektor nach masse. Eine schutzdiode brauchste noch um die basis vor neg. spannungen zu schuetzen. Vom kollektor gehste dann zu einem interruptfähigen eigangspin oder an einen timerpin an deinem atmel.

Wenn impuls der zuendung kommt, musste in der ISR nen timer starten. Kommt der nächste impuls wird der wert des timers ausgelesen und der timer zuruekgesetzt usw.
So kommst an die drehzahl des motors am einfachsten ran. Nix mit AD wandler, das signal der zündung ist ein gepulstes signal und kein analoges. Wird im uebrigen bei fast allen zubehoehr elektronischen drehzahlmessern so gemacht.

Die LEDs wuerde ich ueber nen treiber an die PWM ausgänge hängen, dann kannste das licht sogar noch dimmen/faden....

Verfasst: 01 Jul 2009 14:26
von Gast
Hatte mich irgendwann mal nach solchen o.ä. Dingen umgesehen und dabei diese 2 Links als Ergebnis meiner Suche gespeichert!
Weiß nicht wirklich ob"s euch hilft,aber interresant ist es allemal!

http://www.base32.de.vu/

http://www.digitaler-drehzahlmesser.de/

Verfasst: 01 Jul 2009 18:19
von antanis
Danke für den Tip und Danke für den Link. vor allem der erste ist für mich interessant...

Das Signal will ich über einen LM2907 jagen. Der setzt mir die Frequenz in ein auslesbares analoges Signal um. Danach muss ich nur noch einmalig eine entsprechende Tabelle anlegen (x Volt = X upm) und schon hab ichs.

Genau so wird auch das Signal beim digitalen Drehzahlmesser aufbereitet, der auf der von Röhrich genannten Seite beschrieben ist.

Damit ist das Ganze auch temperaturunabhängig. Die Microprozessoren neigen nämlich dazu, es mit den angegebenen Mhz nicht so genau zu nehmen. Und wenn er anstatt auf 4Mhz auf 4,02 läuft, kann das bei der Timermessung (Signale pro Sekunde) um eine ganze Ecke danebenliegen.
Der LM2907 ist da etwas unabhängiger.

Aber da ich eh noch in der Testphase bin, kann ich auch mal versuchen das Signal über den Transistor direkt auszulesen. Da muss ich mich dann aber erst noch tiefer in Bascom einlesen. Und C lern ich jetzt nicht extra dafür :-)

Gruß

Markus

Verfasst: 01 Jul 2009 19:02
von heizer_2
Na ja mach wie du willst, war nur n vorschlag. Viele wege fuehren nach rom und dem publikum ists egal... hauptsache es funzt am ende.

Physikalische größen sollte man immer direkt messen. Der LM setzt das drehzahlsignal in einen analog wert um. Diese umsetzung ist nat. fehlerbehaftet (referenz, temperatur etc.). Dann nimmst das analoge signal und wandelst es wieder in ein digitales um (registerwert des ADCs) und fuegst unweigerlich quantisierungsrauschen und umgebungsstoersignale hinzu.
Also ein digitales impulssignal, was die drehzahl angibt, in ein analoges wandeln mit den bekannten einschränkungen um es dann wieder zu digitalisieren fuer eine auswertung, obwohl man einen rechner der zeiten im µs bereich messen kann hat.

Egal. Es kommt ja hier nicht auf 500 u/min mehr oder weniger an...
Wenn du probleme bei was hast kannst mich gerne fragen.

PS:
Ob nun Bascom oder C ist in diesem fall mal sowas von egal. Wie ne ISR angesprungen und ein timer initialisiert und ausgelesen wird geht mit beiden sprachen genau so einfach.

Verfasst: 01 Jul 2009 23:03
von antanis
Heizer2 ich seh schon... da müssen wir uns einige Nächte mit den Codings um die Ohren schlagen. Bisher hatte ich nämlich null Ahnung vom Programmieren. Der Spaß da oben ist nach einem Tag Bascom-Stiudium entstanden.

Testobjekte stehen zur Verfügung, Programmer, Atmega sowie weitere Bauteile sind vorhanden. Ab mitte September kanns dann losgehen.

Gruß

Markus

Verfasst: 01 Jul 2009 23:54
von heizer_2
Nächte lang? Das geht schneller...
Wenn du so weit bist meld dich einfach nochmal.
Drehzahlmesser mit LCD kann ich dir bascom code geben. Ein arbeitskollege hat grad fuer sein simson roller sowas gemacht. Ich selbst finde die syntax von basic zu verwirrend.

Schaltbiltz mit drehzahlauswertung, ganganzeige, spannungs und tempmessung habe ich mal in C gemacht. Wenn du willst kannst den code/schaltplan nat. trozdem haben.

Mein letztes mini-projekt war ein simulator fuer die auspuffklappe der ZX10R, so das die fehlerleuchte nicht kommt wenn der stellmotor entfernt wird. Der kontroller gaukelt dem steuerteil den stellmotor vor.
Funzt bei roberts 10er perfekt.

Tempregler fur ne elektrische wasserpumpe hab ich fuer walnussbär gebastelt. Dort hab ich auch n atmel verwendet der die PWM und die regelung macht.
Wasserpumpe soll nur laufen wenn das wasser auch warm ist.

Dann noch n laptimer mit schaltblitzfunktion, spannungs und tempmessung. Wegen zu großem display aber nicht in kleinserie gegangen. Version II bekommt GPS und ein kleineres display. Dann braucht man auch keine lichtschranke mehr an der boxenmauer hinstellen ;-).

Sehr kompakt und billig die kleinen biester.
Am mopped muss man wegen der "verdreckten" boardspannung etwas aufpassen beim schaltungsdesign. Geeignete filter verwenden, damit der prozessor nicht instabiel läuft.

Verfasst: 02 Jul 2009 9:02
von antanis
Den Drehzahlmesser mit LCD kannst du mir tatsächlich schonmal geben. LCD-Ansteuerung ist kein Thema, hab ich mich schon eingelesen. Das auswerten des Drehzahlmessers macht mir noch ein bischen Kopfschmerzen... Kommst du auch an den Schaltplan ran?

Schick mir bitte mal alles was du in der Richtung hast. Das bringt mich vielleicht auf ein paar neue Ideen...

Gruß

Markus

Verfasst: 02 Jul 2009 10:55
von heizer_2
Klar, als open source verfechter geb ich das alles gerne raus. Die schaltpläne hab ich selbst erstellt, hänge ich mit an.
Ich brauch noch ne e-mail adresse wo ich es hinschicken soll.

Verfasst: 02 Jul 2009 11:02
von antanis
...kommt ja dem Forum zugute.

Testkarnickel hab ich mit Cowgirl & Catweazle schon gefunden :twisted:

Hast PN.

Gruß

Markus

Verfasst: 02 Jul 2009 12:19
von ZXR Rider
antanis hat geschrieben:Testkarnickel hab ich mit Cowgirl & Catweazle schon gefunden
Stell mich da auch mal gaaaanz unverbindlich in die Liste :roll: :wink:

Verfasst: 14 Sep 2009 18:01
von antanis
Soo..

aktueller Stand: Durch einen Halbgott im Bascom-Forum steht die Software soweit. Ich verstehe momentan nur rudimentäre Teile des Inhaltes, aber es funktioniert:

'$sim
$regfile = "m8def.dat"
$crystal = 4000000
$hwstack = 64
$swstack = 64
$framesize = 64

' ################ NOTE LCD PIN Rs = Portd.0 free INT0 for RPM

'Pin 2 Port D ist Eingang für Drehzahl INT0 read pulse HIGH (Rising)
Config Portd.2 = Input
Portd.2 = 0
On Int0 Isr_sspi Nosave
Disable Int0
Config Int0 = Rising

'#####################
'ds1820 ist Eingang für Temperatur PULLUP 4K7
Config 1wire = Portc.2
'#####################

Config Pinc.3 = Input 'Pin 3 Port C ist Neutralschalter
Portc.3 = 0 'set to 0 if you use high for pulse else 1 for low pulse
Config Pinc.4 = Input : 'Pin 4 Port C Ist Fernlicht
Portc.4 = 0 'set to 0 if you use high for pulse else 1 for low pulse
Config Portb = Output 'LED backlight color shift

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.0
Config Lcd = 16 * 2
Cursor Off Noblink

Dim System As Byte 'System steuert Farbe der Cockpitbeleuchtung
Dim Drehzahl As Word '= Pin ADC0 Drehzahl wird im LCD angezeigt und fließt in Temp.Mod
Dim Neutral As Byte '= Neutralschalter vom Getriebe
Dim Beam As Byte '=Fernlichtschalter
Dim Temp As Word '= Pin ADC1 Temp wird im LCD angezeigt und fließt in Temp.Mod.
Dim Tempmode As Word 'Temp.mod. ist der Modifikator für Drehzahl/Temperatur
Dim Dzl As String * 5 'for LCD Drehzahl (formt)
Dim Tmpa As String * 3 'for LCD Temp (format)
Dim Temp_flag As Byte
Dim W As Word
'ds1820
Declare Sub Temperature
Dim Bd(9) As Byte
Dim I As Byte , Tmp As Byte
Dim Crc As Byte
Dim T As Integer , T1 As Integer
Dim V As Byte

Enable Interrupts
'Skips Rom ready to read temp on timer1_ISR 1sec
1wwrite &HCC 'SKIPS ROM
1wwrite &H44 ' Convert T

Cls
Locate 1 , 1 : Lcd " PILOT LED "
Locate 2 , 1 : Lcd "KAWASAKI ZXR 750"
Waitms 500
Cls
Locate 1 , 2 : Lcd "TEMP"
Locate 1 , 9 : Lcd "DREHZAHL"
Locate 2 , 3
Lcd " 0 0"
Start Adc
Do

Tempmode = 0
System = 0

Select Case Drehzahl
Case 0 To 6000 : Tempmode = 0
Case 6001 To 8000 : Tempmode = 30
Case 8001 To 9000 : Tempmode = 40
Case 9001 To 10000 : Tempmode = 60
Case 10001 To 11000 : Tempmode = 80
Case Else : Tempmode = 100
End Select

Select Case Temp
Case 1 To 20 : Tempmode = Tempmode + 70 'min 1 if error on sensor red led on
Case 21 To 40 : Tempmode = Tempmode + 60
Case 41 To 60 : Tempmode = Tempmode + 50
Case 61 To 80 : Tempmode = Tempmode + 0
Case 81 To 100 : Tempmode = Tempmode + 20
Case 101 To 110 : Tempmode = Tempmode + 50
Case 111 To 120 : Tempmode = Tempmode + 60
Case Else : Tempmode = Tempmode + 100
End Select

Neutral = Pinc.3
Beam = Pinc.4

If Tempmode => 100 Then System = 10
If Neutral = 1 Then System = System + 1 'Systemzähler S Erhöhen , Wenn Neutral Eingelegt
If Beam = 1 Then System = System + 2 'Systemzähler erhöhen, wenn Fernlicht eingeschaltet

'Priorität
'1. Drehzahl and TEMP Rot
'2. Fernlicht Blau
'3. Leerlauf Grün

Select Case System
Case 1 : Portb = &B00000001 'Änderung Tachobeleuchtung auf Grün Neutral
Case 2 To 3 : Portb = &B00000010 'Änderung Tachobeleuchtung auf Blau Beam or Neutral & Beam
Case 10 To 13 : Portb = &B00000100 'Änderung Tachobeleuchtung auf Rot Tempmode
Case Else : Portb = &B00000000 'Änderung Tachobeleuchtung auf Weiss OFF
End Select


' Drehzahl READ via INT0 use a optocoupler for this ### VOLT SPIKES ### if you have CDI-Zündung...upto 400 VLT !!! INT0 MAX 5 VOLT
Enable Int0
Bitwait Pind.2 , Set
Waitms 1000 'NOTE THIS IS the Waitms 1 sec rpm read ok
Disable Int0

' if you dont read every 1 sec (Waitms 1000)
' then enable next line *2 = Waitms 500 *4 = Waitms 250
'W = W * 2 'for read RPM if Waitms 500 RPM jump 200 at 10.000

W = W * 60 ' *60 RPM
W = W / 100 ' loos the under 100 RPM read
Drehzahl = W * 100
Dzl = Str(drehzahl)
Locate 2 , 10
Lcd Format(dzl , " 0 ")
W = 0
Incr Temp_flag

If Temp_flag = 2 Then Call Temperature '2 * 1000 = 2 read temp every 2 sec
Loop



Sub Temperature() ' actual measuring

1wreset ' reset the bus
1wwrite &HCC ' read internal RAM
1wwrite &HBE ' read 9 data bytest
Bd(1) = 1wread(9) ' read bytes in array
1wreset ' reset the bus
'(
' TEST CODE 85ºC
Bd(1) = &HAA
Bd(2) = &H00
Bd(3) = &H00
Bd(4) = &H00
Bd(5) = &HFF
Bd(6) = &HFF
Bd(7) = &H0C
Bd(8) = &H10
Bd(9) = &H89
')

' CRC bigger but faster
'Crc = 0
For I = 1 To 9
Tmp = Crc Xor Bd(i)
Crc = Lookup(tmp , Crc8a)
Next

Crc = 0
Locate 2 , 2
If Crc = 0 Then ' if is OK, calculate for
'ds1820
Tmp = Bd(1) And 1
If Tmp = 1 Then Decr Bd(1)
T = Makeint(bd(1) , Bd(2))
T = T * 50 : T = T - 25 : T1 = Bd(8) - Bd(7) : T1 = T1 * 100
T1 = T1 / Bd(8) : T = T + T1 : T = T / 100
End If

Temp = T

If Err = 1 Then ' if there is no sensor
Tmpa = "Error "
Lcd Format(tmpa , " 0") ' we put "-- " on LCD
Else
If Crc = 0 Then
Tmpa = Str(temp) ' sensor present, check CRC
Lcd " " ; Format(tmpa , " 0") ; " " ' CRC OK, show temp
Else

Tmpa = " CRC " 'CRC NOT OK, "** " on LCD
Lcd Format(tmpa , " 0")
End If
End If
'SKIPS ROM ready to read temp at next timer1 overflow in 1 sec
1wwrite &HCC
1wwrite &H44

Temp_flag = 0

End Sub
End

Isr_sspi:
Incr W
Return

'crc for ds1820
'//////////////////////////////////////////////////////////////////////////////
Crc8a:
Data 0 , 94 , 188 , 226 , 97 , 63 , 221 , 131 , 194 , 156
Data 126 , 32 , 163 , 253 , 31 , 65 , 157 , 195 , 33 , 127
Data 252 , 162 , 64 , 30 , 95 , 1 , 227 , 189 , 62 , 96
Data 130 , 220 , 35 , 125 , 159 , 193 , 66 , 28 , 254 , 160
Data 225 , 191 , 93 , 3 , 128 , 222 , 60 , 98 , 190 , 224
Data 2 , 92 , 223 , 129 , 99 , 61 , 124 , 34 , 192 , 158
Data 29 , 67 , 161 , 255 , 70 , 24 , 250 , 164 , 39 , 121
Data 155 , 197 , 132 , 218 , 56 , 102 , 229 , 187 , 89 , 7
Data 219 , 133 , 103 , 57 , 186 , 228 , 6 , 88 , 25 , 71
Data 165 , 251 , 120 , 38 , 196 , 154 , 101 , 59 , 217 , 135
Data 4 , 90 , 184 , 230 , 167 , 249 , 27 , 69 , 198 , 152
Data 122 , 36 , 248 , 166 , 68 , 26 , 153 , 199 , 37 , 123
Data 58 , 100 , 134 , 216 , 91 , 5 , 231 , 185 , 140 , 210
Data 48 , 110 , 237 , 179 , 81 , 15 , 78 , 16 , 242 , 172
Data 47 , 113 , 147 , 205 , 17 , 79 , 173 , 243 , 112 , 46
Data 204 , 146 , 211 , 141 , 111 , 49 , 178 , 236 , 14 , 80
Data 175 , 241 , 19 , 77 , 206 , 144 , 114 , 44 , 109 , 51
Data 209 , 143 , 12 , 82 , 176 , 238 , 50 , 108 , 142 , 208
Data 83 , 13 , 239 , 177 , 240 , 174 , 76 , 18 , 145 , 207
Data 45 , 115 , 202 , 148 , 118 , 40 , 171 , 245 , 23 , 73
Data 8 , 86 , 180 , 234 , 105 , 55 , 213 , 139 , 87 , 9
Data 235 , 181 , 54 , 104 , 138 , 212 , 149 , 203 , 41 , 119
Data 244 , 170 , 72 , 22 , 233 , 183 , 85 , 11 , 136 , 214
Data 52 , 106 , 43 , 117 , 151 , 201 , 74 , 20 , 246 , 168
Data 116 , 42 , 200 , 150 , 21 , 75 , 169 , 247 , 182 , 232
Data 10 , 84 , 215 , 137 , 107 , 53



Kann mir jemand sagen, wo am besten das Drehzahlsignal abgegriffen wird? (Kabel/Kabelfarbe) Und wieviel Saft auf dem Kabel ist. Ich möchte ungern die Zündspulen anzapfen (könnte dann den Optokoppler einsparen).

Ein Bild, wie der Tacho von hinten aussieht, würde mir momentan auch ganz gut weiterhelfen. Cowgirl hat ihre Mühle momentan in einer Garage eingemottet, bis die Kette erneuert wurde...

Gruß

Markus

Verfasst: 14 Sep 2009 19:48
von Super Rider
antanis hat geschrieben: Ich möchte ungern die Zündspulen anzapfen (könnte dann den Optokoppler einsparen).
Wieso eigentlich nicht?
Ich mein, kannst ja auch direkt von DZM das Signal abgreifen aber soo genau
ists dann nicht und ein Schaltblitz sollte es mMn schon sein.

Wo du schon son Aufwand mit ner LCD-Anzeige beitreibst, mach's doch gleich richtig.
Die teuren Tachos machen's ja auch so.

(Ich, für meinen Teil, begnüge mich da mit ner Multiplexschaltung von 4x 7-Seg-Anzeigen
(~16mm) und über nen 8bit shift-register werden dann auch gar nicht so viele Pins benötigt,
also noch jede Menge Spielraum 8))

Wie ist eigentlich die Sichtbarkeit von dieser LCD-Anzeige?
(Die meisten sind ja nicht besonders groß - ob man's beim Fahren dann sieht?)

Verfasst: 14 Sep 2009 21:53
von antanis
Mit ner LCD hält man sich halt doch noch einige Optionen offen. Zumal ich da noch so´n lustiges Grafik-LCD rumliegen hab :twisted:

Die LCD sind sehr gut ablesbar. Momentan hab ich ein Grün-Display (schwarze Zeichen auf grünem Hintergrund) das kann auch ne ordentliche Portion Sonne ab. Man sieht halt dann nicht, dass es beleuchtet ist, aber die Schrift ist einwandfrei ablesbar.

Momentan bin ich am überlegen, ob überhaupt ein Display notwendig ist. Hauptfunktion ist wie oben schon beschrieben, ein temperaturabhängiger Schaltblitz in Form einer sich ändernden Tachobeleuchtung...

Gruß

Markus

Re: Alternative zum Schaltblitz

Verfasst: 04 Mär 2011 8:17
von Hummel
so,

hab mir das auch mal durchgelesen (außer den Code).
Tolles Projekt - vielleicht könnte man was richtig cooles draus machen?!

Also generell halte ich den Umweg über den LM2907 auch für Quatsch...
Da baut man sich derart viele Ungenauigkeiten (muss kalibriert werden, LM2907 braucht zb genaue Kondensatoren/Widerstände), dass sich der Vorteil der Temperaturstabilität nicht mehr lohnt.
Habe selbst einen Drehzahlmesser entworfen, ähnlich dem auf Digitaler-DZM, allerdings mit 7-Segment anzeigen.
War damals eine komplett analoge Schaltung, die ersten Versuche haben auch gut funktioniert...

Seit ich dann aber auf die Mikrocontroller gestoßen bin, denke ich, dass es mit diesen wesentlich einfacher wäre.
Außerdem bieten sie mehr Möglichkeiten und billiger ists im Endeffekt auch!
Gerade Fehlerkompensation bzw. die Kalibrierung ist per Software 1000-mal leichter, schneller und flexibeler zu bewerkstelligen...

Hat mir irgendjemand mal ein paar Schaltpläne zu dem ganzen Projekt? Bauteile müsste ich alle noch da haben, dann bau ich vielleicht mal was auf ;)

Übrigens: an der Programmierung soll's nciht scheitern - Ich mach das in C und könnte evtl. helfen..
Bei mir sind die Elektrotechnik-Kenntnisse (vorallem im analogen Bereich, d.h. zb Signalaufnahme) eher das Problem.
Als Basis würde ich allerdings gleich den ATMega16 vorschlagen, kostet 2 Euro mehr aber bietet auch einiges mehr ;)
Hat jmd. zufällig Erfahrung bei der Auslagerung von Code auf Eeprom-Speicher??

Re: Alternative zum Schaltblitz

Verfasst: 09 Mär 2011 11:51
von fredifreak
Hallo Jungs
Ich habe fast das selbe projekt wie ihr vor! Habe neulich auch damit angefangen und werde die Drehzahl über ein kabel das um das Zündkabel gewickelt wird abgreifen durch die zündung werden dann zündimpulse induziert diese werden dan von nem Operationsverstärler/ SChmitt Trigger umgewandelt und vom Atmega 8 ausgewertet bisher habe ich da nen testprogram / Frequenzähler der mir die Impulse umwandelt in eine Frequenz. Jetzt mus ich nur noch die Frequenz in Drehzahlumrechnen. Dazu habe ich noch 3Temperatursensoren öltemperatur, Wassertemperatur und UAßentemperatur die ich mit nem DS1820 gemacht habe! Die Temperatur drehzahl ist dan auf nem 2x16LCD abzulesen! Und per taster weiterzublättern! Der Code wurde allerdings in C geschrieben!

Re: Alternative zum Schaltblitz

Verfasst: 09 Mär 2011 12:04
von Hummel
hört sich super an :)
ich würd da mitmachen wenn du willst ;-)
Wie gesagt, ich schreibe meinen Code auch in C...

Hat jemand ne Idee, wie man ne Ganganzeige umsetzen könnte?

Und wo baust du die Sensoren ein?

Re: Alternative zum Schaltblitz

Verfasst: 09 Mär 2011 12:19
von fredifreak
Klar für Tipps oder neue IDeen bin ich immer offen! Werd jetzt warscheinlich sowiso umjteigen auf nen ATmega 644 weil der 8 is zihmlich begrenzt von seinen Ports!ganganzeige müsste doch auch maachbar sein mittels 2 reedkontakten und nem magenet der einmal beim hoch oder runtertippen dran vorbei fährt! Genauso wie ne drehzahlanzeige per LED Graph oder 7Segment anzeige ! ALso Wassertemperatur weiß ich noch nicht wo ich sie abgreife! ABer Öltemperatur dek ich nehm ich an der ölablasschraube oder am ölfilter!
Lamdasondenwerte wären sicher auch intressant wemmer die abfragen könnte:-)

Re: Alternative zum Schaltblitz

Verfasst: 09 Mär 2011 14:22
von Hummel
Jo, daher hatte ich auch den Atmega16 ins Auge genommen... 8k Speicher sind ja auch nicht gerade viel ;)
Bei Ganganzeige hatte ich evtl. an den Schalthebel mit ner Fotodiode oder nen induktiven Geber gedacht, aber da gibts sicher viele Möglichkeiten...

Die 7 Segment Ansteuerung hätte ich bereits..

Sag mal Bescheid, wenn du erste Tests gemacht hast ;-)


Lamdasonde würde mich jetzt weniger interessieren, da der Aufwand glaube ich etwas höher ist und man bei nem Vergaser Motor ja im Prinzip nichts davon hat, also wenn man den Lamda-Wert ständig ausliest... Zwecks einmaliger Abstimmung/Wartung wärs natürlich gut ;)

Re: Alternative zum Schaltblitz

Verfasst: 09 Mär 2011 20:54
von fredifreak
ja ich kümmer mich am we mal drum mach da nochn paar tests und maln paar bilder vom testaufbau! Viellt habter mir ja nochn paar tipps kan au schaun das ich des c programm mal noch etwas übersichtlicher gestallte und hier poste

Re: Alternative zum Schaltblitz

Verfasst: 09 Mär 2011 21:44
von Hummel
alles klar - cool :)
hab mir grad mal den ds1820 angeschaut...
nicht schlecht die dinger, nur etwas teuer für so ne selbstbau-variante,oder nicht?

ich hab schon simple thermometer mit dem LM335 und dem KTY-81 aufegbaut...
Funktionieren super und kosten nur nen Bruchteil ;)

Re: Alternative zum Schaltblitz

Verfasst: 10 Mär 2011 0:36
von fredifreak
ja ganz günstig sind sie nicht mit 2,50 stck aber des gute ist halt man muss sie nicht kalibrieren und sie sind um 0,5C genau das is beim KTY schwiriger! Der Lm75 wär auch noch ne alternative den hatten wir mal in der schule muss dan aber glaub über I² angesteurt werden!

Re: Alternative zum Schaltblitz

Verfasst: 10 Mär 2011 19:27
von Hummel
wo gibts die denn für 2,50??
Zwecks Öltermp. könnte man auch nen passenden Geber von z.b. onkel loXXX beziehen, kostet zwar 15 euro, aber damit klappts dann sicher ;)

Re: Alternative zum Schaltblitz

Verfasst: 10 Mär 2011 21:18
von antanis
äh Leute... wie wollt ihr den den DS1820 INS Öl bringen?? Da braucht ihr die Variante in der M10-Schraube und die kostet 30€..
Und der KTY liefert kein Digitalsignal. Also erstmal über den PWM rein und dann fröhlich ne Tabelle programmieren. Die Dinger sind nicht linear. d.h. zum Beispiel bei 30% mehr Hitze hast du 40% weniger Widerstand..

Re: Alternative zum Schaltblitz

Verfasst: 10 Mär 2011 21:26
von Hummel
deswegen die Lösung von onekl Louis o.ä.
kostet 15 euro komplett mit schraube und allem ;)

ABER: der KTY81 müsste sich auch INS Öl bringen lassen, oder eben der LM335 (bei deTO92)...
Und der KTY81 ist fast linear - in unserem Temp.bereich würden 2-3 lineare Funktionen genügen (hab slebst nen Termometer programmiert mit 3 linearen Abschnitten, läuft wunderbar... Einfach an den ADC-hängen und Spannung nach lin. Fkt in Temp. umrechnen.
Denkbar wär natürlich auch ein Kennfeld ;)

Aber wie gesagt - denke auch dass das einfaschste nen fertiger Sensor mit M10 schraube wäre - 15 Euro ist dafür ja auch ok?!