Kapacitiv Sensor

En kapacitiv sensor utgörs av en resistor med högt motstånd (1M ohm i det här exemplet) och ett stycke ledande material (aluminiumfolie i det här exemplet). Den kan användas som en touch-sensor. Du kan antingen använda den liknande en analog sensor och läsa en serie olika värden från den, eller som en switch, alltså som en digital sensor. Sensorn måste kopplas genom ett separat kopplingsdäck, annars kan de elektroniska komponenterna på skölden påverka avläsningarna.

För att skapa ett projekt med en kapacitiv sensor behöver du använda CapacitiveSensor-biblioteket.

Material

  • 1 Arduino Uno
  • 1 Education-sköld
  • 1 kopplingsdäck
  • 1 1M ohm resistor
  • 3 labbkablar
  • Aluminiumfolie

Instruktioner

  1. Fäst skölden på Arduinons ovansida.
  2. Koppla en 1M ohm resistor mellan digital pin 3 och 2 via ett separat kopplingsdäck.
  3. Gör en kapacitiv sensor genom att skära ut en 5 x 5 cm stor fyrkant av aluminiumfolie. Vira ett hörn kring en ände på en labbkabel. Se till att kabelns metalldel har kontakt med folien.
  4. Koppla den lösa labbkabeln till digitala pin 3 genom kopplingsdäcket.
  5. Koppla Arduinon till datorn och ladda upp exemplet ’CapacitiveSwitchTest’
Obervera: Du kan använda flera kapicativa sensorer på en Arduino. Sändarpinen (digitala pin 2 i det här fallet) kan då vara gemensam för alla sensorer.

Läs värden

Kod

Hitta koden i Exempel>EducationShield>Help>CapacitiveSwitchTest

Du bör nu öppna seriemonitorn. De utskrivna värdena bör vara nära 0 när du inte rör vid sensorn, och de bör bli  mycket högre när du rör vid den.

Kommandon

  • #include <CapacitiveSensor.h> - inkluderar CapacitiveSensor-sensorn.

  • CapacitiveSwitch( senderPin, receiverPin ) - Skapar ett CapacitiveSwitch-objekt.
    • Parametrar
      • (int) senderPin - Den digitala pin som fungerar som sändarpin. När flera kapacitiva sensorer används kan samma sändarpin användas för alla.
      • (int) receiverPin - Den digitala pin som fungerar som mottagarpin. När flera kapacitiva sensorer används måste varje sensor kopplas till en enskild mottagarpin.

  • test() - Skriver ut sensorns avläsningar till seriemonitorn.

  • getValue(int minValue) - returnerar det avlästa sensorvärdet.
    • Parametrar
      • (int) minValue - Minimumvärdet som du vill ska returneras. Alla värden lägre än minValue kommer returnera 0. Standardvärdet är 0.
    • Retur
      • (long) - Avläsningen av sensorn.

Problemlösning

  • Dubbelkolla dina kopplingar om värdena från sensorn inte verkar vara normala. Var extra noga med kopplingen mellan aluminiumfoliet och labbkabeln, de tappar lätt kontakt.
  • Var noga med att ha kopplat sensorn till samma digitala pin som koden anger. I CapicativeSwitch (2, 3) är 2 sändarpinen och 3 mottagarpinen. Det betyder att den lösa änden ska kopplas till pin 3.
Observera: Var noga med att de två digitala pinsen som du använder är mellan 2 och 8. På Education-skölden är inte digitala pins 9, 10, 11, 12 och 13 användbara för kapacitiva sensorer.

Switch

Om du vill använda den kapacitiva sensorn som en switch behövs ett tröskelvärde. Skriv ner värdet du får när ingenting rör vid sensorn, och värdet du får när du rör vid den.

Kod

Hitta koden i Example>EducationShield>Help>CapacitiveSwitch


Du bör nu öppna seriemonitorn och följa de utskrivna instruktionerna genom att röra vid den kapacitiva sensoren. Varje gång en instruktion utförs bör seriemonitorn skriva ut ’1’.

Kommandon

  • #include <CapacitiveSensor.h> - inkluderar CapacitiveSensor-sensorn.

  • CapacitiveSwitch( senderPin, receiverPin ) - Skapar ett CapacitiveSwitch-objekt.
    • Parametrar
      • (intsenderPin - Den digitala pin som fungerar som sändarpin. När flera kapacitiva sensorer används kan samma sändarpin användas för alla.
      • (intreceiverPin - Den digitala pin som fungerar som mottagarpin. När flera kapacitiva sensorer används måste varje sensor kopplas till en enskild mottagarpin.

  • config( threshold ) - Om den kapacitiva sensorn ska användas som en switch  behöver du använda den här funktionen för att konfigurera tröskelvärdet. Använd först test() för att kolla sensorns värden. Bestäm sedan vilket tröskelvärde du ska använda.
    • Parametrar
      • (int) threshold - Tröskelvärdet vid vilket den kapacitiva switchenska registrera en tryckning.

  • pressed( timeout ) –  kontrollerar om sensorn tryckts på.
    • Parametrar
      • (int) timeout - millisekunder inom vilka sensorn måste tryckas på. Standardvärdet är 0.
    • Retur
      • (boolean) - returnerar 1 om sensorn tryckts på i tid, annars 0. Om timeout inte används pausar programmet här, tills sensorn har tryckts på.

  • released( timeout ) - kontrollerar om sensorn släppts.
    • Parametrar
      • (int) timeout: millisekunder inom vilka sensorn behöver släppas. Standardvärdet är 0.
    • Retur
      • (boolean) - returnerar 1 om sensorn släppts  i tid, annars 0. Om timeout inte används pausar programmet här, tills sensorn har släppts.

Problemlösning

  • Dubbelkolla dina kopplingar om värdena från sensorn inte verkar vara normala. Var extra noga med kopplingen mellan aluminiumfoliet och labbkabeln, de tappar lätt kontakt.
  • Var noga med att ha kopplat sensorn till samma digitala pin som koden anger. I CapicativeSwitch(2, 3) är 2 sändarpinen och 3 mottagarpinen. Det betyder att den lösa änden ska kopplas till pin 3.
Observera: Var noga med att de två digitala pinsen som du använder är mellan 2 och 8. På Education-skölden är inte digitala pins 9, 10, 11, 12 och 13 användbara för kapacitiva sensorer.