This is an old revision of the document!
Prezentarea pe scurt a proiectului: Proiectul consta intr-o masinuta controlata cu ajutorul placutei Arduino, care, la apasarea unui buton, declanșeaza mai multe semnale acustice si luminoase, in timp ce masina se misca. Scopul principal al proiectului este realizarea unui sistem integrat de divertisment. Am pornit de la ideea de a imbina notiunile invatate pe parcursul laboratoarelor de PM cu creativitatea. Astfel proiectul este util ca exemplu de combinare a elementelor de hardware cu sofware dar de asemenea este util si ca mijloc de divertisment.
Butoane
Arduino UNO R3 (ATmega328P + ATmega16U2)
LCD Display (I2C)
LED-uri
Buzzer
L298N Driver
Motoare DC
Componente folosite:
Pini folositi:
Buzzer (HONK_PIN)
Buton pentru buzzer (NITRO_BUTTON_PIN)
Buton pentru LED-uri (LED_BUTTON_PIN)
Buton pentru display (LCD_SWITCH_PIN)
LED verde (LED_GREEN_PIN)
LED roșu (LED_RED_PIN)
LED1 verde (LED1_G)
LED1 roșu (LED1_R)
Motoare (control driver L298N) - pini de control IN1..IN4
Display LCD I2C
Mediu de dezvoltare: PlatformIO
Microcontroler: Arduino Uno
Cod scris în limbaj C++ cu utilizarea librăriilor Arduino.
Librării utilizate:
Funcții principale:
Logica butoanelor și stărilor:
Dacă buzzerOn == true, se pornește melodia, altfel se oprește.
Pattern-uri de design: Debounce simplificat butoane: verificare stare anterioară și stare curentă pentru detectarea apăsărilor (flanc descendent).
State machine simplificată: LED-urile au moduri NORMAL și POLICE care schimbă comportamentul în funcție de ledMode.
Event-driven buzzer: pornirea/oprirea buzzerului este controlată doar la apăsarea butonului (nu permanent).
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 Alin, 331CC → :pm:prj2009:cc:dumitru_alin.