Documente Academic
Documente Profesional
Documente Cultură
Arduino
Competenţe specifice: La sfârșitul lecției elevii vor fi capabili:
C1. Să identifice circuite electronice;
C2. Să utilizeze corect mediile de programare în electronică;
C3. Să respecte normele de protecție a muncii și de securitate;
C4. Să mențină bune relații profesionale;
C5. Să realizeze operații de conectare a componentelor electronice în
circuit;
• Arduino este o platforma utilizata pentru a
programa o serie de microcontrolere din familia
Atmel.
• Te poti gandi la el ca la un minicalculator (are
puterea de calcul a unui computer obisnuit de
acum 15 ani), fiind capabil sa culeaga informatii
din mediu si sa reactioneze la acestea.
Ce este un microcontroler
www.mikroe.com/chapters/view/1
Specification
Making-robots-with-arduino.pdf
Ce este o placă de dezvoltare
O placă de circuite
imprimate concepută
pentru a facilita lucrul cu
un anumit
microcontroler.
Making-robots-with-arduino.pdf
Arduino utilizeaza procesoare de tip SoC (System on a Chip), specificatiile
fiecarui tip de Arduino putand fi gasite la
adresa https://www.arduino.cc/en/Products/Compare .
In cadrul laboratoarelor vor fi utilizate o serie de copii ale platformei Arduino Uno.
Microcontrolerul ce va fi utilizat este unul de tip ATmega328P, ce functioneaza la
o tensiune de 5V.
Desi pare putin, cei 16Mhz sunt suficienti pentru a face programe foarte complexe
insa nu va vor da atat de multa libertate ca si procesorul unui PC: de data aceasta
va trebui sa optimizati codul la maxim, altfel aveti sanse ca programul fie sa nu
incapa in memoria RAM (2Kb) sau sa nu ruleze la o viteza acceptabilă.
Tensiuni periculoase?
• Tensiunea electrică ce ar putea fi periculoasa pentru
om este de peste 24V (desi abia peste 50V poate
deveni fatala) - deci puteti lucra cu Arduino fara sa
aveti vreo temere ca ati putea sa va curentati. Mai
degraba ati putea voi sa faceti un rau placii Arduino
daca nu puneti firele cum trebuie sau daca o
alimentați la un transformator inadecvat (peste 12V).
In acest laborator veti conecta Arduino la porturile
USB ale calculatoarelor si cum acestea furnizeaza 5V
(500mA), curentul funrizat este suficient pentru ca
Arduino sa functioneze.
Pentru inceput iata cateva restrictii de care va
rugam sa tineti cont pentru a nu arde placile
Arduino pe care le avem in dotare:
• Nu alimentati Arduino decat de la portul USB al unui
calculator sau al laptopului personal.
Desi alimentarea din exterior cu tensiuni cuprinse intre
7V si 12V pe portul special conceput pentru alimentare nu ar
trebui sa ridice nici o problema si Arduino ar putea rula
programul ce deja este incarcat pe el, recomandam sa nu
alimentati din exterior aceste dispozitive pentru ca s-ar putea ca
transformatorul pe care il aveti sa nu furnizeze curentul exact in
intervalul precizat sau s-ar putea ca acesta sa nu fie foarte bine
filtrat (si sa aiba varfuri de tensiune de peste 12V care desi nu
dureaza decat o fractiune de secunda, sunt suficiente pentru a
arde placa).
• Aveti grija la obiectele metalice pe care le aveti pe banca. -
partea "dorsala" a Arduino nu este izolata in nici un fel. Din
acest motiv, atingerea sa de obiecte de metal poate provoca
scurtcircuitari si puteti avea sansa sa va ardeti atat Arduino-ul
cat si portul USB (daca nu chiar toata placa de baza) a
calculatorului unde este conectat.
• Nu scurtcircuitati Arduino in mod voit. - Nu puneti fire cu
ambele capete in Arduino (de exemplu daca un fir este pus pe
un pin care este setat cu LOW si cu celalalt capat intr-un pin
HIGH, curentul existent in pinul HIGH se va scurge in LOW si va
veti putea intalni cu aceleasi efecte neplacute ca si la punctul
precedent.
• Daca frige, nu e de bine. - Scoteti rapid Arduino din portul
USB si chemati profesorul cu care faceti laborator sa gasiti
care este cauza.
Ce este Arduino
todbot.com/blog/bionicarduino
Să începem
1. Descarcă & instalează mediul integrat de
dezvoltare Arduino (IDE)
2. Conectează placa la calculator prin cablu USB
3. Dacă este nevoie, instalează driverele
4. Lansează Arduino IDE
5. Selectează placa
6. Selectează portul serial
7. Deschide exemplul blink
8. Încarcă programul
Conectează cablul USB
todbot.com/blog/bionicarduino
Arduino IDE
Urmatorul pas este selectarea tipului de placa cu care lucrezi. Din meniul
"Tools -> Board", selecteaza tipul de placa cu care lucrezi (Arduino Uno,
Leonardo, Mega, etc).
Anatomia unui program Arduino
Orice program Arduino are doua sectiuni. Sectiunea
"setup", care este rulata doar o singura data, atunci cand
placa este conectată (sau este apasat butonul "Reset"), si
sectiunea "loop", care este rulata in ciclu, atat timp cat este
alimentata placa.
void setup() {
todbot.com/blog/bionicarduino
Arduino Blink
File > Examples > Digital > Blink
Pentru primul exemplu Arduino, vom folosi un led montat din fabricatie pe placa. Placa
Arduino are din constructie un led conectat la pinul digital 13. Acest led se aprinde atunci
cand pinul 13 digital este pus in HIGH (din programul scris pe Arduino) se stinge atunci cand
pinul 13 este pus in LOW.
void setup()
{ pinMode(13, OUTPUT);
}
void loop()
{ digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Daca încărcăm acest program pe placa Arduino si urmarim led-ul conectat la pinul 13 vei
observa ca el clipeste o data pe secunda.
Obs: atunci cand incarcati un program pe platforma Arduino, 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.
Arduino Blink
www.mikroe.com/chapters/view/1
pinMode(pin, mode)
Setează un pin ca fiind INPUT sau OUTPUT
digitalRead(pin)
Citește HIGH sau LOW de la un pin
digitalWrite(pin, value)
Scrie valorile HIGH sau LOW la un pin
• delay(ms)
– Pauses for a few milliseconds
• delayMicroseconds(us)
– Pauses for a few microseconds
• More commands:
arduino.cc/en/Reference/HomePage
Digital? Analog?
• Digital has two values: on and off
• Analog has many (infinite) values
• Computers don’t really do analog, they quantize
• Remember the 6 analog input pins---here’s how
they work
todbot.com/blog/bionicarduino
Bits and Bytes
Variables
www3.ntu.edu.sg
Putting It Together
• Complete the sketch
(program) below.
• What output will be
generated by this program?
• What if the schematic were
changed?
www.ladyada.net/learn/arduino
Good References
www.arduino.cc
www.ladyada.net/learn/arduino
www.EarthshineElectronics.com
int timer=150;
void setup()
{for (int thisPin = 2; thisPin < 8; thisPin++)
{pinMode(thisPin,OUTPUT);}
}
void loop(){
for (int thisPin = 2; thisPin < 8; thisPin++){
digitalWrite(thisPin, HIGH);
delay(timer);
digitalWrite(thisPin, LOW);}
for (int thisPin = 7; thisPin >= 2; thisPin--){
digitalWrite(thisPin, HIGH);
delay(timer);
digitalWrite(thisPin, LOW);}
}