Professional Documents
Culture Documents
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 - 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);
}