Szükséges minimum kód
Arduino sketch írásnál a szükséges minimum a setup() és a loop() függvények meghívása (persze ehhez írhatunk saját függvényeket, de e nélkül nem fog működni a kódunk).
A setup funkció a program futtatásakor csak egyszer fut le az elején. Itt adhatjuk meg hogy melyik pin-t hogyan akarjuk használni (bemenetként vagy kimenetként). Itt inicializáljuk a pineket (értékadás 0-val). Itt hívjuk meg a soros portot. ÁLLANDÓK
A loop funkció, mint a neve is mutatja, többször fut le egymás után. A bemeneti és kimeneti adatokat itt változtathatjuk. VÁLTOZÓK
Ezek dedikált funkciók, tehát be vannak építve a fejlesztőkörnyezetbe. Void-dal kell őket meghívni: void setup(), void loop(). Kapcsos zárójel jelzi a funkcióblokk elejét és végét. Kerek zárójelbe kerülnek a paraméterek. Az utasítások végét pontosvasszővel jelezzük. Ha egysoros kommentet akarsz írni azt dupla perjel // után megteheted, így nem zavar bele a kódba. Ha hosszabb szöveget akarsz akkor azt /* ilyen jelek közé tedd be. */
SZINTAXISUK:
void setup() {
// ide tedd az állandókat
}
void loop() {
// ide jönnek a változók - ismétlődik a lefutás
}
LED villogtatása
220 Ohm-os ellenállás, 1db 5mm LED dióda - A LED negatív lába megy a földbe (rövidebb szára), a pozitív (hosszabb) pedig az ellenálláson keresztül a 13 digitális pinbe (ami a beépített LED kibezetése). Az ellenállás azért kell hogy csökkentsük a LEDhez jutó feszültséget. Az átlagos 5mm LEDek kb 20mA-t fogyasztanak és 2,2-3,4V-tal működnek. A gyártó adatlapján lehet megtudni hogy az adott LEDnek mik a paraméterei. Az ellenállások színkódolással rendelkeznek, azt kell róluk leolvasni hogy megtudjuk az értéküket.
Az egyszerűség kedvéért most kalkulátort használunk ehhez, egyébként táblázatból is visszakereshető lenne. Több online, ellenállás kalkulátor van. Némelyik ha rossz sorrendben adod meg a csíkokat, akkor figyelmeztet hogy ez nem szabványos érték, olyankor a fordított sorrend lesz a jó megoldás. Illetve ha megadunk egy értéket és hogy hány színkód legyen az ellenálláson akkor megmutatja a csíkok színét is. Példák:
- http://www.hobby-hour.com/electronics/resistorcalculator.php
- http://www.wmszki.hu/honlap/szinkod
- http://www.hobbielektronika.hu/segedprogramok/?prog=ellenallas
- http://elektrotanya.com/?q=hu/ellenallas_szinkod
Arduinó kód:
/* Blink Turns on an LED on for one second, then off for one
second, repeatedly. This example code is in the public domain. */ void setup() { // a 13 pint kimenetként használjuk //ha nem kötsz bele LEDet akkor a beépített fog villogni pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); // LED bekapcsolása delay(1000); // 1 másodperc várakozás digitalWrite(13, LOW); // LED kikapcsolása delay(1000); //1 másodperc várakozás
}
SZINTAXISOK
pinMode(pin, mode);
Itt adjuk meg hogy melyik pin-t mire használjuk.
- pin: az általad használt pin száma, digitálisokat számmal 0,1,2,, stb.), analógokat nagy A betű mellé írott számmal (A0, A1, stb.) jelőljük.
- mode: bementként vagy kimenetként akarod használni: INPUT, OUTPUT
digitalWrite(pin, value);
Kimenetként használt digitális pin-t tudjuk vele be- és kikapcsolni.
- pin: az általad használt pin száma, amit a pinMode-nál is megadtál
- value: értéke lehet ki- (0V) vagy bekapcsolt (5V): LOW, HIGH
delay(ms);
Szüntet tart a futtatásban.
- ms: milisecundumban kell megadni az értékét, 1000ms = 1s (másodperc)
FELADAT
Köss be 5db LEDet digitális pinekbe az eddigiek szerint és 1mp-ig világítsanak sorban oda-vissza.
forrás: http://arduino.cc/en/Tutorial/BareMinimum, http://arduino.cc/en/Reference/Setup,
http://arduino.cc/en/Reference/Loop, http://arduino.cc/en/Reference/SemiColon,
http://arduino.cc/en/Reference/Braces, http://arduino.cc/en/Tutorial/Blink
http://arduino.cc/en/Reference/PinMode, http://arduino.cc/en/Reference/DigitalWrite,
http://arduino.cc/en/Reference/Delay,