This shows you the differences between two versions of the page.
pm:prj2021:agrigore:discolamp [2021/06/03 02:24] stefan.chifan |
pm:prj2021:agrigore:discolamp [2021/06/03 13:21] (current) stefan.chifan |
||
---|---|---|---|
Line 29: | Line 29: | ||
Ca o nota de umor, in cadrul circuitului am folosit o bucata de hartie care nu apare in schema pentru ca ethernet shield-ul avea pini de conectare mult prea scurti iar placuta arduino se atingea de cea ethernet si faceau scurt. Din fericire am inginerit o solutie! | Ca o nota de umor, in cadrul circuitului am folosit o bucata de hartie care nu apare in schema pentru ca ethernet shield-ul avea pini de conectare mult prea scurti iar placuta arduino se atingea de cea ethernet si faceau scurt. Din fericire am inginerit o solutie! | ||
+ | |||
+ | {{:pm:prj2021:agrigore:disco.jpg?500|}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
== Medii de dezvoltare folosite == | == Medii de dezvoltare folosite == | ||
Line 34: | Line 36: | ||
* **Draw.io** - pentru schema bloc | * **Draw.io** - pentru schema bloc | ||
* **EAGLE** - pentru schema circuitului | * **EAGLE** - pentru schema circuitului | ||
+ | * **192.168.0.102** - IP-ul la care este hostata pagina web | ||
+ | == Biblioteci == | ||
+ | * **Ethernet.h** - pentru initializarea si utilizarea server-ului web | ||
- | ===== Rezultate Obţinute ===== | + | == Descrierea Codului == |
+ | Am initializat pinii pentru fiecare led si pentru butoane, led1 are pinii 9, 8, 7 iar led2 6, 5, 4, butoanele fiind pe pinii 2 si 3. Pinii 10, 11 si 12 sunt ocupati de catre ethernet shield. De asemenea am variabilele **buttonState1** si **buttonState2** ce tin minte starile butoanelor, **originalState** folosit pentru a tine minte starea precedenta a ledurilor ca sa schimb modurile definite pe butoane iar **buttonPressed** tine minte ce buton a fost apasat ultima data. | ||
+ | == Functii == | ||
+ | * **blink1** - functie utilizata pentru a comuta pe modul de pe primul buton, culorile propriu zise sunt setate in functia **loop** | ||
+ | * **blink2** - functie utilizata pentru a comuta pe modul de pe al 2-lea buton, culorile propriu zise sunt setate in functia **loop** | ||
+ | * **loop** - in cazul in care au fost apasate vreunele dintre cele 2 butoane, ledurile sunt comutate pe diferite culori in functie de valoarea pe care variabila **buttonPressed** o reprezinta. Continuam prin a crea un ethernetClient care sa reprezinte pagina web, unde scriem pe rand string-uri ce reprezinta content HTML cat timp clientul este disponibil. Pentru a citi valorile date de catre utilizator in cadrul webpage-ului folosesc variabila **readString** ce preia toate datele caractere transmise de client catre server, urmand sa citesc valoarea setata de catre utilizator. Pentru a face diferenta dintre cele 2 led-uri ma folosesc de indicele unde apare setarea aleasa in interiorul string-ului **readString**, fiind date putine de citit, setarile pentru led-ul 1 vor incepe mereu de la pozitia 10 iar cele pentru led-ul 2 de la pozitia 15. | ||
+ | |||
+ | == Observatii == | ||
+ | * Proiectarea a fost foarte interesanta, procesul de a crea un webserver local a fsot simplu la prima vedere insa din cauza nevoii de a utiliza string-uri pentru a scrie content-ul fiecarui client duce la o crestere considerabila a dificultatii in cazul in care doream sa creez un site mai complex. | ||
+ | * O alta problema ar fi memoria limitata, care ajunge sa fie destul de usor consumanta daca doream sa introduc mai multe linii de content in interiorul site-ului, limitand considerabil ce functii ar putea avea pagina mea. | ||
+ | * Un ultim aspect dificil este trimiterea datelor inapoi la server, metoda aleasa de mine de a citi fiecare caracter primit de la client este o metoda foarte ineficienta in cazul in care am un proiect mai complex, sau daca as dori sa primesc comenzi care nu sunt deja prestabilite. | ||
+ | |||
+ | ===== Rezultate Obţinute ===== | ||
+ | Videoclip de prezentare: [[https://youtu.be/QGCXBMD6xy8]] | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
- | ===== Download ===== | + | Ca si experienta a fost un proiect fun care prin niste modificari in cadrul codului, ceva memorie in plus si posibile modificari ale circuitului sa poate fi extins la ceva mult mai utilizabil. |
+ | ===== Download ===== | ||
+ | arhiva cod: {{:pm:prj2021:agrigore:discolamp.zip|}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | 24 Aprilie : alegerea temei proiectului | + | * 24 Aprilie : alegerea temei proiectului |
+ | * 27 Aprilie : Discutie cu laborantul | ||
+ | * 15 Mai : Achizitionare componente | ||
+ | * 26 Mai : Schema electrica EAGLE | ||
+ | * 2 Iunie: Finalizare proiect + finalizare pagina wiki. | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | Documentația: <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> | + | * [[https://www.arduino.cc/en/Guide/ArduinoEthernetShield]] |
+ | * [[https://www.instructables.com/Arduino-Ethernet-Shield-Tutorial]] | ||
+ | * Laboratoare | ||
+ | PDF: <html><a class="media mediafile mf_pdf" href="?do=export_pdf">PDF</a></html> |