ARDUINO UNO este o placa de dezvoltare bazata pe microcontrolerul ATmega328 (foaie de catalog)). ARDUINO UNO are 14 de intrari digitale / pini de iesire (din care 6 pot fi utilizate ca catalog iesiri PWM), 6 intrari analogice, un oscilator cu quart de 16 MHz, o conexiune USB, o mufa de alimentare, o mufa ICSP si un buton bu ton de resetare. ARDUINO UNO contine tot ceea ce este necesar pentru a sprijini microcontrolerul pentru ca acesta sa functioneze; pur si simplu conectati la un computer printr-un cablu USB, alimentator AC-la-DC sau baterie pentru a incepe. ARDUINO UNO este diferit fata de placile precedente, in sensul ca nu foloseste un chip driver FTDI USB-la-serial. In schimb, acesta are incorporat microcontrolerul Atmega8U2 programat ca un convertor USB-la-serial.
“UNO” inseamna “unu” in limba italiana si este numit pentru a marca viitoarea lansare Arduino 1.0 IDE. Uno si versiunea 1.0 vor fi versiunile standard pentru marca Arduino. Specificatii tehnice: Microcontroler
ATmega328
Voltajul de operare
5V
Voltajul de iesire (recomandat)
7-12V
Voltajul de intrare (limitare)
6-20V
Pini digitali I/O
14 (din care 6 pot fi folositi ca PWM)
Pini analogi de intrare
6
DC Curent pentru pinii de I/O
40 mA
DC Curent pentru pinul de 3.3V
50 mA
Memoria
32 KB din care 0.5 KB utilizati de bootloader
SRAM
2 KB
EEPROM
1 KB
Clock Speed
16 MHz
Schema & Designul
Fişiere EAGLE: Arduino-UNO-design.zip Schematica: Arduino-UNO-schematic.pdf Alimentare ARDUINO UNO poate fi alimentat prin intermediul conexiunii USB sau cu o sursa de alimentare externa. Sursa de alimentare este selectata automat. Alimentarea externa (non-USB) poate veni fie de la un adaptor AC-la-DC sau baterie. Adaptorul poate fi conectat printr-un conector de 2.1mm cu centru-pozitiv. Conectare de la o baterie poate fi realizata legand la GND si V‟in capetele de la conectorii de alimentare. Placa de dezvoltare poate opera pe o sursa externa de 6-20 volti. Daca este alimentata la mai putin de 7V, exista posibilitatea, ca pinul de 5V sa furnizeze mai putin de cinci volti si placa sa devina instabila. Daca se alementeaza cu mai mult de 12V, regulatorul de tensiune se poate supra-incalzi acest lucru ducand la deteriorarea placii. Intervalul de tensiune recomandat de catre producator este de 7-12 volti. Pinii de tensiune si alimentarea sunt dupa cum urmeaza: - V‟in. Tensiune de intrare pe placa de dezvoltare atunci cand este utilizata o sursa de alimentare externa (spre deosebire de 5 volti de la conexiunea USB sau alte surse de energie stabilizata). Puteti introduce tensiuni de alimentare prin intermediul acestui pin, sau, in cazul in care tensiunea de alimentare se face prin intermediul conectorului de alimentare externa, o puteti accesa prin acest pin. - 5V. Regulator de tensiune utilizat pentru alimentarea microcontrolerului si a altor componente de pe placa de dezvoltare. Aceasta poate fi alimenta fie de la VIN printr-un regulator de pe placa de dezvoltare, fie furnizat de catre USB sau de o alta sursa de tensiune de 5V. - 3V3. O alimentare de 3.3 volti generat de catre regulatorul de tensiune de pe placa. Curentul maxim ca il furnizeaza este de 50 mA. - GND. Pini de impamantare. Memoria ATmega328 are 32 KB (cu 0,5 KB utilizate pentru bootloader). Ea are, de asemenea, 2 KB SRAM si 1 KB de EEPROM.
II) 1.Ce este Arduino?
Arduino este un instrument prin care poţi realiza sisteme informatice capabile să „perceapă‟ şi să „controleze‟ lumea înconjurătoare . Acest instrument este open-source şi este compus dintr -un mediu de dezvoltare (o varianta de Wiring – platforma folosită pentru procesare multimedia) şi o placă de dezvoltare cu microcontroler AVR. Arduino poate fi folosit pentru dezvoltarea de obiecte interactive. Informaţia este preluată de la o gamă variată de senzori şi comutatoare, se procesează în interiorul microcontrolerului AVR, şi este transmisă către o gamă la fel de variată de lumini, motoare, actuatoare etc. 2.De ce sa aleg Arduino?
Pe piaţă există o gamă foarte variată de sisteme de dezvoltare bazate pe microcontroler,
avantajele pe care le are Arduino faţă de aceste sisteme sunt: -Costuri de achiziţie reduse -Poate fi folosit pe orice sistem de operare (Linux,Windows sau MacOS). Majoritatea plăcilor de dezvoltare fiind limitate la sistemul de operare Windows. -Un mediu de programare simplu şi usor de învăţat. -Este open source, atât placa de dezvoltare cât şi mediul de programare 3.Lucruri necesare înainte de a începe
Pentru a putea să foloseşti platforma Arduino ai nevoie de urmatoarele: - cablu USB – placă de dezvoltare Arduino – mediu de dezvoltare 4.Instalarea plăcii de dezvoltare
Instalarea plăcii de dezvoltare se face foarte simplu. Se leagă placa de dezvoltare cu calculatorul prin intermediul cablului USB, şi gata. Pentru Windows mai trebuie să instalezi şi driverul plăcii: Trebuie să mergi în Start->Control Pannel->System and Security->System->Device Manager În grupul Ports (COM & LPT) ar trebuii să găseşti un port numit Arduino Uno. Click dreapta pe portul respectiv şi selectează Update drivers->Browse my computer for Driver software Mai departe mergi în directorul în care ai dezarhivat aplicaţia Arduino iar aici va trebuii să alegi directorul Drivers pentru ArduinoUno sau FTDI USB Drivers pentru plăcile ce folosesc adaptor FTDI. La linkul urmator gaseşti şi un tutorial cu screenshot -uri pentru instalarea driverelor în Windows http://arduino.cc/en/Guide/UnoDriversWindowsXP 5.Descrierea plăcii de dezvoltare ArduinoUNO
Plăcile de dezvoltare Arduino seamănă foarte mult între ele (din elementele comune am putea enumera: intrările/ieşirile digitale, intrările analogice, microcontrolerul etc.). Din acest motiv descriem în continuare doar placa de dezvoltare ArduinoUno:
-intrare analogică: este folosită pentru citirea semnalelor nondigitale. Ex. senzori de temperatură, senzori de lumină, senzori de presiune, umiditate etc. -intrare/ieşire digitală:imaginativa un intrerupator de la un bec. Acesta poate să aibă 2 stări: inchis sau deschis adica 0 sau 1 -pwm (Pulse-width modulation): modulaţia în durată a impulsurilor. Poate fi utilizat pentru a indeplinii o varietate foarte mare de sarcini, de la iluminarea LED pana la controlul vitezei motoarelor electrice. http://www.slideshare.net/guestedb041/prezentare-pwm 6.Mediu de dezvoltare
Instalare: Descărcă ultima versiune pentru ArduinoIDE de aici: http://arduino.cc/en/Main/Software, după care dezarhivează fişierul proaspăt descărcat în locaţia dorită.
Configurare: ArduinoIDE se configurează astfel. Din meniul Tools->Boards se selectează tipul de placă folosit,
iar din meniul Tools->Ports se selectează portul COM folosit de placa de dezvoltare
Utilizare: Fereastra aplicaţiei arată ca în imaginea de mai jos.
1.Zona meniu:
Verifică programul pentru erori Incarcă programul în placa de dezvoltare Crează un nou proiect Deschide un proiect Salvează proiectul curent
Monitorizare serială – acest buton este folosit pentru comunicarea prin portul serial cu calculatorul
2.Zona program: Această parte din aplicaţie este folosită pentru scrierea şi editatrea programelor. Cu a jutorul iconiţei din dreapta sus (sub forma de sageata orientata în jos) poţi redenumi/crea fisiere noi.
3.Zona compilator: În această zonă vor aparea eventualele erori de compilare.
III) Descrierea pinilor la Arduino si un mic glosar de termeni. Data publicarii: 29-07-2013 - Copyright © Fanache A. Remus
Explicarea pinilor existenţi pe Arduino Uno revizia 3
Deşi găsiţi pe internet destule tutoriale în care explică pinii existenţi pe Arduino, am zis că este mai bine să mai scriu şi eu despre asta putând ulterior să fac referire la acest articol când va fi nevoie într-un articol viitor.
Începând de sus, există 14 pini digitali de intrare / ieşire (I/O - input/output). Aceştia operează la o tensiune de 5 volţi şi pot fi controlaţi cu una din funcţiile pinMode(), digitalWrite() şi digitalRead(). Fiecare pin poate primii sau trimite o intensitate de maxim 40 mA şi au o rezistenţă internă între 20-50 kOhmi (default deconectată). În afară de semnalul standard I/O, unii dintre pini mai au şi alte funcţii specializate, care sunt descrise mai jos: 1. (serial) RX - pin s erial, utilizat în special pentru recepţia (intrare - Rx) datelor seriale asincrone (asynchronous serial communication) Protocolul serial asincron este o metodă foarte răspândită în electronică pentru a trimite şi recepţiona date între dispozitive. Acest protocol este implementat în dispozitiv numit UART (Universal Asynchronous Receiver/Transmitter) 2. (serial) TX - pin serial, utilizat pentru trimiterea datelor asincrone (ieşire - Tx). TTL vine de la transistor-transistor logic. 3. (External Interrupts) întrerupere externă. Acest pin poate fi configurat pentru a declanșa o întrerupere la o valoare mică, un front crescător sau descrescător, sau o schimbare în valoare. Vezi detalii despre posibile comenzi la attachInterrupt() 4. (External Interrupts + PWM) întrerupere externă. Identic cu pinul 2. Suplimentar, toţi pinii marcaţi cu semnul ~ pot fi folosiţi şi pentru PWM ( pulse with modulation)
5. (I/O) pin standard intrare/iesire 6. (PWM) poate furniza control de ieşire pe 8-bit pentru controlul PWM. Vezi detalii despre posibile comenzi la analogWrite() 7. (PWM) 8. (I/O) pin standard intrare/ieşire 9. (I/O) pin standard intrare/ieşire 10. (PWM) 11. (PWM + SPI) - suportă comunicare prin interfaţa serială (Serial Peripheral Interface). SPI-ul are patru semnale logice specifice iar acest pin se foloseste pentru SS - Slave Select (active low; output din master). Pinii SPI pot fi controlaţi folosind libraria SPI. 12. (PWM + SPI) - suportă SPI, iar acest pin se foloseşte pentru MOSI/SIMO - Master Output, Slave Input (output din master) 13. (SPI) - suportă SPI, iar acest pin se foloseşte pentru MISO/SOMI - Master Input, Slave Output (output din slave) 14. (LED + SPI) - suportă SPI, iar acest pin se foloseşte pentru SCK/SCLK - Ceas serial (output din master). De asemenea, pe placă este încorporat un LED care este conectat la acest pin. Când pinul este setat pe valoarea HIGH este pornit, când are valoarea LOW este oprit. 15. (GND) - împământare. Aici se pune negativul. 16. (AREF) - Analog REFference pin - este utilizat pentru tensiunea de referinţă pentru intrările analogice. Se poate controla folosind funcţia analogReference(). 17. (SDA) - comunicare I2S 18. (SCL) - comunicare I2S
Jos, există o serie de 6 pini pentru semnal analogic, numerotaţi de la A0 la A5, fiecare din ei poate furniza o rezoluţie de 10 biţi (adică maxim 1024 de valori diferite). În mod implicit se măsoară de la 0 la 5 volţi, deşi este posibil să se schimbe limita superioară a intervalului lor folosind pinul 15 AREF şi funcţia analogReference(). De asemenea, şi aici anumiţi pini au funcţii suplimentare descrise mai jos: 1. 2. 3. 4. 5.
standard analog pin standard analog pin standard analog pin standard analog pin (SDA) suportă comunicarea prin 2 fire (I2S (I-two-C) sau TWI (Two wire interface)). Acest pin este folosit pentru SDA (Serial Data) la TWI. 6. (SCL) identic cu pinul 4, doar că acest pin este folosit pentru SCL (Serial Clock) la TWI. Pentru controlul TWI se poate folosi librăria Wire.
Lângă pinii analogici de jos mai există o secţiune de pini notată POWER. Mai jos sunt prezentaţi începând de lângă pinul analog A0:
Vin - intrarea pentru tensiune din sursă externă (input Voltage) GND - negativul pentru tensiune din sursă externă (ground Voltage) GND - negativ. Se f oloseşte pentru piesele şi componentele montate la arduino ca şi masă/împământare/negativ.
5V - ieşire pentru piesele şi componentele montate la arduino. Scoate fix 5V dacă placa este alimentată cu tensiune corectă (între 7 şi 12 v) 3.3V - ieşire pentru piesele şi senzorii care se alimentează la această tensiune. Tensiunea de ieşire este 3.3 volţi şi maxim 50 mA. RESET - se poate seta acest pin pe LOW pentru a reseta controlerul de la Arduino. Este de obicei folosit de shield-urile care au un buton de reset şi care anulează de obicei butonul de reset de pe placa Arduino. IOREF - este folosit de unele shield-uri ca referinţă pentru a se comuta automat la tensiunea furnizată de placa arduino (5 volţi sau 3.3 volţi) (Input/Output Refference Voltage) pin neconectat, este rezervat pentru utilizări ulterioare (la reviziile următoare ale plăcii probabil).
Comunicarea cu calculatorul, altă placă arduino sau alte microcontrolere se poate realiza fie prin portul USB (şi este văzut ca un port standard serial COMx), fie prin pinii 0 şi 1 (RX şi TX) care facilitează comunicarea serială UART TTL (5V). Folosind librăria SoftwareSerial se poate face comunicaţii seriale folosind oricare din pinii digitali. Pentru comunicarea I2C (TWI) este inclusă o librărie Wire. Pentru comunicarea SPI se poate folosi librăria SPI. După cum vedeţi în imaginea de mai sus, placa mai are o serie de pini marcaţi ICSP (In-Circuit Serial Programming). Aceşti pini pot fi folosiţi pentru reprogramarea microcontrolerului, sau ca pini de expansiune cu alte microcontrolere compatibile. Sunt conectaţi standard şi se poate folosi un cablu de 6 fire (MOSI, MISO, SCK, VCC, GND, şi pinul RESET) la fel ca în imagina de pe wikipedia (vezi linkul de la ICSP de mai sus). Bibliografie:
Arduino Uno TX and RX Signals RS-232 vs. TTL Serial Communication Interfața serială SPI Pulse-width modulation I2C Interface or TWI (Two Wire Interface) Using an Arduino board as an ISP via the ICSP header