mein nächstes Projekt soll eine Ganganzeige für mein Trackbike werden.
Es handelt sich um eine CBR 600 F PC41.
Ich gehe davon aus, hinter dem Kombiinstrument Drehzahl und Fahrgeschwindigkeit als gepulstes Signal vorzufinden. Überprüft hab ich das noch nicht, aber es wär erst mal der Plan, über das Verhältnis aus Drehzahl und Geschwindigkeit zu gehen. Die Anzeige soll entweder ein kleines Display oder aber einfach nur 6 LEDs sein, von denen eine gewisse Anzahl an ist.
Jetzt stellen sich mir in der ersten Konzeptphase mal die folgenden Fragen:
-Kennt jemand irgendwelche 7-Segmentanzeigen, die beispielsweise in Epoxid eingegossen sind, um mindestens IP55 zu erreichen?
-Spricht etwas dagegen, so ein display selbst in Epoxid einzugießen? Ist die Abwärme ein Faktor bei solchen Displays?
-Sollte das gepulste Signal auf 12V basieren, wäre das ein Problem für den Arduino? Sonst könnte man natürlich einfach mit Widerständen den Pegel senken.
Genauso ist es. Und bei einem Bike von 2011 auch definitiv möglich.
Da gibt es fertige Lösungen, die genau das bieten, was der TE möchte. Oder man bastelt sich selbst was zusammen und wird mit etwas Lehrgeld vermutlich über den Kosten und unter der Qualität liegen.
Aber zur Vervollständigung: Kommunikation über die K-Line (KWP2000) in einem leicht modifizierten Format.
Eine Anleitung zur Hardware und dem Protokoll findest Du hier: https://gonzos.net/projects/ctx-obd/
Allerdings für einen RaspberryPi.
Nein, keineswegs. Vielleicht eine saudumme Aussage mangels Elektronik-KnowHow.. Aber ohne Oszi hab ich keine Möglichkeit, das gepulste Signal zu messen - wenn das 12V sind ist das dann zu viel für den Arduino? Ich dachte schon. Das ist gerade ein Kernproblem bei meinem Vorhaben - ich muss die beiden gepulsten Signale auswerten. pulsein() erscheint mir da geeignet, aber eben für 5V.
Danke für die Antwort. Dann würde ich sagen, probieren geht über studieren.
Jau, aber wie soll man das denn Realisieren? Ich müsste ja auch wieder nur Drehzahl und Fahrgeschwindigkeit auslesen, denn auch auf der ECU ist die Information, welcher Gang eingelegt ist, mit Ausnahme des Leerlaufs, nicht vorhanden. Also warum den Umweg über den Diagnoseport gehen, wenn die Signale in gepulster Form sowieso an Ort und Stelle vorliegen, wo ich sie auch abgreifen möchte?
Oh die kenne ich alle - funktionieren sehr gut, haben aber ziemlich hässliche, Blockförmige Gehäuse. Abgesehen davon basieren die alle auf demselben Prinzip - nämlich der Drehzahl/Fahrgeschwindigkeits-Ratio. Das Exemplar von Healtech kostet beispielsweise rund 100 Euro - und wo bliebe denn da der Bastelspaß?
Entschuldige bitte - aber ist dieses Forum nicht genau für solche Bastellösungen gedacht? Wir sind hier ja nicht im "Kaufen wir lieber alles fertig, ist einfacher"-Forum
Oh cool! Danke für den Lesestoff, hochinteressant.
Naja, ich baue mir schon lieber die Dinge, die es fertig für kleines Geld nicht gibt. Ansonsten ja, der Bastelspass ist schon auch ein Antrieb für mich. Aber das muss ja jeder selber entscheiden.
Spannung reduzieren geht einfach über einen Spannungsteiler.
zB Spannungsteiler berechnen, Rechner und Formel
Als Gesamtwiderstandswert kannst Du etwas zwischen 10k und 100kOhm für ein Digitales Pin wählen. Für analoge Pins sollte der Gesamtwiderstand um 10kOhm oder leicht kleiner sein.
Tja @my_xy_projekt so klein ist die Diagnoseschnittstellen-/Motorradwelt
Was die Motorraddiagnose im deutschsprachigem Raum angeht, stehe ich in der Detailtiefe auch relativ alleine da.
Und in allen anderen Threads hier kann ich technisch zu wenig beitragen
@wepsi grundsätzlich mache ich auch alles am liebsten selbst. Manchmal lohnt es aber einfach nicht
Aber ich lasse mich sehr gerne vom Gegenteil überzeugen!
Technisch sehe ich drei Varianten um an das Ziel zu kommen:
HDS (Diagnoseport aus dem Link)
Sensoren direkt abgreifen
Tachosignale abgreifen
Für das HondaDiagnosticSystem benötigst Du einen L9637D, welcher das 12V Signal von einem auf eine Arduinoverträgliche Spannung mit zwei Kabeln wandelt (K-Line -> Seriell).
Für die Verkablung kannst Du hier einen Blick riskieren.
Dann noch ein Netzteil um den Arduino selbst mit einigermaßen geglättetem Strom zu versorgen.
Anschließend erfolgt viel Code für die HDS Kommunikation.
Denke etwas Overhead, gibt Dir aber die Möglichkeit auch den Fehlerspeicher auszulesen oder zu löschen.
I.d.R. sind die Sensoren bei einem Motorrad alle um die 4,5 - 5 V, welche die Betriebsspannung der ECU und der Peripherie darstellt. Sicherheit hast Du hier, wenn Du im Werkstatthandbuch nachschaust.
Der Tacho hingegen ist von Hersteller zu Hersteller unterschiedlich verdrahtet. Es kann auch ein analoges Signal der Sensoren sein, es kann aber auch eine Direktverbindung zwischen ECU & Tacho geben. Dann werden auch dort Datenpakete übermittelt und keine PWM-Signale.
Bei Yamaha ist das z.B. so.
Ähem ja, wie denn sonst? Mir kam das nach der entsetzten Reaktion erwas hemdsärmelig vor .
Da würde man den Widerstand doch eher parallel denn in Reihe nehmen, oder? So wie den Abschlusswiderstand eines CAN-Busses. Aber ich will ja hier in den digitalen Pin rein und nicht raus. Ich bräuchte hier ja den passenden Widerstand in Reihe, um mit dem gepulsten Signal auf 5V zu kommen (falls es nicht ohnehin 5V sind).
@TriB danke für die Infos. Auf den Bordbus zu gehen ist meines Erachtens nach mehr als nur ein bisschen Overhead. Das würde aus dem gemütlichen Nebenher-Basteln eine wahre Großaufgabe machen Abgesehen davon, dass ich sehr wissbegierig bin und gerne mehr darüber lernen würde, habe ich die Zeit leider nicht.
Ich bastle mal einen Prototypen und melde mich dann zurück.
Ich würde da nen Optokoppler reinsetzen und das wars.
Hast die Boardelektronik vom Rest getrennt.
Ansonsten schau mal in den Thread, der in #4 zum klicken ist. Da hatten wir ja sowas schonmal.
Wenn du mein Entsetzen meinst, dann:
Ja, die Frage ob man mit 12V einfach so auf einen Arduino gehen kann, hat mich entsetzt.
Insbesondere, da noch nicht mal genannt wurde, was für ein Arduino.
Soweit mir bekannt können nur die AVR deine12V, an genau einem Pin, überleben.
Am Reset Pin.
Aber laufen, das tun sie dann nicht.
Mein Rat:
Rechne mit einer Betriebspannung von fast 15V
Mit erheblichen Störspitzen.
Leiche Ironie:
Deine Entscheidung den bekannten Diagnoseport, mit seinem bekanntem Pegeln und bekanntem Protokoll NICHT zu nutzen, halte ich für richtig!
Natürlich lernt man viel mehr dabei, wenn man ein unbekanntes Protokoll, mit unbekannten Pegeln am Tacho und Drehzahlmesser ausliest. Zudem ist es (so ich vermute) etwas risikoreicher, aber Instrumente und Elektronikboxen gibts als Ersatzteile und ein bisschen Schwund ist ja immer.
Das Leben ist ein Abenteuer!
Eigentlich ist ja alles bekannt. Die Pegel am Tacho stehen im Werkstatthandbuch.
Pegel am Diagnoseport und die Schnittstellenbeschreibung stehen in meinem Link in #3
Störspitzen oder mehr als 12V konnte ich am Diagnoseport bisher nicht feststellen. Der wird offenbar, analog zum 4,5 / 5V Boardnetz recht ordentlich stabil gehalten.
Bei der Versorgungsspannung am Tacho wäre ich mir nicht so sicher. Der flackert ja gerne mal...
Ich bin schon länger kein Motorrad mehr gefahren, aber ich meine, mich zu erinnern, daß Drehzahl und Geschwindigkeit nicht mehr zusammen passen, sobald man die Kupplung zieht.
Dann würde die Ganganzeige irgend welche sinnfreien Zahlen anzeigen. Warum nicht einfach da abgreifen, wo es immer passt, nämlich am Getriebe. Ich meine mal vor XX Jahren irgendwo etwas in der Art gesehen zu haben, weiß aber nicht mehr, wie das genau ging.
Wenn man aber sowieso Schalter/Sensoren für Quickshifter nachrüstet, kann man bei der Anzeige mehr Stabilität erreichen.
Quickshifter, nur bei Einspritzanlagen nachrüstbar/erlaubt
Das Ding mit dem Optokoppler ist, dass ich die zusammen mit dem Arduino in einem einigermaßen Wasserdichten Gehäuse unterbringen müsste. Der Vorteil mit der galvanischen Trennung ist über die Masse des Arduino dahin, denn ich muss den ja mit einem DC/DC Wandler versorgen. Oder ich nehme 5V von der ECU/Diagnoseport, aber dann hab ich auch wieder keine galvanische Trennung. Spricht aus deiner Sicht was dagegen, das Signal direkt zu nehmen, vorrausgesetzt, der Pegel beträgt 5V?
Glasklar, danke.
Einen Arduino Nano hab ich hier. Ok, also war es nicht mein Gedanke, den Pegel einfach mit einem Widerstand runterzuziehen. Das würd ich dann nämlich einfach genauso machen. Also bei den beiden Puls-Signalen.
Ich werd einfach mal einen DC/DC Wandler von 10-15V auf 3,3V nehmen und dann messen, wie hoch die Spannungsspitzen sind, die da rauskommen.
Wäre interessant, ob ich diese 5V auch irgendwo vorne in der Kanzel vorfinde. Du hast nicht zufällig einen Schaltplan von der PC41?
Das ist sicher richtig. Mir schwebt vor, ein Intervall zu definieren, in dem ein Gang angezeigt wird. Außerhalb der Intervalle soll ein "-" angezeigt werden. Und für die Berechnung der RPM/KMH Ratio möchte ich den Mittelwert aus 10 Zyklen pulsein() bilden. Inetwa so:
Darf dann gerne ein paar Sekunden dauern, nachdem der Gang drin ist. Bei den Nachrüstlösungen wie etwa von Healtech ist das ja auch so. Da vergehen gerne mal 3 oder 4 Sekunden.
Gibts leider nicht - nur N. Und ein Loch in das Gehäuse bohren, um einen Sensor einzusetzen, möchte ich nicht.
Wurde sagen erstmal schauen was für Signale das sind, wurde zum Freundlichen fahren und erfragen ob das Huhn, Hann, Messer oder Gabel ist.
Meine Vermutung es handelt sich um irgend ein Protokoll, auch beim Moped ist die Umgebung ziemlich EMP, EMV versaut