In acest articol vom incerca crearea unui meniu simplu cu ajutorul Arduino.
Pentru acest lucru vom folosi un encoder rotatit si un display LCD 16*2 cu interfata pe magistrala I2C pentru a economisi firele necesare la conexiune.
Encoderul va fi conectat la pinii digitali 2 si 3 ai Arduino.
Displayul LCD este conectat exact ca si in acest articol.
Pornind de la articolul precedent putem optimiza codul sursa in asa fel incat montajul nostru cu Arduino sa functioneze o perioada de timp. Apoi la apasarea unui buton, la modificarea parametrilor unuia sau mai multor senzori acesta sa intre in modul sleep. In final pentru ca microcontrolerul sa-si reia activitatea va trebui sa apasam un alt buton sau la modificarea parametrilor unui senzor acesta sa reintre in ciclul normal de rulare.
Pentru a face acest lucru am adaugat si o a doua intrerupere folosind pinul digital 3.
Daca vom construi un montaj cu Arduino alimentat de la baterii sau acumulatori si vrem sa marim autonomia acestuia atunci una dintre optiunile de a economisi energie electrica este prin punerea microcontrolerului in modul sleep.
Pentru a putea face acest lucru vom folosi pinul digital 2 la care vom atasa o intrerupere. Cu ajutorul acestei intreruperi putem scoate procesorul din starea sleep in orice moment dorim pentru ca acesta sa isi reia activitatea.
Pentru a genera o intrerupere putem folosi un comutator, un senzor sau chiar un ceas RTC.
In aceasta parte vom folosi functii personalizate in codul sursa. Aceste functii ne ajuta facand codul sursa mai ordonat, mai usor de citit si de modificat.
Iar ca exemplu vom porni de la clasicul sketch blink, cel care aprinde si stinge un led la intervale predefinite.
Codul sursa de la care vom porni modificarile este cel de mai jos: