Guten Tag liebe community, ich würde gern wissen, ob es möglich ist mit einem Arduino Board eine Kraftstoffeinspritzanlage zu steuern. Ich hab überlegt mein altes Motorrad auf eine MPI Einspritzanlage umzurüsten und ich hab mich gefragt ob eine Arduino Einheit überhaupt im stande ist, bei hohen Drehzahlen, die Einspritzung zu gewährleisten. Das währe denn bis zu 200 Mal in der Sekunde(alle 5ms).Wenn es nicht möglich ist, womit kann ich es schaffen. Danke im Voraus. MfG Sanjakom
Gast
#3141729
Alex Kom schrieb: >(alle 5ms) Das sind 5000 Takte @1MHz, wenn Arduino zu langsam sein sollte mit normalem C dürfte das kein Problem sein. Wenn man nicht gerade hochkomplexe Berechnungen hat.
Berechnet wird nicht so viel, der Board soll ein Signal empfangen und eine Düse, für eine bestimmte zeit über einen Transistor, öffnen. Das alles aber sehr schnell.
Der Takt des Arduino (Uno oder 2009) liegt bei 16MHz, eine Maschinenzyklus also bei 62,5 ns. Aus dem Datenblatt und den Instruktionstabellen der AVR Familie kannst du nun die Dauer eines Assemblerbefehls und die max. Reaktionszeit auf ein externes Ereignis, bspw. eines Interrupt entnehmen. Sollte aber reichen. Damals (tm) gab es auch Einspritzanlagen mit 8051 und Zyklenzeiten von 1 us und die haben auch funktioniert.
Danke! Genau das wollte ich wissen.
Gast
#3143177
Die Arduino Befehle digitalWrite() sind verhältnismässig langsam, weil er da jedes mal noch viel mehr macht und prüft und so. siehe http://www.billporter.info/2010/08/18/ready-set-oscillate-the-fastest-way-to-change-arduino-pins/ http://www.skpang.co.uk/blog/archives/323 http://code.google.com/p/digitalwritefast/
Gast
#3143426
Alex Kom schrieb: > Das währe denn bis zu 200 Mal in der Sekunde(alle 5ms) Die Frequenz ist sicher nicht das Problem. Allenfalls könnte man sich Gedanken machen, wie groß der Jitter sein darf und ob einem da der ganze Arduinozirkus in das genaue Timing reinpfuscht.
Alex Kom schrieb: > ich würde gern wissen, ob es möglich ist mit einem Arduino Board eine > Kraftstoffeinspritzanlage zu steuern. Der Arduino ist ja eher ein Bastelgerät zum Erlernen der µC-Programmierung. Für Deine Anwendung solltest Du den µC direkt programmieren, und zwar zumindest die zeitkritischen Teile in Assembler. Gruss Harald
Harald Wilhelms schrieb: > Für Deine Anwendung solltest > Du den µC direkt programmieren, und zwar zumindest > die zeitkritischen Teile in Assembler. Jo, den Arduino SDK Kram darfst du natürlich nicht benutzen. Machs so, wie Harald sagt, oder prüfe das Zeitverhalten unter C mit dem Simulator in AVR Studio.
Gast
#3143912
Matthias Sch. schrieb: > oder prüfe das Zeitverhalten unter C mit dem Simulator in AVR Studio Statt hinterher zu prüfen, was da für ein Timing rauskommt, sollte man das besser gleich in der Programmstruktur richtig anlegen.
Wolfgang schrieb: > Statt hinterher zu prüfen, was da für ein Timing rauskommt, sollte man > das besser gleich in der Programmstruktur richtig anlegen. Das versteht sich doch von selber :-) Da der avr-gcc aber bei einer normalen ISR ein wenig Overhead einbaut (kann man mit ISR_NAKED allerdings vermeiden) ist der Simulator dann trotzdem ein Anhaltspunkt für die Reaktionszeit.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.