marți, 17 martie 2015

ARDUINO - Ce este ARDUINO?


Arduino este o platform open-source utilizata pentru realizarea proiectelor electronice. Aceasta platform este formata dintr-o placa electronic ce contine un microcontroller si un pachet software sau IDE ( Integrated Development Environment). IDE-ul este folosit pentru a scrie partea de programare ( cod ) si a incarca programul in placa electronic sau in microcontroller.

Platform Arduino a devenit extreme de popular, mai ales in randul incepatorilor in tainele microcontroller-elor sau a electronicii, datorita simplitatii, ofera o larga paleta de librarii pentru foarte multe proiecte ( motoare, senzori, ecrane LCD, etc… ).

In urmatoarele imagini aveti o placa ARDUINO UNO si ARDUINO MEGA 2560 si IDE-ul cu un program ( cod ) scris.

 
Figură 1. Placa ARDUINO UNO



Figură 2. Placa ARDUINO MEGA 2560.


Figură 3. IDE-ul ARDUINO
In figura 3, cea cu IDE-ul, este un program care face ca un led conectat la pinul 13 sa „clipeasca” ( se stinge si se aprinde la un interval de  1 secunda ). La prima vedere poate nu o sa intelegeti prea multe din program dar cu rabdare si multa documentare o sa va para usor. Documentatie despre Arduino, proiecte realizate cu Arduino veti gasi foarte multa deoarece este open –source sau mai bine zis , asa cum ne place noua romanilor, gratuita ( MOCA ) doar partea software, partea de electronica costa :D :P. Nu ezitati sa folositi www.google.ro .
Ce anume poate face acest ARDUINO?
Platforma a fost, si este, dezvoltata pentru incepatori, impatimiti de microcontrollere, hacker-ilor si tuturor celor care sunt interesati de creearea unor „obiecte” interactive. Arduino poate interactiona cu butoane, led-uri, motoare, difuzoare, unitati GPS, camere video si web, cu internetul, telefonul „destept ” sau smartphone, cu televizorul, etc……, bariere avand doar imaginatia voastra dar nu cred acest lucru!.
Ce gasim pe placa electronica?
Sunt foarte multe variante de placi arduino, dar in majoritatea cazurilor veti gasi urmatoarele componente:
POWER si COMUNICATIEA USB – alimentarea poate fi o sursa externa ( 2 ) sau se poate lua tensiunea necesara din conexiunea USB (1) care de asemenea face legatura dintre partea software si placa electronica. Mare atentie cand folositi sursa de alimentare externa, tensiunea acesteia trebuie sa fie cuprinsa intre 6 – 12 V .
Pinii 3V3(5), 5V (4), GND(3), AnalogIn(6), Digital PWM(7,8), Aref (9) – sunt foarte bine ganditi pentru ca puteti sa va conectati la ei cu simple fire. La majoritatea placilor arduino acesti pini, dar si ceilalti, sunt marcati vizibil pe placa.
·         GND = masa;
·         5V si 3V3 = sunt pini la care avem o tensiune de 5V respectiv 3V3 pe care o putem folosi pentru a alimenta altceva.
·         AnalogIn = cu acesti pini putem citi date analogice de la diferiti senzori analogici si transformate in date digitale.
·         Digital PWM = acesti pini sunt pentru a primi si transmite date la/catre diferite componente;
·         Aref = referinta analogica. Este utilizata pentru a seta o referinta externa pentru limita superioara .
Reset Button ( 10 ) – in cazul in care placa se blocheaza si nu mai ruleaza codul apasam acest buton si programul va incepe de la inceput.
Power LED Indicator (11) – ne arata daca placa este alimentata sau nu
Tx, Rx (12) – sunt pinii de comunicatie. Acestia ne arata daca se receptioneaza sau transmit date.
Main IC (13) – microcontroller-ul
Voltage Regulator (14)  – in cazul in care alimentam placa de la o sursa externa avnd tensiunea cuprinsa intre 12 -19V acesta nu lasa sa patrunda decat tensiunea necesara placii fara sa o distruga, dar daca tensiunea este mai mare de 20V acesta se va arde si cu mari sanse sa va strica si placa arduino.
Instalarea pachetului software ( IDE-ul )
Pentru a instala pachetul software accesati adresa http://arduino.cc  si mergeti la sectiunea DOWNLOAD si cautati versiunea de ARDUINO pentru sistemul de operare pe care il aveti instalat pe computer. Descarcati pachetul software iar apoi instalatil.
Dupa instalarea acestuia conectati placa electronic la computer, acesta isi va instala driver-le necesare. Accesati programul ARDUINO. Va apare o fereastra ca in figura urmatoare, aici vom scrie programul nostrum.


Figură 4. IDE ARDUINO.


Scrieti datele din Figura 3. apoi apasati  Ctrl+U pentru a compila programul si al incarca in placa Arduino. Dupa incarcare ledul de pe placa ar trebui sa „clipeasca” .

Astabil cu led-uri folosind microcontroller PIC16F876 si ARDUINO



Una din schemele folosite pentru intelegerea electronicii este astabilul cu 2 led-uri. Schema initiala este formata din: 2 led-uri, 2 tranzistori, 2 condensatori, 4 rezistori si binenteles sursa de alimentare de 9-12V sau o baterie de 9-12V.
Acest montaj se folosea la automobilul DACIA 1300, 1310 pentru a indica starea bateriei.
In figura urmatoare este prezentata schema initiala ( originala ):




Vom lua aceasta schema si o realizam folosind un microcontroller PIC16F876 si apoi folosind placa de dezvoltare ARDUINO MEGA 2560.

Schemele sunt realizate in PROTEUS v8.0 iar fisierele cu codul sursa sunt realizate in MikroC Pro for PIC respective ARDUINO. Toate schemele sunt simulate folosind PROTEUS v8.0

SCHEMA ASTABIL CU 2 LED-URI FOLOSIND PIC16F876




Codul sursa:
void main()
 {
  PORTB=0;
  TRISB = 0;                                          // definim portul B ca fiind de iesire
    while(1)
    {
     PORTB=0b00000010;                // aprindem ledul de la RB1
     Delay_ms(1000);                         // il tinem aprins 1 secunda
     PORTB=0b00000000;               // stingem ledul de la RB1
     PORTB=0b00100000;                // aprindem ledul de la RB5
     Delay_ms(1000);                         // il tinem aprins 1 secunda
     PORTB=0b00000000;                // stingem ledul de la RB5
     }
}
SCHEMA ASTABIL CU 2 LED-URI FOLOSIND ARDUINO MEGA 2560


 

Codul sursa:


void setup()

{

  pinMode(51,OUTPUT);               //configuram pinul 51 ca fiind de iesire

  pinMode(52,OUTPUT);             //configuram pinul 52 ca fiind de iesire

}

void loop()

{

  digitalWrite(51, HIGH);                //aprindem led-ul de la pinul 51

  delay(1000);                                 //il tinem aprins 1 secunda

  digitalWrite(51, LOW);              //oprim led-ul de la pinul 51

  digitalWrite(52, HIGH);               //aprindem ledul de la pinul 52

  delay(1000);                                //il tinem aprins 1 secunda

  digitalWrite(52, LOW);              //oprim ledul de la pinul 52

}