This is an old revision of the document!


Disco Lamp

Autor

Introducere

Acest proiect urmarește crearea unei “lampi” formate dintr-o serie de 2 leduri care vor lumina in pattern-uri diferite in functie de selectia utilizatorului remote, printr-un site hostat de catre arduino in reteaua locala sau prin comutarea starii ledurilor prin intermediul butoanelor fizice.

Descriere generală

Schema bloc:



Funcționalitate

Placuta arduino joaca rolul unui web server care hosteaza in reteaua locala un website de unde pot selecta ce pattern uri de culori doresc sa afisezi pe cele 2 leduri ale circuitului. De asemenea ledurile pot sa fie schimbate si din cele 2 butoane ale circutului, comutand intre 2 moduri de lumin hardcodate.

Hardware Design

Listă de piese

  • Arduino Uno
  • 2 LED-uri
  • 2 butoane
  • Ethernet Shield
  • Fire
  • Breadboard
  • 3 Rezistente 1k
  • o hartie

Schema circuit - EAGLE

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!

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

Concluzii

Download

Jurnal

24 Aprilie : alegerea temei proiectului

Bibliografie/Resurse

Documentația: PDF

pm/prj2021/agrigore/discolamp.1622677609.txt.gz · Last modified: 2021/06/03 02:46 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