arduino_foer_ungdomar

Capacitieve sensoren

Als je wilt dat je Arduino reageert op aanraking, kun je een drukknop gebruiken. Maar misschien zoek je wel iets (nog) simpelers. Dan maak je een capacitieve sensor, met twee weerstandjes.

\pagebreak

Bibliotheek geinstalleerd?

In de Arduino IDE, ga naar Examples. Zie je CapacitiveSensor ertussen staan? Dan is deze bibliotheek al geinstalleerd!

Als CapacitiveSensor ertussen staat, is deze bibliotheek al geinstalleerd

\pagebreak

Bibliotheek installeren

Is CapacitiveSensor niet geinstalleerd, doe dan:

Add Library

Add Library folder

Het is gelukt

\pagebreak

Opdracht

Sluit een capacitive sensor aan:

Stroomschema

De weerstand met zwarte strepen is de knop. De knop hoeft geen weerstand met zwarte strepen te zijn. De knop mag alles zijn waar electriciteit doorheen kan: een draadje, een metalen sleutel, aluminiumfolie.

Als de bibliotheek is geinstalleerd, kunnen we een capacitieve sensor uitlezen:

#include <CapacitiveSensor.h>

const int pin_sensor = 2;
const int pin_hulp = 4;
CapacitiveSensor cap_sensor = CapacitiveSensor(pin_hulp, pin_sensor);        

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

void loop()                    
{
  const int aantal_metingen = 30;
  const int waarde = cap_sensor.capacitiveSensor(aantal_metingen);
  Serial.println(waarde);
  delay(100);
}

\pagebreak

Opdracht 1

Sluit de capacitieve sensor aan en upload de code. Bekijk de Seriele Monitor.

\pagebreak

Oplossing 1

Sunglasses | De knop kan ook op afstand meten! :————-:|:—————————————-:

Sunglasses | Hoe groter de knop (aluminiumfolie!), hoe verder deze kan meten :————-:|:—————————————-:

\pagebreak

Opdracht 2

Laat de capacitieve sensor een LEDje aansturen. Het LEDje moet aan gaan als je op de knop drukt

\pagebreak

Oplossing 2

Oplossing 2

#include <CapacitiveSensor.h>

const int pin_sensor = 2;
const int pin_hulp = 4;
const int pin_led = 13;
CapacitiveSensor cap_sensor = CapacitiveSensor(pin_hulp, pin_sensor);        

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

void loop()                    
{
  const int aantal_metingen = 30;
  const int waarde = cap_sensor.capacitiveSensor(aantal_metingen);
  if (waarde > 10)
  {
    digitalWrite(pin_led, HIGH);
  }
  else
  {
    digitalWrite(pin_led, LOW);
  }
  delay(10);
}

\pagebreak

Eindopdracht