Az Arduino Massimo Banzi és más alapítók alkotása. Ez egy olcsó mikrovezérlős kártya (board), ami még a kezdők számára is lehetőséget biztosít bonyolult és összetett elektronikai szerkezetek megvalósítására. Az Arduinót hozzá lehet kapcsolni mindenféle égőhöz, motorhoz, szenzorhoz és egyéb eszközökhöz. A programozási nyelve rendkívül könnyen tanulható. Arduinót használva építhető interaktív kijelző, mozgó robot, hangszervezérlő klaviatúra vagy bármi más, amit el lehet képzelni.

Szoftver Az Arduino IDE egy kereszt-platformos Java nyelven írt fejlesztőkörnyezet, amely segítségével Arduino programokat készíthetünk, tesztelhetünk, majd az Arduino Board-okra tölthetjük. Az induláshoz a fejlesztőeszköz több mintaprogramot tartalmaz, amelyek segítségével egyszerűen megtanulhatjuk, hogyan tudunk LED-eket villogtatni, fényerőt szabályozni, vagy a számítógéppel kommunikálni USB-n keresztül. Az Arduino programokat egy C/C++ alapú programozási nyelven írhatjuk, így az ezeket a nyelveket ismerők könnyen kiismerhetik magukat a környezetben. Az IDE-hez tartozik a "Wiring" nevezetű C/C++ programkönyvtár, amellyel egyszerűen végezhetjük el a leggyakoribb input/output műveleteket.

Szintakszis A nyelv a C nyelvből ered, attól kevés dologban különbözik.https://www.arduino.cc/en/Reference/HomePage Az alábbiakban főként ezeket az eltéréseket részletezzük.

A programok három fő részre bonthatóak: struktúra (vezérlési szerkezetek), értékek (változók és konstansok) és függvények.

Struktúra setup() {...}: a mikrovezérlő indulásakor, egyszer fut le, az indításért felel. loop() {...}: végtelenségig (a mikrovezérlő kikapcsolásáig) ismétlődik, a folyamatos működést vezérli.

Vezérlési szerkezetek A C nyelvvel azonosak az if, for, switch, do ... while, break, continue, return parancsok. Arduinoban használható a goto is.

A kommentek, a #define és a #include is a C-vel azonosak.

Pointer hozzáférési operátorok A C-vel azonosan használható:

*: nem-hivatkozás operátor &: hivatkozás operátor

Változók Konstansok HIGH | LOW: logikai értékek (magas/alacsony, igaz/hamis) INPUT | OUTPUT | INPUT_PULLUP: láb (pin) üzemmódjai (bemenet, kimenet, felhúzott bemenet) LED_BUILTIN: beépített LED-ek true | false: igaz/hamis integer constants: egész konstansok (pl. 2) floating point constants: tört konstansok (pl. 3.14)

Adattípusok A legtöbb adattípus megegyezik a C-belivel:

void boolean char unsigned char byte int unsigned int word long unsigned long short float double string = char array String = object array

Konverzió char() byte() int() word() long() float()

Változók hatásköre és megszorítások variable scope static volatile const

Segédprogramok sizeof(): adott változó mérete bájtban PROGMEM

Függvények Digitális I/O pinMode(): beállítja egy pin (láb) módját (kimenet/bemenet) digitalWrite(): igaz/hamis (HIGH/LOW) értéket állít egy lábra digitalRead(): beolvassa egy lábon lévő bejövő logikai értéket

Analóg I/O analogReference() analogRead(): beolvassa egy lábon lévő bejövő analóg értéket, számként analogWrite(): PWM jelet állít be egy lábra

Due & Zero only analogReadResolution() analogWriteResolution()

Haladó I/O tone() noTone() shiftOut() shiftIn() pulseIn()

Idő millis() micros() delay() delayMicroseconds()

Matematika sin(), cos(), tan() min(), max() abs() constrain() map() pow() sqrt()

Karakterek isAlphaNumeric() isAlpha() isAscii() isWhitespace() isControl() isDigit() isGraph() isLowerCase() isPrintable() isPunct() isSpace() isUpperCase() isHexadecimalDigit()

Véletlenszámok randomSeed() random()

Bitek és byte-ok lowByte() highByte() bitRead() bitWrite() bitSet() bitClear() bit()

Külső megszakítások attachInterrupt() detachInterrupt()

Megszakítások interrupts() noInterrupts()

Kommunikáció Serial Stream

USB (32u4 alapú boards-ok és Due/Zero only) Keyboard Mouse

Mintaprogram A következő program egy egyszerű Arduino program, amely egy csatlakoztatott LED-et kapcsol be és ki csatlakoztatott nyomógomb segítségével. /* * Nyomogomb */

int ledPin = 9; // LED Pin9-re kötve int inputPin = 2; // nyomógomb Pin 2-re kötve int val = 0; // a nyomógomb állapotát tároló változó

void setup() { pinMode(ledPin, OUTPUT); // a LED-hez tartozó láb kimenet pinMode(inputPin, INPUT); // a nyomógombhoz tartozó láb bemenet digitalWrite(ledPin, LOW); // LED kikapcsolása }

void loop() { val = digitalRead(inputPin); // nyomógomb állapotának lekérdezese if (val == HIGH) // ha a nyomógomb nincs lenyomva

digitalWrite(ledPin, HIGH); // LED bekapcsolása

else // különben

digitalWrite(ledPin, LOW); // LED kikapcsolása

Kapcsolódó oldalak https://www.arduino.cc/en/Main/AboutUs https://www.arduino.cc/en/Main/FAQ http://www.circuitstoday.com/story-and-history-of-development-of-arduino https://arduinohistory.github.io/ http://www.ladyada.net/learn/arduino/

Jegyzetek

Források https://www.arduino.cc/en/Reference/HomePage http://www.circuitstoday.com/story-and-history-of-development-of-arduino

Kategória:Programozási nyelvek