Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2023:alucaci:automatedcompressor [2023/05/25 14:18]
petru.zincenco [Componente hardware]
pm:prj2023:alucaci:automatedcompressor [2023/05/30 11:05] (current)
petru.zincenco
Line 1: Line 1:
 ====== Compresor Auto ====== ====== Compresor Auto ======
-Petru Zincenco 333AC+<​code>​ 
 +Petru Zincenco ​ 
 +333AC 
 +</​code>​
  
 La început, nu mi-a fost clar cum să abordez acest proiect, deoarece ideile mele nu aveau aplicabilitate practică în utilizarea mea de zi cu zi. Totul s-a schimbat într-o zi, când mașină mea a făcut pană și am constatat că compresorul meu nu funcționa. Astfel, obiectivul acestui proiect este de a automatiza funcționarea compresorului,​ astfel încât să îmi fie mult mai ușor să îl operez. La început, nu mi-a fost clar cum să abordez acest proiect, deoarece ideile mele nu aveau aplicabilitate practică în utilizarea mea de zi cu zi. Totul s-a schimbat într-o zi, când mașină mea a făcut pană și am constatat că compresorul meu nu funcționa. Astfel, obiectivul acestui proiect este de a automatiza funcționarea compresorului,​ astfel încât să îmi fie mult mai ușor să îl operez.
 ====== Componente hardware ====== ====== Componente hardware ======
- 
-Componentele hardware utilizate în proiect sunt: 
- 
-Microcontrollerul Arduino Nano\\ 
-Senzor de presiune\\ 
-Display LCD 16x2 I2C\\ 
-Buton rotativ (OKY3431-4)\\ 
-Releu (SSR-40DD)\\ 
-Step down (LM2596)\\ 
  
 Step-down joacă un rol crucial în acest proiect, deoarece Arduino Nano necesită o tensiune de alimentare de 5V, în timp ce tensiunea disponibilă în bateria mașinii variază între 12-14V. Prin intermediul acestei componente, tensiunea este convertită la nivelul necesar pentru a asigura funcționarea corectă a Arduino Nano.\\ Step-down joacă un rol crucial în acest proiect, deoarece Arduino Nano necesită o tensiune de alimentare de 5V, în timp ce tensiunea disponibilă în bateria mașinii variază între 12-14V. Prin intermediul acestei componente, tensiunea este convertită la nivelul necesar pentru a asigura funcționarea corectă a Arduino Nano.\\
Line 22: Line 16:
 Pe afișajul de 16x2 caractere vor fi afișate următoarele informații:​ presiunea în roată și presiunea dorită. Comunicarea între Arduino Nano și afișajul LCD este realizată prin intermediul protocolului I2C.\\ Pe afișajul de 16x2 caractere vor fi afișate următoarele informații:​ presiunea în roată și presiunea dorită. Comunicarea între Arduino Nano și afișajul LCD este realizată prin intermediul protocolului I2C.\\
  
 +==Componentele hardware utilizate în proiect sunt: ==
 +  * Microcontrollerul Arduino Nano
 +  * Senzor de presiune
 +  * Display LCD 16x2 I2C
 +  * Buton rotativ (OKY3431-4)
 +  * Releu (SSR-40DD)
 +  * Step down (LM2596)
 {{ :​pm:​prj2023:​alucaci:​electricalscheme.png?​750 |}} {{ :​pm:​prj2023:​alucaci:​electricalscheme.png?​750 |}}
 +<note tip>​Puteți obține o copie în format PDF a schemei electrice prin descărcare de aici.
 +{{:​pm:​prj2023:​alucaci:​schematic_carcompressor.pdf|}}
 +</​note>​
  
  
Line 32: Line 36:
 {{ :​pm:​prj2023:​alucaci:​blockscheme.png?​450 |}} {{ :​pm:​prj2023:​alucaci:​blockscheme.png?​450 |}}
  
-Am scris codul în mediul Arduino IDE și am utilizat o singură bibliotecă externă, denumită "​Adafruit_LiquidCrystal.h", pentru a implementa ​funcționalitatea ​I2C.+**Descrierea funcțiilor:​** 
 + 
 +În funcția setup(), se realizează inițializarea pinilor și a afișajului LCD. De asemenea, se configurează întreruperile pentru encoder și un timer pentru citirea valorii presiunii la fiecare 100 de milisecunde. \\ 
 + 
 +Funcția shaftMoved() este apelată atunci când encoderul este rotit și ajustează presiunea țintă ​în funcție de direcția de rotație a encoderului. \\ 
 + 
 +Funcția setPressure() afișează pe LCD valoarea presiunii țintă setată de utilizator. Dacă butonul de pe encoder este apăsat, se trece la următoarea etapă a procesului. \\ 
 + 
 +Funcția pumpAir() afișează pe LCD valoarea presiunii țintă ​și presiunea reală citită. Se activează compresorul și se monitorizează presiunea. Dacă presiunea reală depășește valoarea țintă, compresorul se oprește și procesul se încheie. \\ 
 + 
 +Funcția displayForceStop() afișează un mesaj de oprire forțată pe LCD și oprește compresorulApoise revine la meniul principal. \\ 
 + 
 +Funcția forceStop() verifică dacă butonul a fost apăsat timp de cel puțin 1 secundă ​pentru a opri procesul de umflare în mod forțat. \\ 
 + 
 +În funcția loop(), se verifică dacă procesul trebuie oprit în mod forțat sau dacă se continuă cu procesul de umflare. În funcție de valoarea variabilei panel, se apelează funcțiile corespunzătoare. \\ 
 + 
 +Funcția getPressure() citește valoarea presiunii de la un senzor analog și o convertește într-un interval de la 0 la 10. \\ 
 + 
 +În întreruperea TIMER1_COMPA_vect,​ se actualizează valoarea presiunii și se gestionează timpul de așteptare pentru citirea precisă a presiunii. \\ 
 +<note tip>​Această întrerupere controlează atât citirea presiunii din roată, cât și activarea compresorului. Pentru a asigura o citire corectă a presiunii, compresorul nu poate fi pornit în același timp, așadar compresorul va fi activ timp de 35 de secunde, urmat de o secundă în care se va efectua citirea presiunii. 
 +</​note>​ 
 +== Mediu de dezvoltare == 
 + 
 +  * Ca mediu de dezvoltare am folosit Arduino IDE. 
 +  * Pentru controlul display-ului cu I2C am folosit biblioteca LiquidCrystal_I2C\\ 
 +https://​github.com/​fdebrabander/​Arduino-LiquidCrystal-I2C-library
  
-====== ​Constructie ​======+====== ​Download ​====== 
 +Codul sursă pentru compresor poate fi descărcat de aici.// 
 +{{:​pm:​prj2023:​alucaci:​automatedcompressor.zip|}}//​
  
 +Puteți descărca o copie a paginii în format PDF de aici.
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
  
pm/prj2023/alucaci/automatedcompressor.1685013498.txt.gz · Last modified: 2023/05/25 14:18 by petru.zincenco
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0