Sari la conținut
ELFORUM - Forumul electronistilor

Bord electronic


RealAlex

Postări Recomandate

Iata cum fac citirea informatiei de la injector.

 

Cerinta ar fi urmatoarea.

Avem o masina cu injectie monopunct al carei injector corespunde diagramei din postul anterior. Pentru mai multe injectoare se va putea face la fel dar va exista undeva in soft o inmultire cu numarul injectoarelor.

Ca hardware folosim o schema cu optocuplor, asemanatoare cu cea descrisa si aratata de catre TCM. Deci colectorul optocuplorului se duce direct pe pin de PIC cu o rez de 2k2 spre +5V. S-a tinut seama ca injectorul stropeste (pulverizeaza) benzina atunci cand firul lui de comanda (care vine direct din ECU, pin 18 la Magneti Marelli G6) este trecut in 0 si s-au aranjat lucrurile sa fie la fel si pentru PIC, anume 0 logic citit in PIC inseamna ca injectorul stropeste.

Se cere sa se determine consumul instantaneu de benzina exprimat in litri pe ora.

Acest consum este afisat atunci cand vehiculul se deplaseaza cu o viteza mai mica de 20 Km/H si este util, de exemplu, atunci cand masina sta pe loc, cu motorul pornit iar soferul efectueaza unele reglaje sau experimente, caz in care poate sa urmareasca si valoarea consumului instantaneu pe LCD-ul computerului de bord, ca ?feedback? la experimentul pe care il face.

Mai multe masini procedeaza astfel, anume sub 20 Km/H afiseaza consumul instantaneu in L/H iar peste aceasta viteza afiseaza consumul instantaneu in L la 100 Km. Mai multe dar nu si Logan-ul care, sub 20 sau 25 Km/H, nu afiseaza nimic (ce rau sunt! :) ).

 

Am imaginat acest enunt (fara sa ma refer deci la modul cum se calculeaza consumul instantaneu in litri la 100 Km) pentru a nu fi nevoie sa fac referire la senzorul de distanta, la distanta parcursa, la viteza - deci pentru a simplifica povestirea. Despre consum de fuel exprimat in litri la 100 de Km parcursi va fi vorba mai tarziu (mai jos).

 

Intrucat vom dori ca orice consum de fuel sa fie afisat sub forma ##.# si tinand seama ca nu dorim sa utilizam virgula flotanta (care este o pacoste pentru orice program si orice programator ? scuze pt aceasta afirmatie) vom lucra cu acest consum inmultit cu 10.

Deci se cere sa se determine CI_LPHx10 (succesiunea x10 face parte din numele variabilei) care este de tip unsigned int de 16 biti.

De exemplu daca valoarea acestei variabile este 12 aceasta inseamna un consum instantaneu de 1.2 L/H si la afisare se va avea grija (lucrand numai cu intregi) ca valoarea sa arate in acest fel, afisand mai intai CI_LPHx10/10, apoi caracterul punct si apoi CI_LPHx10%10. Este vorba de scriere ca in C, deci "A%B" (cu A si B intregi) inseamna "A modulo B" adica restul impartirii intregi a lui A prin B.

 

(Dupa cateva variante si incercari) am decis sa am o singura intrerupere in sistem, la evenimentul TMR1 overflow (65535 -> 0) iar la intrarea in isr (interrupt service routine) am grija sa reincarc timerul cu o valoare care sa asigure aparitia evenimentului (intreruperii) la 100 microsec.

 

In isr se citeste starea injectorului intr-o variabila de tip BIT numita INJ. Deci avem starea curenta a injectorului, anume INJ = 0 sau 1 dupa cum injectorul stropeste benzina / (nu stropeste).

Apoi se executa instructiunea (esentiala pt metoda folosita):

VEC[iNJ]++;

 

Aceasta se intampla la fiecare 100 microsec un anumit interval de timp pe care l-am ales sa fie 1000 milisec, interval la care recalculez (updatez) valoarea lui CI_LPHx10. In afara de aceste valori care apar la fiecare secunda exista si valori intermediare, obtinute prin interpolare.

VEC[0] si VEC[1] reprezinta numarul care arata de cate ori (in intervalul de 1000 milisec) injectorul a fost surprins ca stropeste, respectiv nu stropeste.

Am avut grija sa desconsider intervalul de timp de circa 600 microsec in care avem paraziti de la bobina injectorului (vezi diagrama de osciloscop), anume in acest interval de timp sa consider ca INJ este in 1 indiferent cum este in realitate.

 

La fiecare granita de 1000 milisec se pozitioneaza un flag (bit) pentru ca bucla principala a programului sa stie ca are de efectuat updatarea valorii marimii in cauza (calculul - updatarea - si afisarea pe LCD nu se fac in isr).

Calculul este:

CI_LPHx10 = ( VEC[0]*CONSTANTA ) / ( VEC[0]+VEC[1] );

VEC[0] = VEC[1] = 0; // reinitializare

 

Bineinteles ca numitorul in impartirea de mai sus este constant si egal cu 10000 (pentru ca intreruperea apare la 100 microsec iar la fiecare intrerupere se face o incrementare, fie a unei componente a vectorului fie a celeilalte) dar sa lasam asta acum.

Deci se observa ca de fapt se calculeaza un fel de procent (subunitar) din CONSTANTA.

 

Etalonarea despre care ai intrebat se reduce la a determina valoarea corecta pentru CONSTANTA. Valorile plauzibile, ca ordin de marime, sunt intre 200 si 500. O valoare plauzibila concreta (pentru masina mea, de 1600 cc) este de 350.

Cunoasterea debitului injectorului o consider doar orientativa si NU am utilizat aceasta valoare. Sunt posibile schimbari dupa ani si ani de functionare, sunt posibile schimbari dupa o curatare a injectorului etc.. Este cert ca, si pe aceasta cale, s-ar ajunge la aceleasi rezultate.

Cat priveste presiunea benzinei in amonte de injector, la multe masini este de 3 bar iar la altele este de 0.8 bar. Eu spun ca regulatorul de presiune isi face datoria, pot sa spun ca la mine am masurat presiunea (cu un manometru la care am atasat un T si 2 furtune) si am vazut ca acul ramane nemiscat la valoarea de 0.8 bar.

 

In lipsa altor echipamente de masura, soferul poate sa determine (daca cumva nu stie) cat consuma masina pe highway, in mers constant cu 90 sau 100 Km/H si sa modifice (folosind anumite facilitati ale sistemului: jumperi, setari din taste in sesiunea de setup) valoarea pentru CONSTANTA pana cand LCD-ul arata (in aceleasi conditii de drum si de mers) consumul care trebuie (cel stiut, determinat fara referire la computerul de bord).

Ca rezultat final pot sa mentionez ca, la pornirea motorului rece, valoarea acestui consum este stabila si scade treptat, pe masura ce motorul se incalzeste iar la 90 grade (cand turatia deja a scazut la valoarea nominala de 850 rpm) indicatia de consum este fie 1.0 L/H fie 1.1, valoare destul de stabila, ceea ce consider satisfacator. Urmeaza sa vad cum va fi la temperaturi exterioare mai "extreme" sau in alte situatii.

 

Daca CI_LPHx10 este corect (deci dupa etalonare) atunci celalalt consum instantaneu, anume CI_LPER100KMx10 este corect ?de la sine?, conform cu formula:

CI_LPER100KMx10 = ( CI_LPHx10*100 ) / VI_KMPERH ;

cu conditia ca si etalonarea senzorului de distanta sa fie facuta. Mentionez din nou ca succesiunea x10 care apare mai sus face parte din numele variabilelor respective, avand rolul sa aminteasca doar faptul ca variabila respectiva nu retine consumul instantaneu ci consumul instantaneu inmultit cu 10.

 

Etalonarea in cazul senzorului de distanta este mai simpla. Lucrurile ?se reduc? tot la determinarea valorii unei anumite constante dar in acest caz se poate lua ca etalon insusi bordul masinii: cat arata kilometrajul clasic (sau acul indicator al vitezometrului sau afisajul de la Arcul de Triumf :) ) tot atat trebuie sa fie si valorile afisate pe LCD pentru distanta parcursa, respectiv viteza instantanee. Sigur ca dupa ce "electronicele" merg bine tinem minte valorile constantelor de etalonare (care, foarte probabil, sunt specifice tipului de masina) si ne putem gandi chiar la eliminarea sistemelor vechi (bordului clasic).

 

Cam asta este. :)

Cred ca mi-ar placea sa ma ocup de asemenea lucruri (mai serios).

 

In imaginea de LCD atasata se observa urmatoarele marimi:

- consum mediu de fuel: 7.1 Litri la 100 Km

- consum instantaneu de fuel: 9.2 Litri la 100 Km

- durata calatorie: 13 minute 34 secunde (in final va fi in ore si min)

- distanta parcursa: 10Km 260 metri

- viteza medie: 50 Km/H

- viteza instantanee: 89 Km/H.

Link spre comentariu
  • 3 luni mai târziu...

am gasit intr-o cartulie "Manualul electricianului auto - pentru scoli profesionale" niste date interesante despre indicatorul de nivel, de presiune a uleiului de ungere si de temperatura a apei de racire...PS: evident ca pot fi variatii ale valorilor, dar informativ cam in zona asta sunt :supz:

Link spre comentariu
  • 3 săptămâni mai târziu...
Vizitator vierme_ha

am facut turometrul pe leduri dupa schema scanata din tehniumul ala mai vechi de niq-ro...evident dupa ce am facut un cablaj nou,ca cel de la leduri nu este bun.l-am refacut eu si a mers...ce nu-mi place:1.ca nu este ca o scala...ci se aprinde cate un led la o marja de 400 turatii...cand este intre anumite nx400 turatii se aprinde cand unul cand celalalt...2.nu am nimerit reglajul potentiometrului de calibrare asa ca niciodata nu mi s-au aprins ledurile rosii(5600 si 6000 ture) desi i-am dat 7000 si ceva..3.fata de ac(analogic) are o viteza de raspuns muult mai mica...exista vreun echivalent sau eu stiu un alt CD cu 24 picioruse care sa faca scala? aveti alta schema cu turometru pe leduri? :d (neaparat cu scala :) )

Link spre comentariu
  • 3 luni mai târziu...

cine vrea turometru cu leduri, cu pana la 100 de leduri sa caute lm2907 (convertor frecventa voltaj) si lm3914 (driver pentru 10 led-uri).o sa fac o schema si daca functioneaza corect o sa postez la bursa o oferta irezistibila. pentru ca ma chinui de mult sa fac asa ceva, si cum am fost la pamant cu electronica, stiu cum e sa cauti ceva sa nu stii de unde sa incepi. stiu ca e de efect si ca multi ar vrea asa ceva, asa ca o sa vin in ajutor :)

Link spre comentariu

ce era cu rezistenta aia de e taiata pe schema cu 2 uaa180?chiar ma gandeam daca mai exista drivere de led-uri, se pare ca uaa180 e un piculet mai ieftin decat 3914. daca mai pun unul ies 36 de leduri, aproape de 4 3914, deci inca o economie. foarte multumesc! :)

Link spre comentariu
  • 10 luni mai târziu...
  • 2 săptămâni mai târziu...

Metoda asta (masurarea presiunii in galeria de admisie )se foloseste si in ziua de azi pe masini clasa medie inferioara care au "computer de bord". Eu constatat cu stupoare la masina mea (vw golf) ca in bord desi are un controler destul de performant, mai apare o capsula detasabila cu un stut pt furtun si care scoate o tensiune intre 0 si 7V oarecum proportionala cu consumul, dar eroarea e peste 10-15% comparativ cu ce am masurat pe vag-com.Daca te aranjeaza asa ceva, poti cauta la dezmembrari asemenea capsule, la vw golf se gaseste in bordul de GTI, din cite stiu eu sint pe generatiile (I-IV)

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări