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
[szerkesztés]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
[szerkesztés]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
[szerkesztés]- 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
[szerkesztés]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
[szerkesztés]A C-vel azonosan használható:
- *: nem-hivatkozás operátor
- &: hivatkozás operátor
Változók
[szerkesztés]Konstansok
[szerkesztés]- 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
[szerkesztés]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ó
[szerkesztés]- char()
- byte()
- int()
- word()
- long()
- float()
Változók hatásköre és megszorítások
[szerkesztés]- variable scope
- static
- volatile
- const
Segédprogramok
[szerkesztés]- sizeof(): adott változó mérete bájtban
- PROGMEM
Függvények
[szerkesztés]Digitális I/O
[szerkesztés]- 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
[szerkesztés]- 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
[szerkesztés]- analogReadResolution()
- analogWriteResolution()
Haladó I/O
[szerkesztés]- tone()
- noTone()
- shiftOut()
- shiftIn()
- pulseIn()
Idő
[szerkesztés]- millis()
- micros()
- delay()
- delayMicroseconds()
Matematika
[szerkesztés]- sin(), cos(), tan()
- min(), max()
- abs()
- constrain()
- map()
- pow()
- sqrt()
Karakterek
[szerkesztés]- isAlphaNumeric()
- isAlpha()
- isAscii()
- isWhitespace()
- isControl()
- isDigit()
- isGraph()
- isLowerCase()
- isPrintable()
- isPunct()
- isSpace()
- isUpperCase()
- isHexadecimalDigit()
Véletlenszámok
[szerkesztés]- randomSeed()
- random()
Bitek és byte-ok
[szerkesztés]- lowByte()
- highByte()
- bitRead()
- bitWrite()
- bitSet()
- bitClear()
- bit()
Külső megszakítások
[szerkesztés]- attachInterrupt()
- detachInterrupt()
Megszakítások
[szerkesztés]- interrupts()
- noInterrupts()
Kommunikáció
[szerkesztés]- Serial
- Stream
USB (32u4 alapú boards-ok és Due/Zero only)
[szerkesztés]- Keyboard
- Mouse
Mintaprogram
[szerkesztés]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
[szerkesztés]- 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
[szerkesztés]- ↑ 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.)