Sunteți pe pagina 1din 4

Laborator 1

Introducere
Arduino a fost construit special pentru a fi utilizat in educatie, in special pentru scolile tehnice
orientate spre electronica. Platforma Arduino se poate fi alimentata la portul USB al oricarui
calculator (sau chiar si de catre un incarcator ce ofera un port USB). Poate fi programat cu ajutorul
unui limbaj foarte asemanator cu limbajul C ale carui specificatii le gasiti pe situl arduino.cc, situl
oficial al platformei Arduino (mai exact la https://www.arduino.cc/en/Reference/HomePage ).
La arduino pot fi conectati diversi senzori si actuatori. Prin intermediul senzorilor sunt preluate
informatii din mediul inconjurator, iar actuatorii sunt utilizati pentru a-l modifica intr-un anume fel (de
exemplu putem prelua printr-un senzor de lumina faptul ca afara s-a intunecat si putem inchide un
releu conectat la becul din sufragerie pentru a-l aprinde). Pentru atasarea echipamentelor hardware,
Arduino UNO ofera un numar de 14 conexiuni digitale (numerotate de la 0 la 13) si 6 conexiuni
analogice (numerotate de la 0 la 5). De obicei conexiunile digitale sunt utilizate pentru a conecta
actuatorii iar cele anlogice pentru a conecta senzorii (desi aceasta nu este o regula).
La fel ca orice calculator (ma intreb daca stiati asta), Arduino functioneaza intr-o bucla infinita. Cand
este alimentat (sau dupa ce un program nou a fost uploadat), se executa o sectiune de setari dupa
care se intra automat intr-o zona denumita loop. Structura cea mai simpla a unui program ce poate fi
rulat de catre Arduino este asadar:
void setup() {
// instructiunile de aici se executa o singura data, la inceput
// aceasta sectiune este utilizata pentru setari (de ex. care pin este
de intrare si care de iesire)
}
void loop() {
// instructiunile de aici sunt executate intr-o bucla, dupa ultima
instructiune este reluata iarasi prima
// aceasta bucla se termina cand alimentarea Arduino-ului este
intrerupta
}
IDE

Arduino IDE.

Exista mai multe IDEuri pentru programarea platformei Arduino (nici nu e de mirare daca tinem cont
ca totul aici se desfasoara in curtea curentului OpenSource), cel pe care o sa il utilizam in cadrul
acestui curs este cel oficial, aflat pe pagina arduino.cc (mai exact
la https://www.arduino.cc/en/Main/Software).
Cele mai importante / interesante locatii din aceasta interfata, pe care va invitam sa le gasiti si voi, le
consideram a fi:

 Meniul File -> Example: contine exemple / coduri sursa pentru majoritatea echipamentelor
existente (senzori, actuatori, shielduri, etc).
 Meniul File -> Preferences: setati dimensiunea fontului, ce sa se afiseze atunci cand se
compileaza programul sau numerotarea liniilor de cod.
 Meniul Sketch -> Verify/Compile: verifica programul pe care l-ati scris. Este disponibil si din
primul buton in forma de cerc aflat imediat sub meniu.
 Meniul Sketch -> Upload: verifica programul si daca este corect il uploadeaza in memoria Flash
a procesorului Atmel dupa care va fi executat.
 Meniul Sketch -> Include Library: Pentru a vedea care sunt bibliotecile disponibile sau a
adauga o noua biblioteca.
 Meniul Tools -> Auto Format: Pentru a formata codul (indenta corect) - sper ca nu mai e nevoie
totusi sa mai folositi asta in anul III.
 Meniul Tools -> Serial Monitor: Deschide o fereastra ce permite transmiterea de date in mod
serial catre Arduino sau receptionarea acestora. Poate fi deschis si din butonul din partea
dreapta in forma de lupa.
 Din meniul Tools puteti de asemenea sa selectati tipul Arduinoului pe care il aveti, pe ce port
este conectat si care este programatorul pe care il folositi (default pentru UNO ar trebui sa fie
AVRISP mkII).

Exemple
Blink
Primul exemplu pe care il vom vedea in laboratorul 1 este Blink (din meniul File->Examples->Basics-
>Blink). Rolul acestui programel este de a porni si apoi opri ledul aflat pe placa Arduino si care este
conectat la pinul 13. De obicei acest program este utilizat pentru a verifica buna comunicare intre un
PC si platforma Arduino (puteti verifica faptul ca se uploadeaza un program, si ca acesta ruleaza
corect - de obicei Arduinourile noi vin cu acest program preinstalat tocmai pentru ca este folosit
pentru a verifica buna functionare). Valoarea LED_BUILTIN (care este o constanta) poate fi inlocuita
cu 13 - pinul digital la care este conectat ledul. Deoarece atunci cand uploadati un program pe
platforma Arduino acest lucru se intampla prin intemediul portului serial, puteti observa aprinderea
intermitenta a doua leduri TX/RX aflata pe placa Arduino. Daca nu vedeti aceste doua leduri
palpaind inseamna ca nu ati selectat corect portul la care este conectat Arduino sau nu ati instalat
driverele.
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Trimiterea de date catre portul serial al calculatorului.
Portul serial este probabil cel mai vechi existent. Prin el se trimit caractere unul dupa altul (asa cum
sugereaza si denumirea: serial). Desi portul serial a fost modernizat si este acum cunoscut ca USB
(Universal Serial Port), modul de transmitere este similar. Pentru ca cele doua dispozitive sa se
sincvronizeze trebuie ca ambele sa stie viteza la care se realizeaza comunicarea. Aceasta viteza
pentru portul serial se masoara in baud si indica numarul de coduri ce pot fi transmise intr-o
secunda. Cu cat aceasta valoare este mai mare, cu atat comunicarea este mai rapida si
instructiunea care trimite codul se va executa mai rapid. Pentru acest exemplu vom folosi un baud
de 9600 (desi Arduino poate atinge 2.000.000 caractere pe secunda). In IDE vom scrie si apoi vom
uploada urmatorul cod, explicatiile vor fi oferite de catre profesorul de la laborator:
void setup() {
Serial.begin(9600);
}

void loop() {
for (int i=0; i<10; i++)
Serial.println(i);
delay (5000);
}
Daca ati vazut cum functioneaza programul (utilizand Serial Monitor-ul la un baud de 9600 - vezi mai
sus cum se acceseaza), deschideti aplicatia putty pe care puteti sa o descarcati de pe Internet, la
connection type selectati "Serial" apoi selectati portul la care este conectat Arduino (poate fi vazut in
coltul din dreapta jos al IDEului) si alegeti viteza de 9600. Dupa apasarea butonului Open veti putea
vizualiza informatiile transmise de Arduino.

Receptionarea de informatii din interfata seriala (sau din putty).


Puteti sa utilizati fie Monitorul Serial din interfata IDEului fie aplicatya Putty pentru a observa modul
de functionare a aplicatiei urmatoare.
void setup() {
Serial.begin(9600);
}

void loop() {
if (Serial.available()>0)
{
int sentByte = Serial.read();
Serial.print("Am receptionat caracterul cu codul ascii: ");
Serial.println(sentByte);
}
}

Exercitii
Realizati un program pentru Arduino care, la apăsarea butonului aprinde aleatoriu unul din 2 LED-
uri.

S-ar putea să vă placă și