Arduino nyelv
Az Arduino, Massimo Banzi és más alapítók alkotása. Ez egy olcsó mikorkontroller 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 pedig rendkívül könnyen tanulható. Arduinot használva építhető interaktív kijelző, mozgó robot vagy bármi 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-et 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.
Szintaktika
A nyelv a C nyelvből ered, attól kevés dologban különbözik.[1] 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.[1]
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[2] 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
- ↑ a b https://www.arduino.cc/en/Reference/HomePage
- ↑ Archivált másolat. [2017. április 16-i dátummal az eredetiből archiválva]. (Hozzáférés: 2017. április 16.)
Források
- https://www.arduino.cc/en/Reference/HomePage
- http://www.circuitstoday.com/story-and-history-of-development-of-arduino