## Project 2.2 Knoppenwerk

In dit project ga je een knop maken die het licht aan gaat zetten als je er op drukt. oftewel een momentschakelaar. Hiervoor heb je nodig

- Led
- 1 k Ω weerstand
- Arduino
- 10 k Ω weerstand
- Knop

## Uitleg knop:

Hoe werkt het:
Een drukknop bevat metalen contacten die samengedrukt worden wanneer de knop wordt ingedrukt, waardoor er elektrische stroom kan stromen. Deze drukknop heeft vier draden, waarvan er twee altijd intern zijn verbonden, en de twee sets raken elkaar wanneer de knop wordt ingedrukt.

Hoe je het moet verbinden:
Sluit de ene kant van de schakelaar aan op stroom, en de andere kant op de ingangspin van een microcontroller, en op de aarde via een grote weerstand. De weerstand is verbonden met de pin LOW, tenzij de knop wordt ingedrukt. Op dat moment kan de pin een HIGH-signaal detecteren wanneer deze wordt aangesloten op 5V.

####

#### De basis om een knop te laten werken ziet er zo uit:

We gaan nu beginnen met bouwen, maak je breadboard klaar door de plus en min kanten van de arduino te verbinden. Doe dit zo:

Je weet welke componenten je nodig hebt, probeer nu zelf de componenten te verbinden,

- het lampje moet verbonden zijn met een digitale pin op de Arduino en in serie geschakeld zijn met een weerstand en verbonden zijn met de -.
- de knop moet verbonden zijn met een digitale pin en met de + en de - (kijk naar het voorbeeld van hoe een knop werkt hierboven)

lukt dat niet kijk dan eerst naar de schematische weergave (onthoud dat je deze pins niet hoeft te gebruiken, je mag ook andere gebruiken).

Kom je echt niet verder kijk dan naar het antwoord bij de antwoorden.

Laten we aan de slag gaan met programmeren!

Volg de stappen hieronder om de opdracht uit te voeren. Zorg ervoor dat je de knop als sensor gebruikt en niet als schakelaar. Dit betekent dat de knop een aparte stroomkring heeft, zodat het lampje blijft branden, zelfs als de stroomkring in de knop wordt doorbroken.

####

#### Stap 1: Initialiseer een variabele

Boven de setup() functie initialiseer je een variabele met de volgende code:

`int status = 0;`

De naam van de variabele is status, maar je kunt deze een andere naam geven als je wilt, zolang deze uit letters bestaat en geen speciale tekens bevat. Deze variabele zal de status van de knop opslaan.

#### Stap 2: Stel de pinnen in

In de setup() functie stel je in welke pinnen je gebruikt en of ze als INPUT of OUTPUT zijn ingesteld.

Voorbeeld:

`void setup() {`

`pinMode(4, OUTPUT); // LED is verbonden met pin 4`

`pinMode(2, INPUT); // Knop is verbonden met pin 2`

`}`

#### Stap 3: Lees de status van de knop

In de loop() functie gebruik je de functie `digitalRead()` om de status van de knop te lezen. Koppel de gelezen waarde aan de variabele status:

`void loop() {`

`status = digitalRead(2); // Lees de status van de knop verbonden met pin 2`

`}`

####

#### Stap 4: Stel een if-else structuur in

Gebruik een if-else-structuur om te bepalen wat er gebeurt op basis van de status van de knop:

`if (status == 0) {`

`digitalWrite(4, HIGH); // Zet de LED aan`

`} else {`

`digitalWrite(4, LOW); // Zet de LED uit`

`}`

Hier controleert if (status == 0) of de knop wordt ingedrukt (waarbij een waarde van 0 aangeeft dat de stroomkring is gesloten).

Werkt het niet?

Kijk in de antwoorden voor de oplossing

Veel succes!

Werkt het niet?

Kijk in de antwoorden voor de oplossing