Componente folosite |
---|
3 motoare electrice |
1 servo motor |
2 joystick uri |
1 buton |
fire |
rezistente |
driver motor L298N(punteH) |
3 leduri rgb |
Arduino IDE
Servo.h: Servo motoare
La inceput sunt initializate toate componentele si toti pinii pe care acestia ii folosesc, dar si cateva variabile ajutatoare codului. In functia setup() se initializeaza ledul, motoarele si servo-motoarele
Mi-am creat 2 functii separate care se ocupa de buna functionarea tanculul.
motoare(): controleaza cele 2 motoare de 12V conectate la puntra H. Deoarece motoarele sunt montate invers acestea trebuie sa primeasca comenzile in oglinda, cand unul merge inainte celalalt trebuie sa mearga inapoi. Acestea preiau inputul dat de joystic si in functie de axa pe care s-a primit inputul motoarele raspund corespunzator. Pentru citirea de la joystick ma folosesc de pinii A5 si A4, iar pentru motoare conectez puntea H la pinii D4, D5, D6, D7 pentru in1,…in4, iar pentru enA si enB folosesc pinii D9 si D10.
turela(): controleaza cele 2 servo-motoare din turela, cel care invarte turela si cel care misca tunul. In functie de inputul citit de la joystick,
daca e pe axa Ox tancul misca turela pe orizontala, daca e pe axa Oy tancul misca tunul sus jos. Pentru citirea de la joystick ma folosesc de pinii A1 si A0, iar pentru servo-motoare ma folosesc de pinii D2, D3. Pentru a micsora viteza servo-motorului care controleaza miscarea turelei am facut o functie separata care produce un mic delay.
In functia loop()
Apelez cele 2 functii, motoare() si turela() si apoi ma ocup de aprinderea si stingerea ledului din tun in functie de apasarea butonului din joystick.
Sunt foarte multumit de cum a iesit proiectul, singura neplacere a fost ca din cand in cand se mai produce putin zgomot si se mai invarte usor turela fara sa primeasca neaparat inputul corespunzator.
Dupa realizarea acestui proiect am ajuns sa ma familiarizez mai bine cu lucrul cu arduino si asamblarea unui asemenea proiect. Ca si greutate cel mai neplacut a fost montajul tuturor pieselor in carcasa de tanc.
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.
Download code