Translate

sâmbătă, 5 noiembrie 2011

"Hello, world" - Arduino Version

Ei bine, acum ca ne-am ales board-ul care ne va insoti in continuare putem sa trecem la crearea unui program clasic pentru orice limbaj de programare. Ca sa ne apucam de treaba avem nevoie de programelul Arduino. La momentul publicarii postului ultima versiune este 0022, disponibila aici. Acum ca avem si programelul, pentru primul program avem nevoie de urmatoarele:
  • Arduino board
  • USB cable
Codul este disponibil deja in exemplele Arduino 0022. Il putem accesa, dupa cum se vede in imagine.
Programul se numeste blink.
Ce face el?
Desi este un program banal, care aprinde si stinge un led montat deja pe board, acest program reprezinta primul contact cu limbajul de programare Arduino. Voi explica, pe scurt fiecare linie de comanda din program.


/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  This example code is in the public domain.
 */

void setup() {               
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  pinMode(13, OUTPUT);    
}

void loop() {
  digitalWrite(13, HIGH);   // set the LED on
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(1000);              // wait for a second
}

  • /* bla bla bla  */   -  Ceea ce este cuprins intre /* si */ este considerat comentariu si nu este luat in considerare la compilare; se poate folosi pentru comentarii pe mai multe linii
  • void setup(){....} - este o functie care in timpul rularii programului se ruleaza o singura data; aici se seteaza starea pinilor (intrare sau iesire, se intializeaza ecranele LCD, modulele SD, etc)
  • //  - este simbolul folosit pentru comentarii ce nu depasesc o linie
  • pinMode(13,OUTPUT); - este sitnaxa pentru setarea starii unui pin; in cazul de fata pinul 13 este setat ca pin de iesire. In comanda se face referire la pinii digitali (numerotati 0-13)  si modurile sunt INPUT sau OUTPUT)
  • void loop(){...} - este o a doua functie esentiala a unui program Arduino. Aceasta functie se ruleaza incontinuu, cand ajunge la sfarsit, se reia executarea de la inceput. 
  • digitalWrite(13,HIGH); - este o comanda care aplica tensiune de 5V pe pinul 13 al controllerului. In cazul de fata, exista un LED conectat intre pinul 13 care se va aprinde. Pinii controllerului reprezinta borna pozitiva a oricarui dispozitiv conectat  (led, spre exemplu); a doua borna se conecteaza la GND.
  • delay(1000); - este functia care creeaza o pauza in rularea programului. Parametrul functiei este numarul de milisecunde cat dureaza pauza.
  • pinMode(13,LOW); - aceasta comanda taie voltajul de pe pinul 13; acesta are acelasi potential ca GND; nu exista cadere de potential, nu exista curent.
Acesta este faimosul  "Hello, world" in limba Arduino. Cu aceste comenzi se pot face diferite secvente de leduri; Arduino accepta si comenzi gen for sau while pentru a face jocuri de leduri mai complexe.

Niciun comentariu:

Trimiteți un comentariu