This shows you the differences between two versions of the page.
pm:prj2021:apredescu:useless-box [2021/05/31 23:12] daniel.rijnita [Software Design] |
pm:prj2021:apredescu:useless-box [2021/06/04 13:25] (current) daniel.rijnita [Rezultat] |
||
---|---|---|---|
Line 16: | Line 16: | ||
====Hardware Design==== | ====Hardware Design==== | ||
- | * Arduino UNO | + | * 1x Arduino UNO |
* 2x Motor servo | * 2x Motor servo | ||
* 1x Motor stepper | * 1x Motor stepper | ||
* 3x SPDT Switch | * 3x SPDT Switch | ||
* 1x Baterie 9V | * 1x Baterie 9V | ||
- | * Breadboard | + | * 1x Breadboard |
* 1x Condensator 47uF | * 1x Condensator 47uF | ||
- | * LCD | + | * 1x LCD |
===Schema Electrica=== | ===Schema Electrica=== | ||
- | {{ :pm:prj2021:apredescu:useless_box_schema_electrica.png?400 |}} | + | {{ :pm:prj2021:apredescu:useless_box_schema_el.png?500 |}} |
Line 43: | Line 43: | ||
* functia **setup()** - initializeaza pozitiile motoarelor servo si duce mecanismul bratului in capat, la pozitia initiala (pozitie detectata de apasarea unui buton de catre mecanism). | * functia **setup()** - initializeaza pozitiile motoarelor servo si duce mecanismul bratului in capat, la pozitia initiala (pozitie detectata de apasarea unui buton de catre mecanism). | ||
* functia **handleSwitch(int currentPos, int finalPos)** - primeste ca parametri pozitia curenta si pozitia finala a bratului. Se verifica in ce directie ar trebui sa se deplaseze bratul in functie de parametrii primiti si se muta la pozitia finala. | * functia **handleSwitch(int currentPos, int finalPos)** - primeste ca parametri pozitia curenta si pozitia finala a bratului. Se verifica in ce directie ar trebui sa se deplaseze bratul in functie de parametrii primiti si se muta la pozitia finala. | ||
- | * functia **loop()** - se citeste starea switch-urilor la inceput, iar apoi se verifica care din switch-uri este setat pe **ON**, iar apoi se apeleaza functia **handleSwitch**pentru fiecare. La final se scrie un mesaj pe ecranul LCD. | + | * functia **loop()** - se citeste starea switch-urilor la inceput, iar apoi se verifica care din switch-uri este setat pe **ON**, iar apoi se apeleaza functia **handleSwitch** pentru fiecare. La final se scrie un mesaj pe ecranul LCD. |
+ | ====Rezultat==== | ||
+ | [[https://www.youtube.com/watch?v=OYFGbN_64QU|Video Demo]] | ||
+ | |||
+ | [[https://github.com/danrijnita99/PM/blob/master/useless_box.ino|Cod sursa]] | ||
+ | |||
+ | ====Concluzii==== | ||
+ | Initial proiectul ales mi-a parut foarte simplu, dar odata ce m-am apucat de partea hardware mi-am schimbat parerea. Am intampinat destul de multe dificultati la capitolul hardware. In contradictie cu hardware-ul, partea software nu este foarte complexa. Consider ca am avut multe de invatat din acest proiect. | ||
+ | |||
+ | ====Bibiliografie/Resurse==== | ||
+ | * https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library | ||
+ | * https://www.instructables.com/How-to-usa-a-Servo-motor-Arduino-Tutorial/ | ||
+ | * https://howtomechatronics.com/tutorials/arduino/how-to-control-stepper-motor-with-a4988-driver-and-arduino/ | ||
+ | * https://www.youtube.com/watch?v=aqAUmgE3WyM | ||
+ | |||
+ | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> |