
MirceaM
Membru-
Posts
24 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Everything posted by MirceaM
-
Tolin_afc, Metoda este precisa, absolut multumitoare. Pentru determinarea constantei de etalonare am utilizat valoarea medie CUNOSCUTA a consumului de benzina, anume consumul calculat din banii platiti la benzinarie, pe interval de timp de cateva luni. Separat pentru urban si extraurban. Daca totul este conditionat de existenta presiunii constante in amonte de injector, ce sa spun? Am amintit ca sunt posibile specificitati ale masinii. Reamintesc ca am masurat-o, chiar de cateva ori in ultimul an. Este constanta si egala cu 0.85 bari. Exista regulator de presiune. La masini mai noi este mai mare, spre 3 bari.
-
Domnilor, Eu am rezolvat cazul, anume am facut un computer de bord. Am mai scris, pe ici pe colo. Pentru chestiunea in discutie aici am utilizat metoda a doua mentionata mai sus: contorizarea timpilor de injectie. In furtunul pe unde intra benzina in injector presiunea este constanta. Am si masurat-o, este constanta. Nu avem treaba cu returul, acesta fiind rezolvat inainte de intrarea in injector. Este posibil ca anumite aspecte sa fie specifice tipului de masina, nu neg asta dar este posibil si ca modificarile pentru alte tipuri sa se poata face cu oarecare usurinta. Nu m-am preocupat de asa ceva, nu a fost cazul. Ca sa nu plictisesc si sa raman in subiect, am sa spun doar pe scurt cum am facut. Intr-un interval de timp pe care il numesc mare, anume 1 secunda (una lume utilizeaza interval de 2 secunde), ma uit daca injectorul este deschis sau nu. Examinarea o fac la un interval de timp fix, de 200 microsec deci de 5000 de ori intr-o secunda. Controllerul merge la 16 MHz. Lucrurile sunt arajate hardware sa fie ca "in realitate" in sensul ca (tinand seama ca injectorul este comandat punand un capat al bobinei lui la masa) citesc 0 logic in controller cand este deschis (stropeste) si 1 in cazul contrar. Am tinut seama si de « Peak and Hold » anume am avut grija ca semnalul digital care vine in controller sa fie 0 pe intreaga durata Peak+Hold. Deci numar de cate ori il gasesc ca stropeste. Exemplu concret: cu masina incalzita, la relanti, stropeste de 215 ori pe secunda, valoare destul de stabila. De aici pana la calculul consumului instantaneu exprimat in litri pe ora (pentru rigoarea exprimarii consumul instantaneu este un consum MEDIU pe un interval de timp de 1 secunda) mai este doar un pas, anume aplicarea unui anumit procent (determinat de valoarea de mai sus) unei constante de etalonare. Nu inseamna ca vine informatie noua din secunda in secunda pentru ca intervine si interpolarea. Am decis sa refac afisarea pe LCD la fiecare 0.2 secunde. Utilizand valoarea de la secunda n si de la secunda n+1 fac interpolare liniara ca sa am valori "noi" la fiecare 200 milisec. Pentru calculul consumului instantaneu si mediu in litri pe ora singura legatura intre sistemul cu microcontroller si exterior este cu injectorul. Pentru consumuri in litri la 100 Km este nevoie desigur si de distanta parcursa. Atat, deocamdata.
-
Sonorul poate fi enervant, luminile de avarie nu prea.
-
Cum Dezactivez Stergatoarele La Tasnitoare ?
MirceaM replied to smart_ass's topic in Electronică și software auto
Mai intai as face un comentariu si apoi spun cum am rezolvat eu. Pentru unii pare normal ca daca stropesti atunci sa se si miste stergatoarele, de un numar de ori (de 5 ori, la unele masini). Daca masina sta in garaj, la caldura, daca stergatoarele nu ingheata niciodata pe geam atunci da, e bine si este o facilitate. Dar sunt si oameni (multi, as spune) care isi tin masina in strada. Daca stergatoarele sunt inghetate (cu cauciucul pe geam), omul se urca, nu stie sigur daca sunt chiar inghetate, nu stie sigur daca motorul de stergator va reusi sa le desprinda, nu stie sigur daca lichidul din rezervorul de stropit este inghetat sau nu. Ce poate sa faca? Incearca sa stropeasca, actioneaza maneta. Dar exista o situatie nenorocita. Daca stergatoarele sunt prea inghetate pe parbriz atunci este criminal, as spune, sa incerce de un numar de ori, sa miste stergatoarele, sa traga "precum cainele in lant" (curentul electric creste foarte mult in aceasta situatie)... este, cum ai spus, enervant. Eu am rezolvat problema cumparand un alt releu pentru temporizator, identic cu cel original si modificand in interiorul releului cumparat. Deci cineva mi-a facut aceasta modificare numai in releu si am anulat functia in discutie, cred ca este vorba doar de intreruperea unui traseu. Daca, vreodata, va fi nevoie, pun releul original. -
Imaginea LCD de mai sus este obtinuta in ecranul de pc cu un simulator care interpreteaza fisierul in format Intel HEX al aplicatiei (comp de bord). Aparatul se afla in teste pe o masina Peugeot 405 cu injectie monopunct, ECU Magneti Marelli G6.10. Nu exista o dependenta prea stransa de aceasta masina dar este o conditie ca masina sa fie cu injectie, din cauza modului cum este rezolvat "senzorul de fuel" (contorizare timpi de injectie, cum am descris). Nu am experimentat nimic cu vreun debitmetru si nici nu intentionez. LCD-ul este obisnuit, paralel, alfanumeric de 2x16 caractere. Mai sunt de rezolvat unele chestiuni, in special de aspect. Voi reveni cu o poza reala sau mai multe.
-
Sunt sofer relativ vechi si ar trebui, probabil, sa stiu si deci sa nu mai intreb. Nu este adevarat ca in alte tari se circula "cel putin cu faza scurta aprinsa", pe orice vreme. Cu pozitia aprinsa, da - lucru ce se observa chiar de la Budapesta. Deci intrebarea pe care o adresez este aceasta: Ce prevede legea la noi in legatura cu obligativitatea ca luminile de pozitie (sau faza scurta?) sa fie aprinse, chiar si ziua, indiferent de conditii atmosferice? Sau ce se preconizeaza ca va prevede? Personal consider ca ar fi binevenita si acceptabila obligativitatea ca pozitia sa fie aprinsa absolut in toate cazurile in care masina se deplaseaza, deci minimumul sa fie luminile de pozitie, nu faza scurta. NU MAI CITA POST ANTERIOR IN INTREGIME. POSTUL ESTE OFFTOPIC. FOLOSESTE FUNCTIA DE
-
Nu este nevoie sa sa ne complicam cu aerul. Eu am facut altfel, a se vedea topicul specializat: http://www.daewooclub.ro/forum/index.php?s...opic=7159&st=20 Modul cum am facut nu este original, nu este al meu, este vorba de o metoda destul de consacrata, buna, ieftina. Implementarea insa, proiectare, scriere si testare soft sunt ale mele 100%. Ne gandim la un singur injector, deci la injectie monopunct (daca sunt mai multe injectoare atunci este clar ca acestea functioneaza la fel, echilibrat, oricare 2 injectoare pulverizeaza aceeasi cantitate de fuel - deci este suficient sa existe undeva in soft o inmultire cu numarul de injectoare si totul este Ok). In injector intra un furtun pe unde vine benzina. Benzina este sub presiune (la multe masini presiunea este de 3 bar, la altele este de 0.8 bar). Este esential faptul ca, in toate cazurile, exista regulator de presiune, deci presiunea in amonte de injector este constanta. Pot sa adaug ca am si masurat aceasta presiune ai am constatat ca este foarte constanta, practic acul manometrului sta nemiscat. ECU comanda deschiderea/inchiderea injectorului dupa cum vrea mushkii lui (conform cu tabela principala de fuel existenta in memoria lui - in functie de throttle si de rpm - peste care se vine cu anumite corectii). Cel mai mic interval de timp in care injectorul sta deschis (pulverizeaza) este de 1 milisec. In constructia injectorului se afla o bobina care (atunci cand injectorul este deschis) este parcursa de un curent mare, chiar de 5 amperi. La fiecare intrerupere de catre ECU a pulverizarii apar oscilatii parazite de la bobina. Ideal ar fi sa avem un semnal digital frumos care sa ne spuna pulverizeaza / (nu pulverizeaza) dar un asemenea semnal nu prea este disponibil, decat daca umblam in interiorul lui ECU (ceea ce, nu-i asa, nu este indicat) si deci suntem obligati sa luam semnalul chiar de pe injector, deci de la partea de "forta" de unde rezulta ca trebuie sa facem ceva pentru a ignora acei paraziti. Va rog sa examinati poza atasata. Injectorul stropeste cand semnalul este in 0. Se vede ca, la intreruperea pulverizarii, timp de circa 700 microsec, avem acele oscilatii. Treaba aceasta (ignorarea, ca sa nu ne altereze calculul de consum) se rezolva printr-un simplu delay, pur si simplu in acel interval de 700 microsec trebuie sa consideram ca semnalul este 1 (ca injectorul NU stropeste) indiferent cum este in realitate. Este vorba insa de un delay mai smecher. Daca avem in sistem (in computerul de bord) o intererupere la 100 microsec si daca examinarea starii logice a injectorului se face numai in handlerul acestei intreruperi atunci delay-ul consta in ignorarea a 7 intreruperi consecutive si luarea in calcul a valorii 1, indiferent ca in realitate se batzaie cand in 0 cand in 1. Deci se masoara, intr-un interval mare (de circa 1 secunda) de cate ori injectorul a fost prins (surprins) ca stropeste (valoare retinuta in Vec[0]) respectiv ca nu stropeste (valoare depusa in Vec[1]). Avem 10 mii de examinari (o examinare la 100 microsec). Raportul subunitar Vec[0] / 10000 se inmulteste cu o anumita constanta si ceea ce rezulta este consumul de fuel in L/H inmultit cu 10. Singura problema este cunoasterea/determinarea constantei, treaba care se face prin etalonare. Valori plauzibile (pentru masini intre 1000 si 2000 cc): intre 200 si 500. O valoare concreta (pt o masina de 1600cc): 350. Deci daca admitem ca se va face etalonare atunci nu este necesar sa cunoastem apropric debitul injectorului. In afara de aceste valori de consum in L/H "sosite" la fiecare secunda, mai exista si valori intermediare, obtinute prin interpolare. Practic o noua valoare (disponibila pentru afisare pe LCD sau pentru calculul altei marimi) apare la circa 100 milisec. Se va observa o alta utilitate a consumului exprimat in L/H (ma rog, o utilitate "interna" softului) anume el este utilizat si in calculul celuilalt tip de consum, in Litri la 100 Km parcursi. Mai multe detalii in topicul respectiv.
-
De fapt conditia a carei valoare de adevar (TRUE, FALSE) decide sa se afiseze un anumit tip de consum (in Litri la 100 Km parcursi, respectiv in Litri pe ora) este "viteza >= 20 Km/H". Daca masina este in mers, cu viteza mare, sa spunem de 80 Km/H si daca punem cutia la punctul mort si luam piciorul de pe pedala de acceleratie atunci turatia se va duce la valoarea "Idle rpm" dar masina are o viteza de peste 20 la ora pentru o buna perioada de timp. Aceasta situatie este tot de ralanti dar bord computerul va afisa consumul in Litri la 100 Km si nu in Litri pe ora. Deci putem avea regim de ralanti la orice viteza de deplasare a vehiculului. Decizia de a afisa un tip de consum sau altul nu se ia in functie de faptul "este sau nu este la ralanti" ci in functie de viteza. Este corect sa ne referim la viteza, daca este mai mare sau mai mica decat 20 Km/H. Ne gandim acum la acea situatie de ralanti in care masina sta pe loc. Bord computerul va afisa consumul in Litri pe ora. O valoare plauzibila (pentru o masina pe benzina de 1600cc) este 0.9 L/H. La masini foarte noi poate fi mai putin, chiar si 0.7 L/H. Consideram ca avem masina pe loc, motor rece. Pornim motorul. Masina fiind cu injectie (numai acest caz il discutam) ECU are grija sa tina, la inceput (imediat dupa pornire motor) o turatie mai mare, circa 1500 rpm. Deci toata treaba "socului" (chiar a unui "soc cu revenire automata") este facuta de catre ECU. In momentul initial, consumul este destul de mare, aproape 2 L/H. Pe masura ce motorul se incalzeste consumul scade, turatia scade si ea. Cand turatia ajunge la "Idle rpm", de exemplu 850 rpm, consumul ajunge la 0.9 L/H. In practica arata 0.9 si, din cand in cand, 1.0 L/H. De ce am spus asta? Ca sa arat ca este vorba de o valoare stabila, corespunzator faptului ca motorul merge in regim constant cu sarcina mica (si constanta). Al doilea lucru este acela ca valoarea consumului de fuel (in situatia in discutie) este si utila. Daca omul vede repetat (zilnic) ce afiseaza bord computerul, ajunge repede sa STIE ca masina lui consuma 0.9 L/H iar daca cumva, vreodata, vede 1.2 L/H deja "i se aprinde becul", isi da seama ca s-a intamplat ceva, ca ceva nu e in regula, ca a aparut o defectiune. Deci afisarea acestui tip de consum este folositoare. O alta utilizare posibila (imaginabila) a acestui consum este aceea in care facem anumite experiemente de natura sa influenteze consumul. Este foarte posibil ca acest consum, in L/H, sa ofere informatii despre reusita experimentului, urmarind cum creste sau scade consumul de fuel, ca efect al vreunui reglaj pe care il facem in cadrul respectivului experiment.
-
Butoane One-Touch La Geamuri Electrice
MirceaM replied to mcrusu's topic in Electronică și software auto
Da, e vorba de "stiluri". Ai dat un caz in care stilul Logan poate fi avantajos. Eu mai am unul. Anume realizarea functiei ridicarii geamului la actionarea modulului de inchidere centralizata in sensul de Lock este posibil sa fie mai simpla, totul este ca butonul de Logan sa perceapa acest semnal ca fiind "scurt". Probabil ca este vorba de preferinta. Cum a spus cineva, butonul de Logan nu a fost inca importat ca piesa de schimb de este clar ca vine de la... Renault. Repet ca nu vreau sa laud Loganul, daca vrea cineva hai sa deschidem un topic unde sa-l criticam. glumesc... nu sunt rautacios cu nici o masina. Functii posibile (referindu-ne doar la actionare geamuri) pot fi multe. Iata aici o descriere ce contine si functii mai ciudate: 1) cu contactul pus, geamul dreapta fata se actioneaza in mod similar de la 2 butoane, unul la sofer, altul la pasager: daca apesi in jos si tii mai mult de 1 sec, apoi dai drumul, geamul se deschide complet - se poate anula cu orice click (sus sau jos). Daca apesi jos si tii foarte putin, geamul se deschide cat e butonul apasat. In sus geamul nu merge decat atat cat e butonul apasat. 2) dupa ce a fost pus contactul, apoi se scoate si nu se deschide usa la sofer, geamurile mai functioneaza aprox 2 minute, insa cu diferenta ca o apasare cat de lunga in jos nu mai deschide complet geamul, ci il deschide doar cat e butonul apasat. 3) dupa ce au trecut cele 2 minute, geamurile sunt "moarte" fara contact pus, insa daca este deschisa usa de la sofer, merg conform punctului 2) 4) mai este o chichitza: ca la toate masinile mai noi ale grupului VW, daca atunci cand vrei sa te sui in masina bagi cheia in broasca la sofer, invarti stanga 45 grade ca sa deschizi si mentzii cheia in aceasta pozitie aprox 2 secunde, toate geamurile masinii se deschid!. Invers, cand inchizi, daca tii 2 secunde cheia, toate geamurile se inchid - nu e de la alarma, asa e gandita masina. La ce e util sa coboare toate geamurile (de exemplu)? Asa a gandit un neamt... Personal ma cam deranjeaza existenta prea multor placute si cutiute, firaraia aferenta: modul de inchidere, modul de geamuri, alarma, senzori, modul ajutator la parcare, computer de bord si cate si mai cate se pot imagina. Poate ar fi interesanta o alta abordare, cu un controller serios, de 32K cod. Dar pana atunci multora le-a suras ideea de a elimina unul singur dintre astea, anume modulul de geamuri. -
Adormirea la volan este un pericol real. Cred ca multor soferi li s-a intamplat, datorita oboselii, condusului indelungat, sa aiba tendinta de a adormi. Sigur ca solutia este odihna. Totusi, mai folosim o cafea sau alte modalitati. O fi bun la ceva aparatul asta? http://www.sanatatea.secretul.ro/antisomn.html A folosit cineva asa ceva?
-
Butoane One-Touch La Geamuri Electrice
MirceaM replied to mcrusu's topic in Electronică și software auto
Aici se afla o discutie consistenta despre butoane. http://www.daciaclub.ro/index.php?showtopic=7164&st=0 Altfel, fiecare face cum vrea. Eu am rezolvat aceste probleme si nu imi propun sa influentez pe altii. -
Butoane One-Touch La Geamuri Electrice
MirceaM replied to mcrusu's topic in Electronică și software auto
Dupa cum se vede in pozele din documentul pdf pe care l-am publicat (pagina 2), butonul despre care este vorba are 5 pini, numerotati de la 1 la 5. Intelegerea mea pentru legarea in paralel a 2 asemenea butoane este: 1 se leaga cu 1 de la celalalt buton 2 se leaga cu 2 3 se leaga cu 3 4 se leaga cu 4 5 se leaga cu 5. Exista alta intelegere despre legarea in paralel? Care? Eventual mai "suportam" vreo dioda. -
Butoane One-Touch La Geamuri Electrice
MirceaM replied to mcrusu's topic in Electronică și software auto
Poate nu ai observat ca problemele ridicate pe pejo au fost ridicate de... mine. Eu nu am treaba cu Loganul si nu ma intereseaza ce se intampla la Logan. Aici este vorba despre butonul de Logan, atat Eu am deja butoane (de Logan, smekere) la toate geamurile, cate unul pentru fiecare. Despre montarea in paralel Se doreste ca geamul din fata dreapta sa poata fi actionat din 2 butoane, identice, in urmatoarele conditii: - daca unul dintre butoane este in starea de mijloc atunci geamul sa poata fi actionat din celalalt buton, cu toata stiinta butonului de Logan ("actionare cu impuls", "actionare clasica", limitare de curent). - daca apare situatia de actionare in sus de la un anumit buton (dintre cele 2) si se actioneaza tot sus de la celalalt atunci, evident, geamul sa se duca in sus. Analog pentru cazul "jos". Se accepta aici mici incurcaturi (inversari) in legatura cu "apasare scurta" si "apasare lunga". - daca apare conflict, in sensul ca de la un buton se actioneaza "sus" iar de la celalalt se actioneaza "jos" (sau invers) atunci nu stiu ce sa spun, fie sa execute ultima dintre comenzi fie geamul sa se opreasca... in orice caz se impune sa nu se arda nimic. Acum, dupa ce avem enuntul, eu spun ca legarea in paralel este posibil sa nu rezolve cazul dar este posibil si sa il rezolve. Nu prea sunt obisnuit cu verdicte de genul ca nu se poate, trebuie ca interlocutorul sa ma si convinga. Scurtul posibil de care spui inseamna o crestere de curent (ma rog, brusca). Dar butonul stie ce sa faca la crestere de curent!!! Eu atat spun: mai trebuie studiat, s-ar putea ca legarea in paralel a celor 2 butoane sa rezolve cazul enuntat. Oricum, eu merg pe ideea "cu butoane de Logan si fara nici un alt modul separat pentru geamuri electrice". Am in vedere si ridicare geamuri la armare alarma (la "Lock"). Altfel, nu ne speriem de "umblatul" intr-un buton. -
Butoane One-Touch La Geamuri Electrice
MirceaM replied to mcrusu's topic in Electronică și software auto
Aici exista o discutie legata de subiect. http://www.pejo.ro/forum/index.php?showtopic=976 -
Nu neaparat. Daca motocicleta ar fi avut viteza legala este posibil sa nu fi fost nici un fel de eveniment, este posibil ca impactul sa fi fost evitat. Iar organul cred ca este obligat ca, luand cunostinta de o incalcare a legii (viteza prea mare a motocicletei in acest caz) sa si aplice sanctiunea legala. Adica masina cu vina ei, motocicleta cu vina ei. Ca trebuie sa fim cu ochii in 4 este foarte corect.
-
Butoane One-Touch La Geamuri Electrice
MirceaM replied to mcrusu's topic in Electronică și software auto
Nici eu nu am Logan si nici nu iubesc cine stie ce masina asta. Aici este schema de conectare a butonului pentru geam electric. Logan___Schema_utilizare_buton_geam.PDF -
Butoane One-Touch La Geamuri Electrice
MirceaM replied to mcrusu's topic in Electronică și software auto
In legatura cu ridicatul geamurilor la armare alarma (caz in care se trimite si semnal de Lock catre actuatoarele din usi, eventual catre capota de portbagaj, eventual catre capacul de la benzina) se poate lua acest semnal (Lock) si, tinand seama de nivel si de polaritate, duce in butonul de Logan si rezolva treaba ca_si_cum cetateanul ar apasa pe acest buton, scurt, pentru ridicare geam. Acelasi lucru ar trebui facut si pentru geamul din dreapta, eventual pentru cele din spate - anume sa li se aduca si lor semnalul de Lock. Deci o apasare scurta (eliberarea survine in mai putin de 0.5 sec, cred) inseamna pentru butonul de Logan sa duca geamul pana la capat de cursa (fie sus, fie jos, dupa cum s-a apasat). La capat de cursa stie ce sa faca (sa simta cresterea de curent si sa se opreasca). Din nou va spun ca eu nu stiu exact cerintele, inca nu am citit atent topicul. Am schema de conectare a butonului de Logan. Este vorba de 5 pini. Butonul de Logan merge si la alte masini. Eu l-am pus la un Peugeot si pur si simplu conectorul de Peugeot s-a infipt in butonul de Logan si geamurile au functionat perfect. Singurul lucru care nu a mers "din prima" este iluminarea butonului de Logan, dar nici la varianta originala (cu butoane de Peugeot) nu avusesem rezolvata (desi era posibil) iluminarea butonului. De asemenea, merge si la Clio. Si chiar daca nu ar merge "prin simpla infigere a conectorului" nu este mare lucru, avand aceasta schema de conectare, sa se faca sa fie bine. La intrebarea cat costa un buton de Logan se raspunde mai complicat. Cineva a intrebat la Adras si i s-a spus ca 600 mii lei dar nu il au pe stoc. A intrebat in alta parte si i s-a oferit cu 2 milioane butonul. Dar se poate lua din targ de la Vitan, cu max 200 mii lei. Atentie, este vorba de butonul zis "cu impuls". -
Butoane One-Touch La Geamuri Electrice
MirceaM replied to mcrusu's topic in Electronică și software auto
Butonul de Logan face si chestia cu "intrerupere urcare geam la intalnire obstacol". Imi pare rau ca nu am citit totul cu atentie dar nu prea inteleg de ce nu satisface butonul de Logan? Decat a construi un modul pt geamuri electrice nu este mai simplu a utiliza varianta "fara nici un modul"? Adica cu electronica inclusa in buton. Sa nu se inteleaga ca iubesc Loganul, m-am referit doar la buton. -
Despre Computer de bord ----------------------------------------------- Dupa cum am spus in postul anterior, avand in vedere si comp de bord de pe C3 (care este montat si pe PUG 406) ne gandim la un computer de bord minimal (ce va putea fi dezvoltat) care afiseaza urmatoarele: - consum mediu de fuel, in L/100Km - consum instantaneu, in L/H sau in L/100Km dupa cum viteza este mai mica decat 20 Km/H sau mai mare - durata calatorie, HH:MM - distanta parcursa, sub forma 12345, cu semnificatia 123Km si 450 metri - viteza medie de la inceput calatorie, in Km/H - viteza instantanee, in Km/H - autonomia, in Km, reprezentand distanta care mai poate fi parcursa cu combustibilul existent in rezervor. S-ar mai putea adauga un ceas de 24 ore, sub forma HH:MM:SS. In general, pentru a face un computer de bord ar fi necesare urmatoarele. 1. senzor de distanta parcursa si viteza (cel putin 2000 impulsuri pe kilometru) 2. senzor de fuel consumat 3. baza de timp 4. intrare de la litrometru. Consideram ca masina este cu injectie. Unele dintre informatiile necesare pot fi obtinute prin interogarea computerului de injectie dar aici nu avem in vedere aceasta varianta ci va fi vorba de citire de la senzori. Exista anumite masini, pe injectie, care nu au senzor de viteza deci ECU NU cunoaste viteza de deplasare a vehiculului - caz in care tot la senzor separat ajungem. Senzorul de fuel nu este o componenta separata ci se poate realiza prin contorizarea timpilor de injectie, asa cum este descris mai jos. Montajul cuprinde un controller PIC16F876 si un LCD alfanumeric de 2x16 caractere. Cerinta ar fi urmatoarea. Avem o masina cu injectie monopunct al carei injector corespunde diagramei atasate. 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 4N35. Tensiunea care se aplica pe bobina injectorului este utilizata si pentru aprinderea ledului din interiorul optocuplorului, desigur cu o rezistenta corespunzatore in serie. 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). Mai exista in program un vector VEC cu 2 componente intregi pe 16 biti. 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 senzorului de fuel 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.. 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-o (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. 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.
-
Nu Lasati Cheia In Contact Peste Noapte!
MirceaM replied to mihaim's topic in Electronică și software auto
Da, am spus 4-5 nopti si trebuia sa spun 4-5 "succesiuni consecutive a cate 24 ore". Asa e bine? Si e vorba de descarcare "doar" intr-atat incat masina sa nu mai porneasca, sa nu mai actioneze demarorul ca lumea. Cine a vrut sa inteleaga, a inteles... -
Nu Lasati Cheia In Contact Peste Noapte!
MirceaM replied to mihaim's topic in Electronică și software auto
In legatura cu cazul pot sa spun ca un curent de circa 300 mA permanent prin baterie provoaca, dupa 4-5 nopti de repaus, ne-pornirea masinii din motiv de descarcare baterie. Un asemenea caz se intampla la anumite radiouri (Sony+Magazie CD dar nu numai) care nu sunt corect montate/alimentate, anume sunt alimentate cu +permanent (nedependent de contact) pe ambele fire. Nu asa este corect. Cand masina sta in repaus "absolut", curentul prin baterie trebuie sa fie sub 100 mA. -
Daca, de exemplu pornim masina si o tinem pe loc 15 minute (sa spunem doar cu scopul sa o incalzim sau e foarte frig si vrem sa mai incarcam bateria) ce consum in L/100 Km ar putea sa indice? Intrucat nu s-a parcurs nici o distanta (sau distanta parcursa este zero, ceea ce este acelasi lucru) si intrucat in calculul consumului instantaneu apare o impartire la distanta parcursa, ce consum ar putea sa indice? Nu numai ca ar fi foarte mare dar nici nu are sens. Asa fiind, la mai multe masini se afiseaza o alta marime, anume sub 20 Km/H (deci inclusiv cand masina sta pe loc) se calculeaza si afiseaza consum de fuel in Litri pe ora iar peste 20 Km/H se calculeaza si afiseaza consum de fuel exprimat in Litri la 100 Km parcursi. Dupa cum s-a mentionat, la viteze mici Loganul nu afiseaza nimic, ceea ce constituie o mica bila neagra.
-
Da, ai dreptate. "Instantaneu" se refera la un interval de timp nul si, intrucat apare si o impartire, stiind ca nu se poate imparti prin 0... apar probleme. Totusi, situatia este asemanatoare cu "viteza instantanee" sau cu altele si a fost rezolvata cu peste 300 ani in urma de catre Newton si Leibniz (creatorii calculului infinitezimal) care au dat un sens notiunii de derivata etc.. Revenind la cele practice, pentru noi consumul instantaneu este tot un consum mediu dar pe un interval de timp suficient de mic. "La fel", viteza instantanee este viteza medie calculata pe un interval de timp suficient de mic, de exemplu 1 secunda. Este vorba de comp de bord pe Opel Astra? As vrea sa vad si eu detalii, poze, manual de utilizare, se poate? De exemplu, aici se afla un mic manual de utilizare pentru comp de bord la Citroen C3. BordComp.PDF
-
Mai intai, ca nou venit pe forum, va adresez salutul meu. In legatura cu chestiunea computerului de bord, va supun atentiei cateva idei. Este vorba de calatorie cu masina. Dar ce intelegem prin calatorie? Sunt cazuri simple, clare dar sunt si situatii mai greu decidabile. Omul isi poate planifica o calatorie de la Bucuresti pana la Paris dar doreste sa zaboveasca cateva zile la Budapesta, cateva zile la Viena etc.. Cand ajunge la Paris (sa spunem dupa o saptamana) presupunem ca va dori sa vada pe comp de bord viteza medie a calatoriei Buc.-Paris. Intrucat in calculul vitezei medii intra si timpul (durata), apare intrebarea fireasca: timpul de 3 zile, petrecut la Budapesta, timp in care masina (presupunem) a stat pe loc (nu a fost pornita), trebuie adaugat la durata calatoriei sau nu? Aici nu am raspuns ferm, cred ca este discutabil. Cred ca este de dorit, daca se poate, ca omul (soferul) sa nu apese pe nici un buton pentru a marca "stationarea indelungata". Aud ca Skoda considera ca facand parte din calatorie stationarile numai daca sunt mai mici decat o anumita valoare, de ex. 2 ore. Ce parere aveti? Altfel, la chestiunea pus initial in acest topic, cred ca un computer de bord ar putea sa inceapa destul de modest si, eventual, sa fie dezvoltat pe parcurs. Initial ar putea asigura/afisa urmatoarele: - consum mediu, in L/100Km - consum instantaneu, in L/H sau in L/100Km dupa cum viteza este mai mica decat 20 Km/H sau mai mare - durata calatorie, HH:MM - distanta parcursa in Km, sub forma 0000-9999 - viteza medie de la inceput calatorie, in Km/H - viteza instantanee, in Km/H - autonomia, in Km, reprezentand distanta care mai poate fi parcursa cu combustibilul existent in rezervor.