## Project 2.4 Spanning manipuleren

Laten we leren hoe we een potentiometer uitlezen met Arduino!

Een potentiometer is een draaibare variabele weerstand. In deze les maken we een eenvoudige schakeling met een soldeerloos breadboard en gebruiken we Arduino-code om een LED te besturen.

Wat je nu gaat leren

We gaan het geleidelijk veranderende elektrische signaal van een potentiometer uitlezen via de analoge ingangen van Arduino. Deze ingangen bevinden zich aan de andere kant van de Arduino, tegenover de digitale i/o-pinnen.

De analoge pinnen zijn verbonden met de ADC (Analog to Digital Converter) van de Arduino. Deze zet een analoog signaal (tussen 0V en 5V) om in een getal tussen 0 en 1023.

## Bouw een Arduino-schakeling met een LED en een potentiometer

Volg deze instructies om de schakeling stap voor stap op te bouwen.

- LED
- 220 ohm weerstand
- 250 kilo ohm potentiometer

### Stap 1: Voeg de Arduino en het breadboard toe

1. Sleep een Arduino Uno en een breadboard naar het werkvlak vanuit het componentenpaneel.

### Stap 2: Verbind de voedingsrails van het breadboard

1. Voedingsrails aansluiten:

• Verbind de positieve rail (+) van het breadboard met de 5V-pin van de Arduino met een rode draad.

• Verbind de negatieve rail (-) van het breadboard met de GND-pin van de Arduino met een zwarte draad.

2. Voedingsrails uitbreiden:

• Maak een verbinding tussen de linker- en rechterzijde van het breadboard:

• Gebruik een rode draad om de positieve rails (+) met elkaar te verbinden.

• Gebruik een zwarte draad om de negatieve rails (-) met elkaar te verbinden.

### Stap 3: Verbind de LED en de weerstand

1. Plaats de LED:

• Plug de LED in het breadboard, zodat de pootjes in twee verschillende rijen zitten.

• Zorg ervoor dat de kathode (kortere poot, -) in de buurt van een weerstand wordt geplaatst.

2. Verbind de kathode met een weerstand:

• Sluit één kant van een weerstand (100 Ω tot 1 kΩ) aan op de kathode.

• Sluit de andere kant van de weerstand aan op de negatieve rail (-) van het breadboard.

3. Verbind de anode met Arduino pin 13:

• Sluit een draad aan tussen de anode (langere poot, +) van de LED en pin 13 van de Arduino.

### Stap 4: Voeg de potentiometer toe

1. Plaats de potentiometer:

• Plug de drie pootjes van de potentiometer in drie verschillende rijen op het breadboard.

2. Verbind de potentiometer:

• Verbind één buitenste poot met de positieve rail (+) van het breadboard.

• Verbind de andere buitenste poot met de negatieve rail (-).

• Verbind de middelste poot van de potentiometer met A0 op de Arduino.

Tips

• LED Polariteit: Zorg dat de langere poot van de LED (anode, +) correct is aangesloten op Arduino pin 13.

• Weerstanden: Deze hebben geen polariteit, dus de oriëntatie maakt niet uit.

Met deze schakeling kun je nu analoge waarden lezen van de potentiometer en een LED aansturen.

### Uitleg van de Arduino-code en hoe het werkt

Hieronder leggen we de verschillende delen van de code uit waarmee je een LED laat knipperen. De snelheid waarmee de LED knippert, wordt geregeld door de waarde van een potentiometer.

### Stap 1: Variabele aanmaken

`int sensorValue = 0;`

• Wat doet dit?

Voordat de setup() begint, wordt een variabele sensorValue aangemaakt.

• Het datatype int betekent dat deze variabele hele getallen kan opslaan.

• De variabele wordt gebruikt om de waarde van de potentiometer op te slaan.

### Stap 2: Instellen van de Arduino-pins

`void setup()`

`{`

`pinMode(A0, INPUT);`

`pinMode(13, OUTPUT);`

`}`

• Wat doet dit?

• `pinMode(A0, INPUT);`

• Pin A0 wordt ingesteld als een invoer (input). Deze leest de analoge waarde van de potentiometer.

• `pinMode(13, OUTPUT);`

• Pin 13 wordt ingesteld als een uitvoer (output). Hiermee wordt de LED aangestuurd.

### Stap 3: De hoofdlus (loop)

De code in de loop() wordt continu uitgevoerd zolang de Arduino aanstaat.

Lees de waarde van de potentiometer

`sensorValue = analogRead(A0);`

• Wat doet dit?

• De functie `analogRead(A0)` leest de analoge spanning op pin A0.

• De waarde ligt tussen 0 (0V) en 1023 (5V).

• Deze waarde wordt opgeslagen in de variabele sensorValue.

LED aanzetten en pauzeren

`digitalWrite(13, HIGH);`

`delay(sensorValue);`

• Wat doet dit?

• `digitalWrite(13, HIGH);`

Zet de LED aan (5V op pin 13).

• `delay(sensorValue);`

Pauzeer het programma voor een aantal milliseconden gelijk aan de waarde van sensorValue.

LED uitzetten en pauzeren

`digitalWrite(13, LOW);`

`delay(sensorValue);`

• Wat doet dit?

• `digitalWrite(13, LOW);`

Zet de LED uit (0V op pin 13).

• `delay(sensorValue);`

Pauzeer opnieuw voor een aantal milliseconden gelijk aan sensorValue.

Hoe werkt de LED-knippering?

• Wanneer je de potentiometer draait, verandert de weerstand. Dit zorgt voor een andere analoge spanning die wordt gelezen door pin A0.

• De waarde van deze spanning (tussen 0-1023) bepaalt de duur van de pauze tijdens `delay(sensorValue);`.

• Hoe hoger de spanning, hoe langer de pauze en hoe langzamer de LED knippert.

Samenvatting van de functionaliteit

1. De potentiometer bepaalt de waarde van sensorValue (0-1023).

2. De LED knippert met een snelheid die afhankelijk is van de waarde van sensorValue.

• Hoge waarde → Langzame knippering.

• Lage waarde → Snelle knippering.

Test de code op een Arduino en draai aan de potentiometer om het knippertempo van de LED te veranderen!