Antwoorden Arduino workshop

Hier staan de antwoorden voor de opdrachten.
Probeer zo veel mogelijk zelf uit te zoeken en kijk pas naar de antwoorden als je zelf (al een paar minuten) vast zit.
Je kan natuurlijk ook vragen stellen aan de workshopgevers, of de antwoorden samen doornemen.

Antwoord knipperend lampje

#define LED 6 // de digitale input waarop het LED lampje op aan is gesloten

  void setup() {
  pinMode(LED, OUTPUT);
}

void loop() {
  digitalWrite(LED, HIGH); // LED aan
  delay(1000); // 1000 milliseconden is 1 seconde
  digitalWrite(LED, LOW);  // LED uit
  delay(1000); 
}
Antwoord klapper LED

#define LED 6

int soundSensor = A2; // de geluidssensor zit op A2

bool ledState = LOW; // het lampje begint uit


void setup() {
  Serial.begin(9600);
  pinMode(LED, OUTPUT);
}

void loop() {
  // lees de waarde van de geluidssensor
  int soundValue = analogRead(soundSensor); // tussen 0 en 1023

  if (soundValue > 650) {
    ledState = !ledState; // draai de state om: HIGH wordt LOW en LOW wordt HIGH
    digitalWrite(LED, ledState); // pas de state toe op het lampje
  }

  delay(100);
}
Antwoord lantaarnpaal

#define LED 6

int lightSensor = A3; // de lichtsensor zit op A3

void setup() {
  Serial.begin(9600);
  pinMode(LED,OUTPUT);
}

void loop() {
  int lightVal = analogRead(lightSensor); // 0-1023
  Serial.println(lightVal);
  digitalWrite(LED, lightVal < 512); // je kan 512 aanpassen als je de drempelwaarde bij wilt stellen

  delay(500);
}
Antwoord lichtsterkte laten zien op het scherm

#include "Arduino_SensorKit.h"

int lightSensor = A3; // de lichtsensor zit op de sensor kit aan A3

void setup() {
  Serial.begin(9600);

  // initialiseer OLED scherm
  Oled.begin();
  Oled.setFlipMode(true);
}

void loop() {
  // lees de waarde van de sensor
  int rawLightVal = analogRead(lightSensor);
  // de waarde van de sensor is tussen de 0 en de 1023 (10 bits ;))
  // zorg ervoor dat het makkelijker te lezen is voor mensen (0-100)
  int light = map(rawLightVal, 0, 1023, 0, 100);

  // stel een lettertype (font) in op het scherm en geef aan waar op het scherm er geschreven gaat worden
  Oled.setFont(u8x8_font_chroma48medium8_r); 
  Oled.setCursor(0, 33);
  // Schrijf de lichtwaarde (0-100) naar het scherm
  Oled.print(light);
  // Na het schrijven staat het in het geheugen van het schermpje, maar je moet het nog wel toepassen:
  Oled.refreshDisplay();

  delay(1000); // dit alles gebeurt om de 1000ms (1 seconde)
}
Antwoord tellen op scherm met knop

#include "Arduino_SensorKit.h"

#define button 4 // de knop is aangesloten via D4

int i = 0; // de teller begint bij 0

void setup() {
  Serial.begin(9600);

  pinMode(button, INPUT); // geef aan dat je wilt gaan lezen van D4

  // initialiseer het OLED scherm en zet het getal naar 0 (i dus, het begin)
  Oled.begin();
  Oled.setFlipMode(true);
  setNumber();
}

void loop() {
  // als de knop wordt ingedrukt en er dus stroom doorheen gaat (een digitale true-waarde is HIGH)
  if (digitalRead(button) == HIGH) {
    i++; // +1 op de teller
    setNumber(); // roep de functie aan die het naar getal op het scherm gaat zetten
    delay(250); // wacht 250 milliseconde, zodate je niet per ongeluk 2x klikt als je maar 1x wilde klikken
  }
}

void setNumber() {
  Oled.setFont(u8x8_font_chroma48medium8_r);
  // zet de positie op het schermpje waar geschreven gaat worden
  Oled.setCursor(0, 33);
  Oled.print(i); // schrijf de waarde naar het scherm (komt in geheugen)
  Oled.refreshDisplay(); // pas het toe op het scherm
}
Antwoord tekst verplaatsen met potentiometer

#include "Arduino_SensorKit.h"


int potentiometer =  A0; // de potentiometer is aangesloten via A0

void setup() {
  Serial.begin(9600);

  pinMode(potentiometer, INPUT); // geeft aan dat je wilt gaan lezen vanaf de A0 port

  // initialiseer het OLED schermpje en het lettertype
  Oled.begin();
  Oled.setFlipMode(true);
  Oled.setFont(u8x8_font_chroma48medium8_r);
}

void loop() {
  // lees de waarde van de potentiometer (is tussen de 0 en 1023)
  int sensorValue = analogRead(potentiometer);
  // zorg ervoor dat de waarde binnen het aantal pixels van het scherm blijven
  // -1 omdat een computer bij 0 begint met tellen
  int value = map(sensorValue, 0, 1023, 0, Oled.getRows()-1);
  Oled.clearDisplay(); // maak het scherm leeg, zodat de tekst op een lege achtergrond wordt geschreven
  // schrijf de tekst naar x = 0 en y = (waarde van de sensor)
  Oled.drawString(0, value, "Hello, world!");
}
1 Like