Proiectul constă în legarea unui senzor de picături de ploaie la un Arduino UNO. Pe lângă acesta, există legate la placa 2 servomotoare care vor acționa ștergătoarele, frecvența acestora fiind determinată în funcție de valorile citite de senzor. De asemenea, există și un buton care face posibilă acționarea ștergătoarelor și manual.
Componente:
Partea software a proiectului am realizat-o in Arduino IDE, iar codul este unul destul de straight forward.
In functia de setup initializam comunicarea seriala intre placuta Arduino si calculator, atasam cele 2 servomotoare la pinurile digitale 9 si 10, configuram pinul 3 digital ca si input si de asemenea, activam rezistenta interna pull-up, iar in final, pentru a nu avea probleme cand numaram de cate ori a fost apasat butonul, cand se detecteaza o tranzitie de la semnal HIGH la semnal low, se efectueaza o intrerupere si se apeleaza functia countPress().
In functia countPress() folosim un debounce pentru a ne asigura ca butonul nu contorizeaza mai multe apasari din greseala. Daca butonul se afla la a 5-a apasare, acesta se reseteaza la 0 si se trece la modul automat, in caz contrat, se aduna 1 la valoarea din counterButton.
In loop(), bucla principala de executie a programului se citeste starea butonului si de asemenea valoarea analogica a senzorului de ploaie. Se verifica cu ajutorul counterButton-ului daca manualMode este ON sau OFF. Daca manualMode este OFF, se selecteaza treapta de viteza a stergatoarelor in functie de valoarea lui sensorValue. La o singura apasare a butonul manualMode devine ON. In momentul in care am ajuns in modul manual, se verifica de cate ori a fost apasat butonul si se efectuaza actiuni in functie de valoarea variabilei counterButton. Astfel, la prima apasare se trece in modul manual si de asemenea la treapa 1 de viteza, la a 2-a apasare se face tranzitia catre a 2-a treapta de viteza, similar si la a 3-a apasare catre treapta a 3-a. La a 4-a apasare stergatoarele sunt oprite in mod manual, iar la a 5-a apasare se trece in modul automat.
O demonstratie a proiectului se poate vedea in filmarea ce se afla in zip-ul de mai jos.
Mi s-a parut un proiect interesant mai ales ca am putut sa imi aleg tema singur si am reusit sa imbin hobby-urile personale cu informatiile dobandite la laborator.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.