0% au considerat acest document util (0 voturi)
209 vizualizări7 pagini

Arduino Elemente de Programare

Arduino este o platformă open-source pentru dezvoltarea de proiecte electronice. Include un microcontroller ATMEL pe care se pot programa funcții și se pot conecta senzori și actuatori. Documentul prezintă platforma Arduino și oferă exemple de programe pentru controlul unor LED-uri și citirea de intrări digitale și analogice.

Încărcat de

Ioana
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
209 vizualizări7 pagini

Arduino Elemente de Programare

Arduino este o platformă open-source pentru dezvoltarea de proiecte electronice. Include un microcontroller ATMEL pe care se pot programa funcții și se pot conecta senzori și actuatori. Documentul prezintă platforma Arduino și oferă exemple de programe pentru controlul unor LED-uri și citirea de intrări digitale și analogice.

Încărcat de

Ioana
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 7

ARDUINO

Arduino este o platforma open-source (hardware si software), destinata in special mediului


universitar si pasionatilor de electronica. Este bazata pe microcontrollere ATMEL. Varianta
Arduino Uno contine un microcontroller ATMEGA328P.
Kit-ul de dezvoltare Arduino Uno este prezentat in figura de mai jos:

Fig. 1. Arduino Uno Rev. 3


Datorita arhitecturii deschise, in jurul lui s-au dezvoltat o serie de componente si clone,
beneficiind astfel de un suport dezvoltat din partea producatorilor si pasionatilor. Functiile de
baza pot fi extinse prin asa numitele shield-uri, ce se monteaza peste kit-ul de baza, intr-o
structura modulara (fig. 2).

Fig. 2. Shield-uri Arduino (in figura, shield-uri GSM)


1
Mediul de programare poate fi descarcat direct de pe site-ul producatorului: http://arduino.cc/
pentru toate sistemele de operare.
Mediul de programare Arduino este prezentat in figura 3. Pentru a putea utiliza correct kit-ul,
acesta trebuie selectat din meniul Tools->Board (fig. 4). De asemenea, trebuie specificat port-ul
pe care se face comunicatia cu calculatorul.
Un program Arduino are doua functii principale ce trebuiesc sa existe in fiecare program:
void setup (){
// cod initializare ruleaza o singura data
}
void loop (){
// bucla principala, ruleaza cat timp placuta este alimentata
}

Fig. 3. Mediul de programare Arduino

2
Fig. 4. Selectia kit-ului de dezvoltare
In momentul in care Arduino este prima data conectat la un calculator, vor trebui instalate
driverele pentru comunicarea serial. Acestea se gasesc in folder-ul descarcat de pe site-ul
http://arduino.cc/, dupa instalarea acestora putand selecta portul de comunicatie din meniul
Tools->Serial Port (fig. 4).
Arduino Uno dispune de 6 pini analogici si 13 pini digitali, dintre care 6 pot sa genereze semnal
PWM (Pulse Width Modulation). Pinii pot fi configurati ca intrari sau ca iesiri prin program.

3
Exercitii
Exercitiul 1: Initializarea pinilor In acest exercitiu vom folosi led-ul conectat pe pin-ul
digital 13 al kit-ului arduino pentru a il aprinde cu o frecventa de 0,5Hz.

/***************************************************************
Exercitiul 1 - Initializare pini, aprindere LED
***************************************************************/

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

void loop(){
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);
}

Exercitii:
1. Modificati exemplul precedent pentru a obtine clipirea led-ului cu frecventa de 2Hz.
2. Modificati timpii, astfel incat intr-o perioada, LED-ul sa stea aprins 100ms si stins 900ms.
3. Modificati din nou cei doi timpi, astfel incat sa fie egali mai intai cu 50ms si apoi cu 10ms.

Exercitiul 2: Utilizarea iesirilor PWM In acest exemplu vom folosi un pin digital cu iesire
PWM pentru a aprinde un LED cu intensitate variabila

/***************************************************************
Exercitiul 2 - Aprindere LED intensitate variabila
***************************************************************/

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

void loop(){
for (int i = 0; i < 255; i++){
analogWrite(11,i);
delay(50);
}

4
for (int i = 255; i > 0; i--){
analogWrite(11,i);
delay(50);
}
}

Exercitii:
1. Modificati exemplul precedent pentru a parcurge un ciclu complet in timpul de 2s.

Exercitiul 3: Intrari digitale In acest exemplu vom configure un pin digital ca intrare si vom
citi valoarea acesteia. Valoarea citita va fi afisata pe monitorul serial.

/***************************************************************
Exercitiul 3 - Citire intrari digitale (buton)
***************************************************************/

void setup(){
pinMode(7,INPUT);
Serial.begin(9600);
}

void loop(){
int button = digitalRead(7);
Serial.println(button);
delay(100);
}

Exercitiul 4: Intrari analogice In acest exercitiu vom folosi un pin analogic pentru a citi si
afisa pe monitorul serial valoarea unui sensor tactil si a unui sensor de lumina

/***************************************************************
Exercitiul 4 - Citire intrari analogice
***************************************************************/

void setup(){
Serial.begin(9600);
}

void loop(){
int button = analogRead(0);
Serial.println(button);
delay(100);
}

5
Exercitiul 5: Comanda cu informatii externe In acest exercitiu vom comanda
intensitatea luminoasa a unui LED prin intermediul unui sensor de lumina.

/***************************************************************
Exercitiul 5 - Aprinderea unui LED cu intensitate variabila in
functie de intensitatea luminii
***************************************************************/

void setup(){
pinMode(11,OUTPUT);
Serial.begin(9600);
}

void loop(){
int button = analogRead(0);
Serial.println(button);
int LED = map(button,0,1023,0,255);
Serial.println(LED);
analogWrite(11,LED);
delay(50);
}

Exercitiul 6: Comanda cu informatii externe In acest exercitiu vom comanda


intensitatea luminoasa a unui LED prin intermediul a doua butoane ce vor fi configurate sa
mareasca sau sa micsoreze intensitatea LED-ului.

/***************************************************************
Exercitiul 6 - Aprinderea unui LED cu intensitate variabila
controlata de doua butoane
***************************************************************/

int i = 0;

void setup(){
pinMode(11,OUTPUT);
pinMode(8,OUTPUT);
pinMode(2,INPUT);
pinMode(4,INPUT);
Serial.begin(9600);
}

void loop(){
digitalWrite(8,HIGH);
int up = digitalRead(2);
int down = digitalRead(4);

6
if (up == 1){
i++;
}
else{
if (down == 1){
i--;
}
}
if (i>255){
i=255;
}
if (i<0){
i=0;
}
Serial.println(i);
analogWrite(11,i);
delay(50);
}

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