Table of Contents

Sistem alimentare combustibil

Constantin Cristian 336CC

Introducere

Prezentare concept proiect

Scopul sistemului

Ideea inițială a proiectului

Utilitatea proiectului

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

Export to PDF