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
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