Differences

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

Link to this comparison view

pm:prj2025:iotelea:catalin.turcanu [2025/05/26 20:49]
catalin.turcanu
pm:prj2025:iotelea:catalin.turcanu [2025/05/26 22:06] (current)
catalin.turcanu [Descriere generală]
Line 12: Line 12:
 Aplicabilă în industrie, depozite, educație Aplicabilă în industrie, depozite, educație
 ===== Descriere generală ===== ===== Descriere generală =====
- 
-Schema bloc: 
-[ Obiect ] → [ Senzor IR ] → [ Arduino Uno ] → [ LCD ]  ​ 
-                                                  ↓  ​ 
-                                  ↑ 
-                              [ Buton Reset ]  [ Buzzer ] 
                                                            
- 
 Descriere module: Descriere module:
 Senzor IR – detectează trecerea obiectului Senzor IR – detectează trecerea obiectului
Line 76: Line 69:
 Limbajul de programare: C++ (framework Arduino). Limbajul de programare: C++ (framework Arduino).
  
-📚 Librării și surse 3rd-party+Librării și surse 3rd-party
 #include <​LiquidCrystal.h>​ – pentru controlul afișajului LCD 16x2 conectat în mod paralel (fără I2C). #include <​LiquidCrystal.h>​ – pentru controlul afișajului LCD 16x2 conectat în mod paralel (fără I2C).
  
 #include <​Arduino.h>​ – pentru funcții de bază (digitalWrite,​ millis, etc.), inclusă implicit în PlatformIO. #include <​Arduino.h>​ – pentru funcții de bază (digitalWrite,​ millis, etc.), inclusă implicit în PlatformIO.
  
-⚙️ ​Algoritmi și structuri implementate+Algoritmi și structuri implementate
 1. Inițializare componente 1. Inițializare componente
 Se definesc pinii pentru LCD, buzzer, LED-uri, senzor IR și butonul de reset. Se setează tipul fiecărui pin. Se definesc pinii pentru LCD, buzzer, LED-uri, senzor IR și butonul de reset. Se setează tipul fiecărui pin.
  
-cpp 
-Copy 
-Edit 
 const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2, ct = 9; const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2, ct = 9;
 const int irPin = 8; const int irPin = 8;
Line 108: Line 98:
 Senzorul IR emite semnal LOW când un obiect este prezent. Se folosește o variabilă objectDetected pentru a evita incrementările multiple la o singură trecere. Senzorul IR emite semnal LOW când un obiect este prezent. Se folosește o variabilă objectDetected pentru a evita incrementările multiple la o singură trecere.
  
-cpp 
-Copy 
-Edit 
 if (irStatus == LOW && !objectDetected) { if (irStatus == LOW && !objectDetected) {
   objectDetected = true;   objectDetected = true;
Line 128: Line 115:
 Butonul resetează contorul și afișajul. Se aplică un delay pentru stabilizarea semnalului (debounce simplu software). Butonul resetează contorul și afișajul. Se aplică un delay pentru stabilizarea semnalului (debounce simplu software).
  
-cpp 
-Copy 
-Edit 
 if (digitalRead(resetButton) == HIGH) { if (digitalRead(resetButton) == HIGH) {
   counter = 0;   counter = 0;
Line 141: Line 125:
 Se memorează ultimele 3 timestamp-uri folosind millis(). Dacă 3 obiecte trec în <1 sec, sistemul emite alertă. Se memorează ultimele 3 timestamp-uri folosind millis(). Dacă 3 obiecte trec în <1 sec, sistemul emite alertă.
  
-cpp 
-Copy 
-Edit 
 lastTimes[0] = lastTimes[1];​ lastTimes[0] = lastTimes[1];​
 lastTimes[1] = lastTimes[2];​ lastTimes[1] = lastTimes[2];​
Line 166: Line 147:
 } }
  
- 
-<note tip> 
-Descrierea codului aplicaţiei (firmware): 
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi 
-  * (etapa 3) surse şi funcţii implementate 
-</​note>​ 
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +Rezultate Obținute: 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +S-a realizat cu succes un sistem funcțional de numărare a obiectelor detectate de un senzor IR.
-</​note>​+
  
-===== Concluzii =====+Afișajul LCD actualizează în timp real numărul obiectelor.
  
-===== Download =====+Comportament corect în caz de treceri rapide, sistemul detectând fluxul excesiv și reacționând automat.
  
-<note warning>​ +Testele au fost realizate atât pe breadboard cât și în PlatformIOcu program funcțional încărcat cu succes.
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute ​în urma realizării proiectului:​ sursescheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +S-au folosit 5 piese electronice diferite și 4 concepte din laboratoareGPIOPWM, afișaj, debounce, memorie RAM și temporizare.
-</​note>​+
  
-===== Jurnal ​=====+===== Concluzii ​===== 
 +Proiectul demonstrează aplicarea practică a noțiunilor de PM: programarea microcontrollerului,​ lucrul cu senzori digitali, afișaj și interacțiune hardware.
  
-<note tip> +Codul este modular, comentat șpoate fi ușor extins (ex: numărare bidirecțională, afișare pe serial monitor, stocare etc).
-Putețavea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. +
-</​note>​+
  
-===== Bibliografie/​Resurse =====+Se poate transforma într-un prototip real de contor pentru bandă transportoare în fabrici sau linii de sortare.
  
-<​note>​ +===== Download ===== 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**+Proiectu{{:​pm:​prj2025:​iotelea:​pmproject.zip|}} 
-</note>+ 
 +===== Bibliografie/Resurse =====
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?do=export_pdf">​Export to PDF</​a></​html>​+LCD Help: 
 +https://​www.youtube.com/​watch?v=860eErq9c3E
  
 +Sensor Help:
 +https://​www.youtube.com/​watch?​v=OMZacCLRt9A
pm/prj2025/iotelea/catalin.turcanu.1748281772.txt.gz · Last modified: 2025/05/26 20:49 by catalin.turcanu
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