Flytdiagram for motorstyring Hovedprogram Figur X Flytskjema for hovedprogrammet
Synkronisering Når det første stemplet til motoren er på TDC (Top Dead Center) og kamakselen er i innsug fasen. Deretter er det 720º rotasjon med veiva i en syklus. Altså må vi få mikrokontrolleren til å vite posisjonen til motoren i grader 0º til720º og modusen til kammen, om den er i innsug eller eksos ( presse eksosen ut av kammeret). Synkroniseringsdelen må dermed ta hensyn til signalene fra både veiva og kammen. Ut fra signalet fra veiva må vi også beregne RPM. Vi må også finne ut i hvilken fase motoren er i, så mikrokontrolleren vet om motoren er i innsug/eksos fase eller i kompresjon/eksplosjons fase. Figur X Flytskjema for synkronisering Denne delen av programmet skjer i oppstartsfasen, det er her mikrokontrolleren synkroniserer seg med motoren. Mikrokontrolleren kommer til å få ett avbrudd hver gang det kommer ett signal fra veiva, i dette avbruddet vil første_gang_tdc bli satt til 0, om mikrokontrolleren har blitt synkronisert. Så i denne delen sjekker bare kontrolleren om første_gang_tdc er blitt satt til 0 før den går videre.
Bergene tilleggsinnsprøytning Tilleggsinnsprøytningen skal ta hensyn til ett par parameter. Det må tas hensyn til motortemperatur, siden ved lave temperaturer vil noe av bensinen sette seg på motorveggen i innsuget og i kammeret, dette fører til at det blir mindre bensin i luften enn antatt ved normal temperatur. Luft temperatur: Ved forskjellige temperaturer vil luften ha forskjellig densitet. Ut fra Avrogadros lov, tilstandsligning for en idealgass. (P*V)/T=C C=K*N K er Boltsmann konstanten = 1,38*10-23 J/K Ut fra denne formelen får vi at hvis temperaturen øker mens trykket og volumet forblir uendret vil antall molekyl minske. Og motsatt hvis temperaturen synker får en mer molekyl på samme volum. Det samme gjelder for trykk. Økt trykk fører til økning i molekyler, mens minking fører til færre molekyl ved samme volum. Batterispenningen gir utsalg på åpningstiden til injektordysene. Ved lav spenning bruker injektorene lengre tid på å åpne ventilen fullt enn ved høyere spenning. Dette kan variere fra dyse til dyse, så dette må være en variable som blir satt i grensesnitt programmet. Figur X Flytskjema for tilleggsinnsprøytning
Beregne bensinmengde Her er det egentlig to måter for beregning, lukket og åpen sløyfe. Åpen sløyfe bruker sensorene til å bestemme hvilken bensinmengde det skal være ut fra tabellen. En må interpolere mellom verdiene hvis en havner mellom to punkter i tabellen. Lukka sløyfe er når verdiene som blir plukket ut fra sensorene hele tiden blir korrigert med hensyn til O 2 sensoren (lambda sensoren). Dette blir gjort for at katalysatoren skal fungere og ikke bli ødelagt. Lukka sløyfe kan bare bli brukt ved lav last på motoren, altså ikke ved akselerasjon og ved stort pådrag for eksempel maks gass. Figur X Flytskjema for bensinmengde
Tenningstidspunkt Tenningstidspunktet tas ut fra tabellen som programmeres fra dataen. Samme størrelse som innsprøytning tabellen og tallene må interpoleres mellom nærmeste verdier for å få mest nøyaktig resultat som mulig Figur X Flytskjema for tenningstidspunkt
Innsprøytningstidspunkt Tidspunktet for innsprøytning er viktig for at bensinen blir sprøytet inn i luften før ventilen stenger, slik at all innsprøytet bensin kommer inn i kammeret. Det vil si at innsprøytningstidspunktet har med lengden av pulsen til injektorene pluss at det bør være mulighet for en offset justering som kan programmeres i windows grensesnittet. Figur X Flytskjema for innsprøytningstidspunkt
Avbruddsrutine for kamm fase Figur X Flytskjema for avbrudd kamm fase