In aceasta parte vom vedea ce face functia void setup() si ce fel de cod putem scrie in aceasta.

Aceasta functie va fi rulata de catre microcontroler o singura data. De aceea aici putem adauga cod sursa cu care vom initializa alte functii utile (comunicare in terminalul serial, afisare LCD, initializarea diferitilor senzori etc).

Tot in aceasta functie putem stabili care pin va fi folosit pentru intrare si care pentru iesire.

In aceasta parte vom analiza codul sursa folosit pentru comunicatia seriala si pentru displayurile LCD cele mai uzuale.

Cea mai usoara si rapida forma de afisare a unor valori folosite de catre microcontroler este comunicatia seriala. Pentru a face acest lucru mai intai trebuie sa initializam acest tip de afisare. Acest lucru va fi facut folosind urmatorul cod sursa: 

Serial.begin(9600);

unde parametrul 9600 inseamna viteza de comunicare in biti pe secunda (baud). 

 De asemenea tot in aceasta zona putem scrie un mesaj (sau mai multe) care vor fi afisate in terminalul serial la initializarea microcontrolerului. Un exemplu este cel de mai jos:

Serial.print("Aici este un exemplu.");
Serial.println("Acum afisam altceva apoi trecem pe un rand nou");

Comanda Serial.print() va afisa un mesajul dar fara ca mesajul urmator sa fie afisat pe un rand nou. Comanda Serial.println() va afisa un mesaj apoi se va trece pe un rand nou.

Pentru a trece numai pe un alt rand nou dar fara a afisa nimic putem folosi urmatoul cod:

Serial.print("Aici este primul rand");
Serial.println();
Serial.print("Aici este cel de-al doilea rand");
Serial.println();

 In cazul in care dorim sa afisam informatiile pe un display LCD atunci vom folosi o librarie pentru acel afisaj si vom face initializarea acestuia conform librariei folosite. Cele mai uzuale displayuri sunt cele LCD cu 16 sau 20 de caractere si 2 sau 4 randuri. Aceste afisaje folosesc chipsetul HD44780.

In cazul in care dorim sa folosim aceste afisaje vom avea nevoie de libraria LiquidCrystal. Iar codul sursa va fi urmatorul:

#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

void setup()
{   
  lcd.begin(16,2);    
}

unde parametrii lcd(2, 3, 4, 5, 6, 7) inseamna ca la acesti pini ai Arduino vom conecta urmatorii pini ai afisajului (in aceeasi ordine de la stanga la dreapta):

RS (4), E(6), D4(11), D5(12), D6(13), D7(14) - in paranteza fiind afisat pinul displayului.

Pentru a afisa un mesaj la initializarea microcontrolerului va trebui sa adaugam si acest cod imediat dupa instructiunea lcd.begin().

lcd.setCursor ( 0, 0 ); 
lcd.print ("primul rand");  
lcd.setCursor (0, 1 ); 
lcd.print ("randul doi");

unde parametrii lcd.setCursor(x, y) inseamna urmatoarele:

x = pozitia de unde se va face afisarea, 0 insemnand ca afiarea se va face incepand cu primul caracter;

y = numarul randului unde se va afisa informatia dorita unde 0 inseamna randul 1, 1 inseamna randul 2 si tot asa.

Un dezavantaj al folosirii acestei librarii este numarul mare de legaturi intre Arduino si afisaj (6 pini folositi) si de aceea este mai util folosirea unui adaptor I2C pentru a folosi acest tip de afisaje. Acest adaptor este bazat pe circuitul integrat PCF8574T iar comunicare cu Arduino se face folosind magistrala I2C.  

Pentru a putea folosi acest adaptor va trebui sa descarcam aceasta librarie. Codul sursa in acest caz va fi urmatorul:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()
{
   lcd.begin();
   lcd.backlight();
}

unde parametrii lcd(x, y, z) inseamna urmatoarele:

x = adresa I2C a adaptorului, de exemplu 0x27 in cazul nostru;

y = numarul de caractere maxime dispuse pe un rand;

z = numarul maxim de coloane.

Deci in exemplul de mai sus se va initializa un display LCD 16x02.

Daca dorim sa afisam text la initializarea programului o putem face precum in exemplul precedent.

In urmatorul articol vom vedea cum putem initializa diferiti senzori si alte module.

 

Nu sunt comentarii

Acest website foloseste cookie-uri pentru o experienta placuta in timpul navigarii.