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