Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:agrigore:discolamp [2021/06/03 02:13]
stefan.chifan [Funcționalitate]
pm:prj2021:agrigore:discolamp [2021/06/03 13:21] (current)
stefan.chifan
Line 17: Line 17:
 ==== Listă de piese ==== ==== Listă de piese ====
   * Arduino Uno    * Arduino Uno 
-  * LEDs +  * 2 LED-uri 
-  * butoane +  * butoane 
-  * Sound Sensor+  * Ethernet Shield
   * Fire   * Fire
   * Breadboard   * Breadboard
-  * Rezistente+  * Rezistente ​1k 
 +  * 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>​
pm/prj2021/agrigore/discolamp.1622675596.txt.gz · Last modified: 2021/06/03 02:13 by stefan.chifan
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0