Sunteți pe pagina 1din 7

Circuite digitale – utilizarea plăcii de dezvoltare

Arduino Uno

A. Introducere

În ultimii ani circuitele digitale au acaparat domeniul electronicii, iar apariția


unei game foarte largi de microcontrollere a condus la o expansiune largă a
circuitelor realizate de către persoane specializate dar și de către persoanele
care nu au o pregătire temeinică în domeniul electronicii. Astfel, pentru ca
persoanele ce dețin mai puține cunoștințe în domeniul electronicii și al
programării microcontrollerelor dispun de o serie de platforme de dezvoltare
precum Arduino sau Raspberry Pi.

B. Obiective
În urma parcurgerii laboratorului studentul va fi capabil să:

- definească principalele componente ale plăcii de dezvoltare Arduino


Uno;
- pună în funcțiune placa de dezvoltare Arduino Uno;
- realizeze un circuit simplu de control al unui LED cu ajutorul plăcii
de dezvoltare.

C. Descrierea lucrării

1. Descrierea plăcii de dezvoltare Arduino Uno

Placa de dezvoltare Arduino Uno [6] se bazează pe utilizarea unui


microcontroller Atmega328P [10] din familia Atmel AVR pe 8 biți (vezi
figura L8-1). Aceasta oferă o gamă largă de aplicații oferind suport pentru
achiziție analogică, comunicație prin intermediul pinilor digitali, comenzi
PWM, comunicație serială. Din aceeași familie de plăci de dezvoltare pe
piață se pot regăsi și variante precum Arduino Nano, Arduino Leonardo,
Arduino Micro, Arduino Mega, etc., fiecare dintre acestea având
caracteristici diferite de funcționare.
Fig. L8-1 Arduino Uno

Familia de plăci Arduino reprezintă o platformă de procesare open-source,


bazată pe software și hardware simplu de folosit și flexibil. Proiectul a
început în anul 2005 ca un proiect al lui Massimo Banzi, student la
Interaction Design Institute Ivrea din localitatea Ivrea din Italia.

Specificații al plăcii de dezvoltare Arduino Uno:

 microcontroller: ATmega328
 tensiune de lucru: 5V
 tensiune de intrare (recomandat): 7-12V
 tensiune de intrare (limita): 6-20V
 pini digitali: 14 (6 PWM output)
 pini analogici: 6
 curent per pin I/O: 40 mA
 curent 3.3V: 50 mA
 memorie Flash: 32 KB (ATmega328) 0.5 KB pentru bootloader
 SRAM: 2 KB (ATmega328)
 EEPROM: 1 KB (ATmega328)
 clock speed: 16 MHz

2. Arhitectura internă a plăcii Arduino Uno

Caracteristica principală a platformei este simplitatea, considerent urmărit


încă de la începutul proiectului. Este o platformă de mici dimensiuni
construită în jurul microcontrollerului cu rol de procesor de semnal. Placa
este organizată în jurul următoarelor module:

- modul de alimentare. Placa poate fi alimentată direct de la PC sau


folosind o sursă de tensiune externă.
- modul de interfațare cu PC-ul, modul serial-USB. Acesta oferă atât
posibilitatea comunicației printr-un port USB cu PC-ul cât și
programarea plăcii.
- pini de interfațare analogici și digitali.

Placa nu adaugă funcționalități suplimentare microcontrollerului integrat pe


placă ci facilitează conectarea unei game largi de senzori, displayuri
analogice sau digitale, motoare, etc., la acesta prin simpla conectare a
circuitelor realizate de utilizator la gama de pini analogici și digitali (vezi
figura L8-2).

Fig. L8-2 Evidențierea pinilor plăcii Arduino Uno


3. Mediul de programare Arduino IDE

Platforma Arduino este reprezentată de partea hardware (placa de dezvoltare)


dar și de partea de software a acesteia (programarea funcționării
componentelor hardware). Lucrul cu această platformă se poate face prin
înțelegerea arhitecturii plăcii și a funcționării componentelor acesteia dar și
prin înțelegerea modului de programare a microcontrollerului dedicat.

În acest sens avem la dispoziție programul Arduino IDE [7] (vezi figura L8-
3), acesta fiind o aplicație cross-platform scrisă în Java. Este proiectat astfel
încât și cei nefamiliarizați cu dezvoltarea software să poată scrie programe
simple pentru platforma Arduino. Acesta include un editor de cod cu funcții
de evidențiere a sintaxei și de asemenea oferă mecanisme simple pentru
compilarea și încărcarea automată a codului în plăcuța Arduino (valabil
pentru orice versiune a acesteia: Nano, Uno, Mega, etc.). Arduino IDE
suportă limbajele de programare C și C++, dar având la bază o serie de
proceduri predefinite. Cu toate acestea Arduino IDE nu este singurul
program cu ajutorul căruia putem programa plăcuța Arduino. Astfel, avem la
dispoziție și soluții precum WinAVR [8] sau Atmel Studio [9].

Fig. L8-3 Interfața mediului de programare Arduino IDE


Interfața programului este una foarte simplă, fiind organizat în patru zone de
comenzi și mediu de lucru după cum urmează (de sus în jos):

- în partea de sus se regăsește meniul ce prezintă grupurile de comenzi


File, Edit, Sketch, Tools și Help
- urmează zona de pictograme ce prezintă o serie de comenzi rapide
precum Verify (se verifică corectitudinea codului din punct de vedere
al sintaxei), Upload (încarcă programul creat pe plăcuță), New
(program nou), Open (deschidere cod sursă) și Save (salvare cod
sursă)
- zona de editare a programului acesta purtând numele de sketch.
- zona de mesaje a procesului de compilare și încărcare a programului
pe plăcuță.

Meniul principal al Arduino Uno dispune de următoarele funcții:

- File – funcții de bază de lucru cu proiectele create (New, Open, Save,


Close), o serie de exemple pentru inițiere – Examples, cât și
posibilitatea particularizării interfeței – Preferences
- Edit – funcții de bază de lucru asupra codului sursă scris (Copy,
Paste, Cut, Find, Undo, Redo, etc.)
- Sketch – funcții specifice procesului de compilare și rulare a codului
pe plăcuța Arduino (Verify/Compile, Upload, etc.)
- Tools – funcții specifice pentru monitorizarea datelor primite de la
plăcuță (Serial Monitor), alegerea configurației exacte a plăcii
hardware conectare la PC (Board și Processor), configurarea portului
serial pe care este conectată plăcuța la PC (Port), etc.
- Help – funcții specifice pentru accesarea documentației mediului de
programare.

D. Desfășurarea lucrării

1. În cadrul acestei lucrări se va utiliza un exemplu regăsit în programul de


bază Arduino IDE, denumit Blink. Acesta se poate deschide din meniul
principal File→Examples→01.Basics→Blink. Placa Arduino Uno are
conectat din fabricație la pinul 13 un LED. În cadrul acestui program este
implementată o funcționalitate foarte simplă de aprindere și stingere a LED-
ului, intervalele predefinite fiind de 1000ms timp de aprindere și 1000ms
timp cât acesta va rămâne stins.

void setup() {
pinMode(13, OUTPUT);
}

void loop() {
digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(13, LOW); // turn the LED off by making the voltage
LOW
delay(1000); // wait for a second
}

2. După cum se poate observa în codul sursă există două funcții predefinite
denumite setup() și loop(). Orice program scris în Arduino IDE va conține
aceste două funcții, setup fiind utilizată pentru realizarea inițializărilor
necesare programului, iar loop este utilizată pentru a rula într-o buclă infinită
programul încărcat pe în microcontrollerul plăcuței.

3. Se poate observa în funcția setup faptul că pinul cu numărul 13 va avea un


rol de ieșire în cadrul programului nostru, fapt transmis microcontrollerului
prin intermediul funcției predefinite pinMode(pin, mode) în cazul de față
pinMode(13, OUTPUT). De menționat faptul că pinul 13 este un pin I/O
digital ce poate fi configurat cu rol de intrare (INPUT) sau de ieșire
(OUTPUT) din sistem. Fiindc vorba de un pin digital el va avea două stări
posibile HIGH și LOW, acestea fiind corespondente din punct de vedere
fizic valorilor de tensiune +5V și 0V.

4. Trecerea alternativă a LED-ului între stările aprins și stins se va face în


cadrul buclei infinite a programului, funcția loop, prin intermediul funcției
digitalWrite(pin, value).

5. Compilarea programului se poate face prin intermediul comenzii


Sketch→Verify/Compile sau din meniul de comenzi rapide.

În cazul în care codul sursă nu prezintă erori de sintaxă în zona de mesaje nu


se va afișa nici un mesaj de eroare ceea ce înseamnă că putem încărca
progamul pe plăcuța de dezvoltare. În acest sens se va utiliza funcția
Sketch→Upload regăsită în meniul principal, după ce în prealabil ne
asigurăm că plăcuța selectată este cea pe care o utilizăm Tools→Board și
Tools→Processor.

Temă: Modificați valorile timpilor de aprindere și stingere a LED-ului și


editați programul astfel încât pinul LED-ului să poată fi configurat prin
intermediul unei variabile definite în afara celor două funcții predefinite ale
programului inițial.

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