Arduino - Touch Sensor

Touch sensor (ook wel touch knop of touch switch genoemd) wordt veel gebruikt om apparaten te bedienen (bijv. een aanraakbare lamp). Het heeft dezelfde functionaliteit als een knop (button). Het wordt op veel nieuwe apparaten gebruikt in plaats van een fysieke knop omdat het product er netter uitziet.

In deze handleiding leren we hoe u een touch sensor gebruikt met Arduino.

Hardware Benodigd

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×Aanraaksensor
1×Jumper Draden
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over de Touch Sensor

Pinout

De touch sensor heeft 3 pinnen:

  • GND pin: moet verbonden zijn met GND (0V)
  • VCC pin: moet verbonden zijn met VCC (5V of 3.3V)
  • SIGNAL pin: is een uitgangspin: LOW wanneer niet aangeraakt, HIGH wanneer aangeraakt. Deze pin moet verbonden worden met een Arduino input pin.
Touch Sensor Pinout

Hoe het Werkt

  • Wanneer de sensor NIET wordt aangeraakt, is de SIGNAL pin van de sensor LOW
  • Wanneer de sensor wordt aangeraakt, is de SIGNAL pin van de sensor HIGH

Arduino - Touch Sensor

De SIGNAL pin van de touch sensor wordt aangesloten op een input pin van de Arduino.

Door de status van die Arduino pin (ingesteld als input) te lezen, kunnen we detecteren of de touch sensor is aangeraakt of niet.

Bedradingsschema

Arduino Touch Sensor Wiring Diagram

This image is created using Fritzing. Click to enlarge image

Hoe te Programmeren voor Touch Sensor

  • Initialiseert de Arduino pin in digitale inputmodus met de pinMode() functie. Bijvoorbeeld pin 7
pinMode(7, INPUT_PULLUP);
  • Leest de status van de Arduino pin met de functie digitalRead().
int inputState = digitalRead(7);

※ Notiz:

Er zijn twee veelgebruikte gevallen:

  • De eerste: als de input status HIGH is, voer iets uit. Als de input status LOW is, doe dan het tegenovergestelde.
  • De tweede: als de input status verandert van LOW naar HIGH (of andersom), voer iets uit.

Afhankelijk van de toepassing kiest u één van beide. Bijvoorbeeld bij het gebruik van een touch sensor om een LED te besturen:

  • Wilt u dat de LED AAN gaat wanneer de sensor wordt aangeraakt en UIT als deze niet wordt aangeraakt, dan gebruikt u het eerste geval.
  • Wilt u dat de LED telkens wisselt tussen AAN en UIT wanneer u de sensor aanraakt, dan kiest u het tweede geval.
  • Hoe detecteer je een statusverandering van LOW naar HIGH:
// constants won't change. They're used here to set pin numbers: const int SENSOR_PIN = 7; // de Arduino input pin die verbonden is met de SIGNAL pin van de sensor // Variabelen die veranderen: int lastState = LOW; // de vorige staat van de input pin int currentState; // de huidige gelezen staat van de input pin void setup() { // initialiseer seriële communicatie op 9600 bits per seconde: Serial.begin(9600); // initialiseert de Arduino pin als input pinMode(SENSOR_PIN, INPUT); } void loop() { // lees de status van de input pin: currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH) Serial.println("The sensor is touched"); // sla de vorige status op lastState = currentState; }

Touch Sensor - Arduino Code

We zullen vier voorbeeldcodes draaien:

  • Leest de waarde van de touch sensor en print naar de Serial Monitor.
  • Stuurt een LED aan op basis van de status van de sensor.
  • Detecteert wanneer de sensor wordt aangeraakt of losgelaten.
  • Zet de LED aan/uit (toggle) wanneer de sensor wordt aangeraakt (dit is het meest gebruikte).

Leest de waarde van de touch sensor en print deze naar de Serial Monitor

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-touch-sensor */ // constants won't change. They're used here to set pin numbers: const int SENSOR_PIN = 7; // de Arduino input pin verbonden met de SIGNAL pin van de sensor void setup() { // initialiseer seriële communicatie op 9600 bits per seconde: Serial.begin(9600); // initialiseer de Arduino pin als input pinMode(SENSOR_PIN, INPUT); } void loop() { // lees de status van de input pin: int state = digitalRead(SENSOR_PIN); // print status naar Serial Monitor Serial.println(state); }

Snelle Stappen

  • Kopieer bovenstaande code en open in de Arduino IDE
  • Klik op de Upload knop in Arduino IDE om de code naar de Arduino te sturen
  • Raak met uw vinger de sensor aan en laat los.
  • Bekijk het resultaat in de Serial Monitor.
COM6
Send
0 0 0 1 1 1 1 1 1 0 0
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Stuurt LED aan op basis van de status van de sensor

Als de sensor wordt aangeraakt, gaat de LED aan. Als de sensor niet wordt aangeraakt, gaat de LED uit.

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-touch-sensor */ // constants won't change. They're used here to set pin numbers: const int SENSOR_PIN = 7; // de Arduino input pin verbonden met de SIGNAL pin van de sensor void setup() { // initialiseer seriële communicatie op 9600 bits per seconde: Serial.begin(9600); // initialiseert de Arduino pin als input pinMode(SENSOR_PIN, INPUT); // initializeer digitale pin LED_BUILTIN als output. pinMode(LED_BUILTIN, OUTPUT); } void loop() { // lees de status van de input pin: int state = digitalRead(SENSOR_PIN); // bestuur LED op basis van de status van de sensor digitalWrite(LED_BUILTIN, state); }

Snelle Stappen

  • Kopieer bovenstaande code en open in Arduino IDE
  • Klik op de Upload knop om de code naar Arduino te sturen
  • Raak de sensor met uw vinger aan en blijf aanraken.
  • Bekijk de status van de LED ⇒ de LED moet aan zijn.
  • Laat uw vinger los van de sensor.
  • Bekijk de status van de LED ⇒ de LED moet uit zijn.

Detecteert wanneer de sensor wordt aangeraakt of losgelaten

// constants won't change. They're used here to set pin numbers: const int SENSOR_PIN = 7; // Arduino input pin verbonden met SIGNAL pin van sensor // Variabelen die veranderen: int lastState = LOW; // vorige staat van de input pin int currentState; // huidige gelezen status van de input pin void setup() { // initialiseer seriële communicatie op 9600 bits per seconde: Serial.begin(9600); // initialiseer de Arduino pin als input pinMode(SENSOR_PIN, INPUT); } void loop() { // lees de status van de input pin: currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH) Serial.println("The sensor is touched"); else if(lastState == HIGH && currentState == LOW) Serial.println("The sensor is is released"); // sla de vorige status op lastState = currentState; }

Snelle Stappen

  • Kopieer bovenstaande code en open in Arduino IDE
  • Klik op Upload knop om te uploaden naar Arduino
  • Raak de sensor aan en houd vast.
  • Bekijk het resultaat in de Serial Monitor.
COM6
Send
The sensor is touched
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Laat uw vinger los van de sensor.
  • Bekijk het resultaat in Serial Monitor.
COM6
Send
The sensor is touched The sensor is is released
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Zet de LED aan/uit (toggle) wanneer de sensor wordt aangeraakt

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-touch-sensor */ // constants won't change. They're used here to set pin numbers: const int SENSOR_PIN = 7; // Arduino input pin verbonden met SIGNAL pin van sensor // Variabelen die veranderen: int lastState = LOW; // vorige staat van input pin int currentState; // huidige staat van input pin int ledState = LOW; // huidige toestand van LED void setup() { // initialiseer seriële communicatie op 9600 bits per seconde: Serial.begin(9600); // initialiseer Arduino pin als input pinMode(SENSOR_PIN, INPUT); // initializeer digitale pin LED_BUILTIN als output pinMode(LED_BUILTIN, OUTPUT); } void loop() { // lees de status van de input pin: currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH){ // toggle LED status if(ledState == LOW) ledState = HIGH; else if(ledState == HIGH) ledState = LOW; // stuur LED aan/uit digitalWrite(LED_BUILTIN, ledState); } // sla vorige status op lastState = currentState; }

Snelle Stappen

  • Kopieer bovenstaande code en open in Arduino IDE
  • Klik op Upload knop om code te uploaden naar Arduino
  • Raak de sensor aan en laat los.
  • Bekijk de LED status ⇒ LED moet aan zijn.
  • Raak de sensor opnieuw aan en laat los.
  • Bekijk de LED status ⇒ LED moet uit zijn.
  • Raak de sensor nogmaals aan en laat los.
  • Bekijk de LED status ⇒ LED moet aan zijn.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze videotutorial voor een visuele begeleiding bij dit project! De video biedt extra inzicht en helpt u snel aan de slag te gaan.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!