Sistem alimentare combustibil
Introducere
Prezentare concept proiect
Ideea proiectului este de a realiza un sistem de alimentare pentru un vehicul cu motor cu ardere interna. Sistemul folosește 2 senzori de temperatura, unul pentru mediul exterior și unul pentru temperatura motorului, astfel în funcție de valorile furnizate de cei 2 senzori combustibilul o sa fie eliminat din rezervor de o pompa de apa în mod diferit.Pentru o verificare a funcționalității sistemului exista și un debimetru conectat la pompa, dar și un senzor de apa pentru a verifica dacă lichidul furnizat de pompa ajunge la destinație. Pentru o monitorizare mai ușoară a întregului sistem exista și un lcd care va afișa modul în care se afla pompa de apa și valoarea indicată de debimetru.
Scopul sistemului
Ideea inițială a proiectului
Initial am pornit de la fântâna de apa a motanului meu, fântână care foloseste o simpla pompa de apa de 12 v și câteva tuburi pentru a direcționa apa, iar în lipsa altei idei de proiect am încercat sa mă gândesc cum ar arata o evoluție aplicată pentru aceasta fântână de apa în domeniul auto și cum urmăresc Formula 1 mi-am adus aminte de faptul ca motoarele din Formula 1 nu folosesc mereu aceeași cantitate de combustibil pentru ca au nevoie uneori de un amestec diferit în funcție de mai multi factori, astfel am ajuns la concluzia ca pot influenta comportamentul unei pompe de apa cu PWM după datele furnizate de senzori de temperatura și sa verific în timp real comportamentul pompei de apa cu un debimetru și un senzor de ploaie.
Utilitatea proiectului
Nevoia de a muta un lichid dintr-un loc în altul cu un debit variabil și în funcție de datele obținute de niște senzori nu este o aplicație strict auto și se poate aplica în alte scenarii cu ușurință precum industria agricolă unde plantele pot avea nevoie de cantități diferite de apa în funcție de temperatura și sezon, astfel un proiect precum al meu se poate adapta ușor unor noi cerințe pentru a furniza o soluție eficienta atât energetic, cât și financiar. Un alt aspect legat de proiect îl reprezintă scalabilitatea, având în vedere conectivitatea de care dispune un Arduino se pot adauga ușor noi senzori sau un nou Arduino care sa se folosească de datele utilizate de acest sistem pentru a dicta comportamentul altui sistem, rămânând în sfera auto un Arduino care controlează un termostat ar avea nevoie de datele furnizate de senzorii de temperatura și debitul pe care îl are pompa de combustibil.
Descriere generală
* Senzorul 1 de temperatura va furniza temperatura pentru mediul exterior, iar senzorul 2 de temperatura o sa fie un senzor de temperatura de tip sonda și va furniza temperatura variabila a unui motor cu ardere interna sau a apei dintr-un recipient pentru simulare.
Arduino-ul va prelua informațiile de la cei 2 senzori și va procesa datele pentru a alege unul din cele 3 moduri de control pentru pompa de apa. Denumirea modului de funcționare o sa fie afișată de LCD și Arduino-ul va controla prin PWM pompa cu posibilitatea de a efectua modificări pe baza datelor preluate de la debimetru, iar aceste date se vor afișa pe LCD. Senzorul de apa funcționează ca un sistem de diagnoza, de la 10 secunde de la pornirea pompei de apa se verifica dacă apa a ajuns la destinație prin datele furnizate de acest senzor și în cazul în care nu exista apa după 10 secunde se trece într-un mod de sleep pentru a proteja pompa întrucât asta înseamnă ca nu mai exista lichid în rezervor pentru pompa.
*
Hardware Design
Componente și schema electrica EAGLE:
Arduino Uno
Breadboard
Modul senzor de temperatura
Senzor de temperatura MAX6675
Debimetru
LCD cu modul I2C integrat
Senzor picaturi de ploaie
2 * Recipient apa
Tub flexibil
-
Software Design
Descrierea codului aplicaţiei (firmware):
În partea de Setup a proiectului setez baudrate-ul la 9600, setez pin-ul care controlează pompa de apa pe modul de output și folosesc un apel de lcd.begin pentru a putea utiliza lcd-ul mai departe.
Pentru a prelua temperatura de la senzorul de temperatura TMP36 folosesc un apel de analogRead, iar pentru valoarea primită fac o conversie de la tensiune la grade Celsius. Chiar dacă am stabilizat senzorul folosind un capacitor și o rezistenta exista uneori diferențe mai mari de 4 grade între valori consecutive, astfel o sa folosesc o variabila numite finalTemp, aceasta reprezentând media ultimelor 10 valori primite de la senzor.
In privinta senzorului de temperatura de tip sonda(MAX6675) folosesc biblioteca de Adafruit disponibilă și cu ajutorul unei Instanțe a modulului pot sa citesc temperatura într-un mod rapid, fără sa realizez shiftari și sa fac prelucrări asupra datelor primite direct de la senzor.
Pentru senzorul de ploaie consider ca am lichid pe senzor dacă valoarea se afla sub un prag(valoarea maxima(atunci când nu se afla lichid pe senzor) - 10% din valoarea maxima).
Pentru controlul pompei de apa am 3 case-uri dictate de Valorie preluate de la senzori și folosesc un analogWrite cu valori cuprinse între 4 și 255. Chiar dacă pompa de apa nu este una de putere mare diferența între moduri se poate observa atât în valoarea indicată de decimetru, cât și în sunetul emis de pompa atunci când folosim 255 sau 200 pentru analogWrite().
Pentru debimetru folosesc întreruperi și la fiecare secunda împart suma valorilor primite de la întreruperi la 7.5 pentru a afla debitul în l/min.
Software utilizat:
Arduino IDE
Biblioteci: LiquidCrystal I2C, hd44780.h, max6675.h, wire.h, SPI.h, hd44780ioClass/hd44780_I2Cexp.h.
Eagle pentru schema electrica
Rezultate Obţinute
Concluzii
Partea de citire a temperaturii și a prezentei unui lichid cu ajutorul senzorilor este destul de modulara și în esența se poate aplica foarte ușor pentru alte proiecte cu alte aplicații sau accesorii fata cele folosite, singura problema reprezentând-o utilizarea aproape completa a porturilor analog de pe plăcută Arduino. Limitarea de putere a Arduino-ului este vizibila în privința comportamentului pompei de apa.
In privința senzorilor trebuie menționat faptul ca mă așteptam sa fie mult mai ușor de folosit, aproape plug and play, dar senzorul TMP36 a reprezentat cea mai mare provocare, nu exista biblioteca precum cea pentru max6675, utilizarea valorii este dificila în cazul în care senzorul nu este stabilizat cu un capacitor și o rezistenta, valoarea primită de senzor la VCC nu este garantata la 5V mereu, astfel pe viitor pentru un proiect similar aș utiliza senzori digitali sau senzori care sa ofere suport software prin biblioteci.
Download
Bibliografie/Resurse