Teach ikasgaia
Arduino oinarriak 2/4: sortu argi-sekuentzia bat
Ikasleek kanpoko lau LED programatuko dituzte array-ak eta begiztak erabiliz. 1-2-3-4 sekuentzia probatu, eta joan-etorriko sekuentzia bihurtuko dute.
Hasi saioa irakasle-kontu batekin klase-saioa prestatzeko. Ikasleak klase-kode batekin sartzen dira.
Lehen aldia duzu LabsLand-en? Sortu irakasle-kontua
Ikaskuntza-emaitzak
Hainbat pin digital irteera gisa erabiltzea.
for begizta erraz bat ulertzea.
Argi-eredu bat aldatzea.
Ikaslearen jardueraren aurrebista
Jardueraren edukia
Aurrebista soilik. Klase-saio batean, ikasleek erantzunak bete eta lana irakasleari bidal diezaiokete.
Plaka bat, hainbat LED
9 min
Plakak kanpoko lau LED ditu, 8, 7, 6 eta 5 pinetara konektatuta. Ia berdinak diren lau kode-bloke idatz zenitzake, baina array bat eta for begizta bat erabilita ez duzu hainbeste kode errepikatu behar. Pentsa array-a pin-zerrenda bat dela, eta for begizta zerrenda horretako elementuak banan-banan erabiltzeko modua dela.
Begiratu jardueraren oinarrizko programako zati honi:
const int totalLeds = 4;
void loop() {
for (int i = 0; i < totalLeds; i++) {
// Zerrendako LED bat piztu eta itzali.
}
}Kode-zati horren arabera, loop() funtzioa behin exekutatzen denean, zenbat aldiz errepikatzen da barruko for begizta?
Programatu sekuentzia
18 min
Ulertu indizeak begizta aldatu aurretik. Array-aren posizioak 0, 1, 2, 3 dira; posizio horietan gordetako pinak 8, 7, 6, 5 dira, eta 1, 2, 3, 4 LEDei dagozkie. Atzera egiteko muturretako LEDak errepikatu gabe, erabili 2, 1 indizeak: lehenik 3. LEDa eta gero 2.a. Erabili zeinudun int motako indize bat: hasi totalLeds - 2 balioan, jarraitu i > 0 den bitartean, eta txikitu balioa i-- erabiliz. Idatzi indizeen ibilbidea paperean programa kargatu aurretik.
Probatu sekuentzia hau eta, gero, aldatu atzera ere egin dezan: 1., 2., 3., 4., 3. eta 2. LEDak. Modu erraz bat lehen for begiztaren ondoren bigarren bat gehitzea da. Gorde fitxategia kodearen kopia erantsi aurretik.
const int leds[] = {8, 7, 6, 5};
const int totalLeds = 4;
void setup() {
for (int i = 0; i < totalLeds; i++) {
pinMode(leds[i], OUTPUT);
}
}
void loop() {
for (int i = 0; i < totalLeds; i++) {
digitalWrite(leds[i], HIGH);
delay(300);
digitalWrite(leds[i], LOW);
}
}Ireki laborategia.
Kargatu oinarrizko programa eta behatu LEDen ordena.
Gehitu atzerako ibilbidea, joan-etorriko efektua sortzeko.
Gorde fitxategia kodearen kopia egin aurretik.
Klase-saio batean erabilgarri
Aurkeztu zure kodea
Erantsi joan-etorriko sekuentziaren kodearen kopia. Erantsi aurretik, gorde main.ino laborategiko ingurunean. Kodearen kopiak irakasleak berrikustea nahi duzun programa jaso behar du.
Interpretatu programa
8 min
Zein lerro aldatuko zenuke LED bakoitza denbora gehiagoz piztuta egoteko? Adierazi lerroa eta probatuko zenukeen balio berria.
Bihurtu aurrebista hau klase-saio batean
Jarraitu LabsLand Teach-era ikasgai hau ikasleekin erabiltzeko eta kontuaren sarbidea berrikusteko.
Lehen aldia duzu LabsLand-en? Sortu irakasle-kontua