Analoge signalen
Analoge Signalen
- Analoge Signalen: Signalen die continu variëren en een oneindig aantal waarden kunnen aannemen binnen een bereik.
- Voorbeelden: Geluidsgolven, lichtintensiteit, temperatuur.
Verschil met Digitale Signalen:
- Digitaal: Discrete waarden (aan of uit, 0 of 1).
- Analoog: Continu variërende waarden.
Analoge Inputs: Potentiometers
Wat is een potentiometer?
- Een variabele weerstand die je kunt draaien om de weerstand te veranderen.
- Wordt gebruikt om analoge input te genereren (bijv. volumeknop op een radio).
Aansluiten van een potentiometer:
- Componenten: Potentiometer, breadboard, jumper wires.
- Aansluiting:
- Verbind de middelste pin van de potentiometer met analoge pin A0 van de Arduino.
- Verbind één van de buitenste pinnen met 5V.
- Verbind de andere buitenste pin met GND.
Analoge Outputs: LED-helderheid met PWM
Wat is PWM (Pulse Width Modulation)?
- Een techniek om analoge resultaten te verkrijgen met digitale middelen.
- Door de tijd dat een signaal hoog is te variëren (duty cycle), kunnen we de gemiddelde stroom naar een apparaat regelen.
LED-helderheid aanpassen:
- Door PWM kunnen we de helderheid van een LED regelen.
- Arduino heeft speciale pinnen die PWM ondersteunen (gemarkeerd met een ~, bijv. pin 9).
Aansluiten van de LED:
- Componenten: LED, 220Ω weerstand, breadboard, jumper wires.
- Aansluiting:
- Verbind de anode (+) van de LED via de weerstand met PWM pin 9.
- Verbind de kathode (-) van de LED met GND.
Code om de LED-helderheid te regelen met een potentiometer
Stap-voor-stap uitleg:
-
Lees de waarde van de potentiometer:
int sensorValue = analogRead(A0); -
Converteer de sensorwaarde naar een PWM-waarde:
- De
analogRead()geeft een waarde tussen 0 en 1023. - De
analogWrite()verwacht een waarde tussen 0 en 255. - We gebruiken de
map()functie om dit om te zetten.int outputValue = map(sensorValue, 0, 1023, 0, 255);
- De
- Schrijf de PWM-waarde naar de LED:
analogWrite(9, outputValue);
Volledige code:
void setup() {
// Geen setup nodig voor dit voorbeeld
}
void loop() {
int sensorValue = analogRead(A0); // Lees de potentiometer
int outputValue = map(sensorValue, 0, 1023, 0, 255); // Converteer naar PWM-waarde
analogWrite(9, outputValue); // Pas LED-helderheid aan
}
Uitleg van de Code
- analogRead(pin): Leest de analoge waarde van de gegeven pin.
- map(value, fromLow, fromHigh, toLow, toHigh): Converteert een waarde van het ene bereik naar het andere.
- analogWrite(pin, value): Schrijft een PWM-signaal naar de gegeven pin.
Opdracht
Doel: Maak een LED-dimmer met behulp van een potentiometer.
Instructies:
- Bouw de schakeling zoals hierboven beschreven.
- Schrijf de code over in de Arduino IDE.
- Upload de code naar je Arduino.
- Draai aan de potentiometer en observeer hoe de helderheid van de LED verandert.
Extra Uitdagingen
-
Uitbreiding 1: Voeg een tweede LED toe en laat deze tegengesteld dimmen ten opzichte van de eerste LED.
- Hint: Gebruik
outputValue = 255 - outputValue;voor de tweede LED.
- Hint: Gebruik
-
Uitbreiding 2: Gebruik een LDR (lichtsensor) in plaats van een potentiometer om de LED-helderheid automatisch aan te passen aan het omgevingslicht.
Veelgemaakte Fouten
- Verkeerde pinnen gebruiken: Zorg ervoor dat je de juiste analoge en PWM-pinnen gebruikt.
- Vergeten te mappen: Zonder het omzetten van de sensorwaarde naar het juiste bereik werkt de PWM niet correct.
- LED direct op 5V aansluiten: Dit kan de LED beschadigen; gebruik altijd een weerstand.
Veiligheidstips
- Controleer je schakeling voordat je stroom toevoert.
- Gebruik de juiste weerstanden om overbelasting te voorkomen.
- Raak geen blote draad aan tijdens het gebruik van de schakeling.
