Arduino Hello World
logo

Arduino Hello World

Module 1 Module 2 Module 3 Module 4 Module 5 Module 6 Module 7 Spiekbriefje

Module 6
Modulair en gestructureerd programmeren

Home Eigen functies For-lus met increment Lijsten

Lijsten

Een lijst (ook wel array genoemd) is een soort variabele die meerdere waarden tegelijk kan bewaren.
Je kunt het vergelijken met een ijsblokjesvorm: in plaats van één vakje (zoals bij een gewone variabele), heb je meerdere vakjes naast elkaar waarin je getallen kunt zetten.


int pinLijst[] = {10,8,6,3};


  • pinLijst is de gekozen naam voor de lijst
  • Tussen de { } geef je de waardes van de lijst mee. In dit geval pin 2 tem pin 5.
  • Elke waarde in de lijst krijgt een indexnummer, we starten bij 0. index 0 bevat de waarde 10, index 1 = 8, index 3 = 6, index 4 = 3.
  • Eén enkele waarde uit de lijst kan je met het indexnummer oproepen: x = pinLijst[1], waarbij x de waarde 8 zal bevatten.

We zagen reeds dat je een for-lus kan gebruiken om een reeks pinnen als input of output in te stellen. In het setup deel komt dan dit te staan:

// Deel 2: setup (wordt eenmalig doorlopen bij opstarten)
void setup() {
for(int PinNum = 2; PinNum < 8; PinNum++) {// pinnen met nummer 2 tot en met 8
pinMode(PinNum, OUTPUT);// instellen als output pinnen
}
}

Wanneer je pinnummers opgeslaan staan in een lijst wordt de code dit:

// Deel 1: declaratie en initialisatie (wordt eenmalig doorlopen bij opstarten)
int pinLijst [] = {2,3,5,7};
// Deel 2: setup (wordt eenmalig doorlopen bij opstarten)
void setup() {
for(int i = 0; i < 4; i++) {// alle waardes vanuit pinLijst met index 0,1,2,3
pinMode(pinLijst [i], OUTPUT);// instellen als output pinnen
}
}
  Opdracht 1

Bouw een schakeling met 4 leds volgens het circuit hieronder.
Je mag zelf kiezen op welke pinnen de leds zijn aangesloten. Zorg telkens voor een weerstand in serie.

Laat nu elke led afzonderlijk branden. Maak gebruik van een lijst en een for-lus.

Optimaliseer deze code:

Deel 1: declaratie en initialisatie

  • Maak een variable aan voor de wachttijd
  • Maak een lijst aan die alle pinnummers bevat die je gebruikt.

herinner je: int pinLijst[] = {2,3,5,7};

Mogelijk oplossing

 

Uitbreiding:

Deze oefening is gebaseerd op een voorbeeld van Arduino. Wil je de volledige oefening proberen, breidt dan uit naar 6 leds en implementeer een tweede for-lus in het loop gedeelte waarbij alle leds één voor één weer uit gaan.
Voor de oplossing ga naar File > Examples > 05.Control > Arrays.


  Opdracht 2

Bouw dezelfde schakeling van verkeerslichten A en B zoals in module 5 (sequentie).
Je mag zelf kiezen op welke pinnen de leds zijn aangesloten. Zorg telkens voor een weerstand in serie.

Maak gebruik van lijsten en een eigen functie om de leds aan en uit te zetten.

Pas deze code aan:

Deel 1: declaratie en initialisatie    Deel 2: setup    Eigen functies Deel 3: loop

Deel 1: declaratie en initialisatie

  • Maak een lijst aan die alle pinnummers bevat die je gebruikt. Handig is hier om een lijst met de namen van de pinnen te maken.
  • Maak een variabele aan voor het totaal aantal pinnen dat gebruikt wordt.

herinner je: int pinLijst[] = {2,3,5,7};

Mogelijk oplossing