This shows you the differences between two versions of the page.
|
pm:prj2021:agrigore:discolamp [2021/06/03 02:15] stefan.chifan [Listă de piese] |
pm:prj2021:agrigore:discolamp [2021/06/03 13:21] (current) stefan.chifan |
||
|---|---|---|---|
| Line 24: | Line 24: | ||
| * 3 Rezistente 1k | * 3 Rezistente 1k | ||
| * o hartie | * o hartie | ||
| + | |||
| + | === Schema circuit - EAGLE === | ||
| + | {{:pm:prj2021:agrigore:discolampeagle.jpg?200|}} | ||
| + | |||
| + | 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 == | ||
| + | * **Arduino IDE** - pentru codul Arduino | ||
| + | * **Draw.io** - pentru schema bloc | ||
| + | * **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 | ||
| + | == 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. | ||
| - | ===== Rezultate Obţinute ===== | + | == 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> | ||