Can crusher - Popa Peter
Introducere
Prezentarea pe scurt a proiectului vostru:
Proiectul propus are ca scop realizarea unui dispozitiv automatizat pentru zdrobirea dozelor goale de aluminiu, facilitând reciclarea și reducerea volumului acestora.
Utilizatorul plasează doza într-o zonă marcată și inițiază procesul prin apăsarea unui buton. Un mecanism de siguranță integrat previne accesul accidental în zona de zdrobire în timpul funcționării.
În timpul procesului, curentul consumat de piston este monitorizat în timp real cu ajutorul unui senzor de curent ACS712. Valoarea puterii consumate este calculată și afișată pe un display LCD conectat la Arduino, oferind utilizatorului o imagine clară asupra consumului energetic.
La finalul ciclului de strivire, mecanismul de siguranță se eliberează, permițând plasarea unei noi doze în compartimentul de lucru.
Descriere generală
Lista pieselor:
Arduino Uno
Piston electric 12V – 900N – realizează forța mecanică necesară zdrobirii dozelor
Driver de Motoare Dual L298N – comandă pistonul în ambele direcții
Senzor de curent Hall ACS712 (5A) – măsoară curentul consumat de piston
Display LCD 1602 cu adaptor I2C – afișează puterea consumată pe durata ciclului de zdrobire
Sursă de tensiune 12V, 180W – alimentează pistonul
Hardware Design
Schema electrica: schematic.pdf
Componentele sunt conectate intre ele in modul urmator:
Driverul L298N
Pinii IN1 si IN2 ai driverului sunt conectati la pinii digitali D2 si D3 de pe Arduino.
Iesirile OUT1 si OUT2 sunt conectate la pistonul electric, permitand controlul directiei de deplasare.
Alimentarea driverului este realizata de la o sursa de 12V conectata prin pinul VCC si GND.
Pinul ENA este lasat conectat intern (cu jumper), ceea ce permite functionarea continua fara control PWM.
Software Design
Mediu de dezvoltare: Codul a fost scris în limbajul C, utilizând extensia PlatformIO din Visual Studio Code, folosind toolchain-ul AVR GCC pentru microcontrolerul ATmega328P.
Librării și surse externe utilizate:
Algoritmi și structuri implementate: Aplicația implementează o interfață de control pentru un piston acționat electric, cu control direcție și stare ON/OFF, citind în același timp valoarea de curent consumat și calculând puterea livrată.
Debounce pentru butoane: Implementat software folosind Timer1 în CTC mode, cu întrerupere la 1ms. Fiecare buton este filtrat prin contorizarea stării stabile timp de 20ms pentru a elimina bouncing-ul mecanic.
Controlul motorului: Două ieșiri digitale (D2, D3) comandă un driver L298N pentru controlul direcției pistonului. Un buton comută între ON/OFF, iar altul între sensul de deplasare. LED-urile indică starea (roșu = oprit, verde = activ).
Citire senzor ACS712 (20A): Se utilizează ADC-ul intern pentru a citi tensiunea analogică proporțională cu curentul.
Calcul putere: Puterea activă este calculată ca produs între curent și tensiunea de alimentare fixă a pistonului (10.65V). Aceasta se actualizează la fiecare 500ms folosind același timer ca și pentru debounce, dar cu un contor separat în ISR.
Afișare pe LCD I2C: Pe LCD-ul 16×2 sunt afișate:
Elementul de noutate constă în integrarea controlului hardware de motor, monitorizarea consumului electric printr-un senzor de curent și afișarea în timp real a acestor valori pe un LCD I2C.
Proiectul valorifică funcționalități studiate în laborator precum: temporizare prin Timer1 în CTC, utilizarea întreruperilor pentru debounce, citire ADC pentru senzori analogici și comunicație I2C pentru afișaj.
Senzorul ACS712 a fost calibrat pe baza valorii de referință (2.5V la 0A) și a sensibilității declarate de producător (100 mV/A). Calibrarea s-a verificat cu un multimetru în serie pe o sarcină de test cunoscută (ex: rezistor de putere), iar valoarea de 10.65V a fost măsurată pe sursa de alimentare a pistonului.
Optimizările au fost realizate în principal în ceea ce privește utilizarea memoriei și resurselor hardware. Timerul 1 a fost utilizat pentru debounce și pentru sampling periodic (calculul curentului și al puterii, urmate de afișarea pe LCD), economisind un timer suplimentar.
Videoclip: https://youtu.be/CnxCBeDxjME
Download
Bibliografie/Resurse
-
Librarie LCD I2C (LiquidCrystal_I2C): LCD_I2C
-
Informatii lucru registrii: OCW