## Een knipperend lampje (digitalWrite)

We beginnen met het aansluiten van 1 LED lampje op de Arduino. Hierboven zie je hoe de schakeling loopt van de Arduino (digitale poort 1), via een breadboard, met een weerstand (270 Ω) naar de LED en gaat vervolgens terug naar de GND van de Arduino.

### De code.

`int led = 0;`

`int wachten = 1000;`

`void setup(){
pinMode(led, OUTPUT);
}`

`void loop(){
digitalWrite(led, HIGH);
delay(wachten);
digitalWrite(led, LOW);
delay(wachten);
}`

De code die de LED laat knipperen staat hierboven geschreven. We gaan rustig langs elk onderdeel om te begrijpen wat er gebeurt.

### Int en ;

De code begint met:

`int led = 0;`

`int wachten = 1000;`

Deze code maakt eigenlijk twee bakjes en schrijft op die bakjes een naam (led en wachten). In deze bakjes wordt een nummer gestopt (0 en 1000). Elke keer dat we een naam schrijven weet de Arduino dat het in het bakje moet kijken en het getal wat er in zit moet gebruiken. Deze getallen gaat de Arduino later gebruiken in de code!

Ook zie je na elke regel een `;` staan. Dit teken (punt-komma) schrijf je na elke opdracht voor de Arduino. Zo weet de Arduino dat die regel klaar is en dat het naar de volgende regel kan.

### void setup(){}

`void setup(){
pinMode(led, OUTPUT);
}`

Elke Arduino code gebruikt `void setup(){}`. Deze code wordt 1 keer uitgevoerd als de Arduino wordt aangezet en komt maar 1 keer voor in de gehele code. Je ziet hier het volgende in staan:

`pinMode(led, OUTPUT);`

Omdat we een digitale pin gaan gebruiken op de Arduino moeten we bedenken wat die pin moet doen. De pin kan stroom geven (`OUTPUT`) of stroom ontvangen (`INPUT`). Maar niet beide. Omdat we een LED gaan aansturen zetten we de mode van de pin op `OUTPUT` en sluiten we de regel af met een. Ook wilt de Arduino weten welke pin wij bedoelen. Als je naar boven scrollt zie je dat de code begon met `int led = 0;`. De Arduino vervangt hier het woord 'led' met het getal 0.

### void loop(){}

`void loop(){
digitalWrite(led, HIGH);
delay(wachten);
digitalWrite(led, LOW);
delay(wachten);
}`

Nu komt het echte programma in beeld. In de `void loop(){}` zet je de code neer die de Arduino eindeloos gaat herhalen. Wij willen dat de lamp aan gaat, en vervolgens weer uit gaat. Eerst zetten we de lamp aan:

`digitalWrite(led, HIGH);`

De Arduino herkent de code `digitalWrite`. We zeggen dat hij een digitale pin moet aan of uit moet zetten. Wij willen de pin aan zetten dus we schrijven `HIGH`. De Arduino wil natuurlijk weten ook welke pin dat moet zijn. Daarom staat er tussen haakjes eerst 'led'.

De code betekent dus letterlijk: zet pin 0 op `HIGH` (aan).

Nadat de lamp is aangezet laten we de Arduino 1 seconden wachten. Dat doen we met de volgende code:

`delay(wachten);`

Het woord `delay` betekent vertraging in het Engels. De Arduino wilt ook weten hoelang de wachttijd is. Helemaal boven in de code hebben we bepaald dat in het 'wachten' bakje het getal 1000 zit. De Arduino werkt heel snel. 1000 betekent 1 seconde! De Arduino wacht dus 1 seconde voor dat het de volgende regel code uitvoert.

`digitalWrite(led, LOW);
delay(wachten);`

Na het wachten moet de LED uitgezet worden. Dat doen we met code die we al eerder gebruikten, alleen gebruiken we nu `LOW`. Na het uitzetten wachten we weer 1 seconde.

Nu zijn alle 4 de regels code uitgevoerd, namelijk:

1. Zet de lamp aan
2. Wacht 1 seconde
3. Zet de lamp uit
4. Wacht 1 seconde

Nu begint de Arduino opnieuw met wat er in `void loop(){}` staat geschreven en begint het verhaal overnieuw.