Skip to main content
search

Deze workshop is geschreven in 2020. De software die je gebruikt is inmiddels veranderd. Je komt er vast wel uit.

Deze workshop gebruikt de Arduino IDE als programmeer omgeving. 

 

(een inzending van Ties)

Beste Marco,
Hierbij de uitleg van het “Corona lampje”.

Wat heb je nodig

  • Een LedMatrixbordje MAX7219
  • Een Afstandsmeter HC-SR04 (uitleg)
  • 9 jumpers
  • Usb snoer
  • Arduino nano
  • Breadboard (uitleg)

Arduino instellen

  • In de Arduino IDE, bij hulpmiddelen moet je de poort eerst op de hoogste poort zetten (als je bijvoorbeeld 2 poorten ziet zoals poort 3 en poort 10, klik dan op 10)
  • Soldeer de twee lange headers op de Arduino nano

prik ‘m op het  breadboard.

Libraries toevoegen

Voor dit project zullen we enkele libraries nodig hebben:

  • Installeer de library: ‘HCSR04’ library van ‘Martin Sosic’
  • Installeer de library: ‘LedControl’ library van ‘Eberhard Fahle’

Hoe je deze libraries kunt installeren wordt in het volgende lab uitgelegd: ‘Een Arduino library downloaden’.

De aansluitingen

Van de Afstands sensor:
  • Zet op de GND een jumpertje en verbind die met de GND bij de Arduino.
  • Zet op de VCC een jumpertje en verbind die met de +5V bij de Arduino.
  • Zet op de Echo een jumpertje en verbind die met de D12 bij de Arduino.
  • Zet op de TRIG een jumpertje en verbind die met de D13 bij de Arduino.
Van het Ledmatrix boord:
  • Zet op de GND een jumpertje en verbind die met de GND bij de Arduino.
  • Zet op de VCC een jumpertje en verbind die met de +5V bij de Arduino.
  • Zet op de DIN een jumpertje en verbind die met de D8 bij de Arduino.
  • Zet op de CS een jumpertje en verbind die met de D6 bij de Arduino.
  • Zet op de CLK een jumpertje en verbind die met de D7 bij de Arduino.

De code

#include <HCSR04.h>
#include <LedControl.h>

int triggerPin = 13;
int echoPin = 12;
UltraSonicDistanceSensor distanceSensor(triggerPin, echoPin);
LedControl lc=LedControl(8,7,6,1);

unsigned long delaytime=100;

void setup () {
  Serial.begin(9600);
  lc.shutdown(0,false);
  lc.setIntensity(0,8);
  lc.clearDisplay(0);
}
void loop () {
  double distance = distanceSensor.measureDistanceCm();
  Serial.println(distance);
  delay(500);

  if (distance > 100) {
    lc.setRow(0,0,0b00000000);
    lc.setRow(0,1,0b01100110);
    lc.setRow(0,2,0b01100110);
    lc.setRow(0,3,0b00000000);
    lc.setRow(0,4,0b00000000);
    lc.setRow(0,5,0b11000011);
    lc.setRow(0,6,0b01100110);
    lc.setRow(0,7,0b00111100);
  } else {
    lc.setRow(0,0,0b00000000);
    lc.setRow(0,1,0b01100110);
    lc.setRow(0,2,0b01100110);
    lc.setRow(0,3,0b00000000);
    lc.setRow(0,4,0b00000000);
    lc.setRow(0,5,0b00111100);
    lc.setRow(0,6,0b01100110);
    lc.setRow(0,7,0b11000011);
  }
}
Als het goed is werkt het nu
Met vriendelijke groet,
Stan
Close Menu