Skip to main content

Analoge signalen

image.png

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:

  1. Componenten: Potentiometer, breadboard, jumper wires.
  2. 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:

  1. Componenten: LED, 220Ω weerstand, breadboard, jumper wires.
  2. 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:

  1. Lees de waarde van de potentiometer:

     
    int sensorValue = analogRead(A0);

     

  2. 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);
  3. 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:

  1. Bouw de schakeling zoals hierboven beschreven.
  2. Schrijf de code over in de Arduino IDE.
  3. Upload de code naar je Arduino.
  4. 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.
  • Uitbreiding 2: Gebruik een LDR (lichtsensor) in plaats van een potentiometer om de LED-helderheid automatisch aan te passen aan het omgevingslicht.