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
- Fäst skölden på Arduinons ovansida.
- Koppla en 1M ohm resistor mellan digital pin 3 och 2 via ett separat kopplingsdäck.
- 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.
- Koppla den lösa labbkabeln till digitala pin 3 genom kopplingsdäcket.
- Koppla Arduinon till datorn och ladda upp exemplet ’CapacitiveSwitchTest’
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.
- (
- Parametrar
-
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 änminValue
kommer returnera 0. Standardvärdet är 0.
- (
- Retur
- (
long
) - Avläsningen av sensorn.
- (
- Parametrar
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.
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
- (
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.
- (
- Parametrar
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örsttest()
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.
-
- Parametrar
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å.
-
- Parametrar
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.
-
- Parametrar
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)
är2
sändarpinen och3
mottagarpinen. Det betyder att den lösa änden ska kopplas till pin 3.