Electronica, Arduino, programare

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.

Codul sursa rezultat este cel de mai jos:

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 acest articol voi incerca sa exemplific cat mai multe exemple de cod sursa care pot fi rulate in functia loop().

In primul rand putem citi valoarea aflata la un anumit pin. Acest lucru se face la un pin digital prin comanda 

valoareCitita = digitalRead(numarPin);

 unde in variabila valoareCitita vom stoca valoarea existenta la acel pin iar pentru un pin analogic vom folosi urmatoarea instructiune

valoareCitita = analogRead(numarPin);

De asemenea putem si seta unui alt pin o anumita valoare de iesire. Aceasta valoare poate fi digitala (LOW sau HIGH) cu ajutorul comenzii

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:

In aceasta a 3-a parte a tutorialului vom vedea ce alte feluri de cod sursa putem scrie in functia setup().

Vom incepe cu senzorul de temperatura DHT22/DHT11. Acest senzor necesita o librarie dedicata acestuia.  Iar codul sursa este cel de mai jos:

#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

void setup() {
   dht.begin();
}

Un alt senzor foarte uzual este DS18B20. Acesta necesita 2 librarii, mai multe informatii despre acestea se regasesc in acest articol. Codul sursa folosit este urmatorul:

Raspberry Pi

Raspberry Pi Pico si displayul OLED 128*64

Pornind de la precedentul articol vom incerca si folosirea unui display 128*64 pixeli dar cu conectare pe interfata SPI. Displayul se conecteaza pe interfata SPI0 si se alimenteaza cu o tensiune de +3...

Raspberry Pi Pico si displayul OLED 128*32

Avand la dispozitie un display OLED 128*32 pixeli cu driverul SSD1306 vom incerca folosirea acestuia impreuna cu Raspberry Pi Pico. Displayul folosit de mine fiind pe interfata I2C va simplifica foar...

Afisare iconite pe display LCD I2C

In continuarea articolului anterior putem aduce modificari la afisare prin adaugarea de diferite iconite pe langa alte informatii. Pentru a face acest lucru vom folosi exemplu din codul de mai jos:

In acest articol vom vedea cum se poate folosi un afisaj LCD uzual si foarte raspandit de genul 16x02, 16x04 sau 20x04. Aceste tipuri de afisaje se pot folosi impreuna cu un adaptor I2C pentru a simpl...

Pentru a realiza un ceas cu Raspberry Pi Pico putem folosi doar cateva linii de cod pentru acest lucru. In acest exemplu data si timpul o vom afisa in terminalul serial. Codul sursa este foare simpl...

DHT11 si Raspberry Pi Pico

Daca in articolul anterior am vazut cum putem citi temperatura si umiditatea mediului ambiant cu ajutorul senzorului DHT22 in acest articol vom vedea cum putem inlocui senzorul DHT22 cu senzorul DHT11...

More Articles

Mai multe de la: Raspberry Pi

Autentificare