Forum: Mikrocontroller und Digitale Elektronik Arduino Schaltgeschwindigkeit


von Alex K. (sanjakom)


Lesenswert?

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

von troll (Gast)


Lesenswert?

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.

von Alex K. (sanjakom)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Alex K. (sanjakom)


Lesenswert?

Danke! Genau das wollte ich wissen.

von Hund (Gast)


Lesenswert?

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/

von Michael A. (Gast)


Lesenswert?

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.

von Harald W. (wilhelms)


Lesenswert?

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

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.