A függvények olyanok, mint kis téglák, amikből nagyobb dolgokat lehet építeni! Miért nem csinálunk rögtön egy s() meg egy o() függvényt is? Az s() belsejében három ti() van, meg egy kis várakozás a betű végén.
void setup() {
pinMode(13, OUTPUT);
}
void ti() {
digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
delay(100);
}
void ta() {
digitalWrite(13, HIGH);
delay(200);
digitalWrite(13, LOW);
delay(100);
}
void s() {
ti();
ti();
ti();
delay(200);
}
void o() {
ta();
ta();
ta();
delay(200);
}
void loop() {
s();
o();
s();
delay(200);
}
No, már a loop()-ot nézve bárki ki tudja találni, hogy mit fog csinálni ez a program!
Ez a program izé... olyan izé... Először is igen, a loop() részt nézve tényleg látszik már, hogy mit fog csinálni. Csak az a baj, hogy ott van mellette egy csomó más kód még, ti() meg ta() függvények, meg minden apróság.
Ebben az egy programban egyszerre kétféle dolog van:
Ez olyan, mint a kóla (a lényeg) és a kólásüveg (a maradék). Mindkettőre szükség van, de attól még a lényeg a kóla, ugye?
Praktikus ötlet ezt a két dolgot különválasztani. Szerencsére ez egész könnyű. Csak annyit kell tenni, hogy kattints a jobb-felső részen a pici menügombra, és aztán a New tab menüpontra.
Adj nevet az új lapnak, én úgy hívom, hogy morzelib. (A lib az angol library, azaz könyvtár rövidítése. Persze itt nem könyvekről van szó. Az igazi könyvtárban könyvek vannak, amiket bárkinek lehet használni. A lib-ben meg programdarabkák (függvények) vannak, amiket bárkinek lehet használni.)
Vegyük ketté a programunkat, és minden morzézással kapcsolatos dolgot mozgassunk át a morzelib-be. A ti(), ta(), s(), o(), s() mind ide jönnek.
Ezek után a főprogramban tényleg csak a lényeg marad:
No, ez már döfi :) Ezen már első ránézésre látszik, hogy mit csinál.
Készítsd el még néhány morze-betű függvényét! (Természetesen a morzelib-be!) Csinálj programot, ami elmorzézza a nevedet!
Egy pillanatra gondolkozz el rajta, hogy kapcsolóval, relével, ezzel-azzal mennyire lehetetlen lenne ez a feladat, de Neked simán menni fog, így most még példát sem írok ide, mert nem lesz rá szükséged.