Ugrás a tartalomhoz

Arduino nyelv

Ellenőrzött
A Wikipédiából, a szabad enciklopédiából

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()
  • 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]

Jegyzetek

[szerkesztés]
  1. a b https://www.arduino.cc/en/Reference/HomePage
  2. Archivált másolat. [2017. április 16-i dátummal az eredetiből archiválva]. (Hozzáférés: 2017. április 16.)

Források

[szerkesztés]