Raspberry Pi - Touch Sensor

Deze tutorial legt uit hoe u de capacitive touch sensor gebruikt met de Raspberry Pi. We behandelen in detail:

Hardware Required

1×Raspberry Pi 5
1×Aanraaksensor
1×Jumper Draden
1×(Aanbevolen) Schroefklem Block Shield voor Raspberry Pi
1×(Aanbevolen) Raspberry Pi Prototyping Basisplaat & Breadboard Kit
1×(Aanbevolen) HDMI-Touchscreen-Monitor voor Raspberry Pi

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

Een capacitive touch sensor, ook wel touch knop of touch schakelaar genoemd, wordt vaak gebruikt om apparaten te bedienen (bijvoorbeeld een touch-schakelbare lamp). Het heeft dezelfde functie als een knop. Veel moderne apparaten zijn hiermee uitgerust in plaats van een fysieke knop, wat het product een strakkere en modernere uitstraling geeft.

De Pinout van de Touch Sensor

De touch sensor heeft drie pinnen:

  • GND pin: moet verbonden worden met de aarde (0V).
  • VCC pin: moet verbonden worden met de voedingsspanning (5V of 3,3V).
  • SIGNAL pin: dit is een uitgangspin. Deze is LOW wanneer niet aangeraakt en HIGH wanneer aangeraakt. Deze pin moet worden aangesloten op een input pin van de Raspberry Pi.
Touch Sensor pinout

Hoe Het Werkt

  • Wanneer de sensor niet wordt aangeraakt, staat de SIGNAL pin op een LOW niveau.
  • Wanneer de sensor wordt aangeraakt, staat de SIGNAL pin op een HIGH niveau.

Raspberry Pi - Touch Sensor

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

Door de status van deze Raspberry Pi pin (ingesteld als input) te lezen, kunnen we detecteren of de touch sensor geactiveerd is.

Bedradingsschema

Raspberry Pi Touch Sensor bedrading schema

This image is created using Fritzing. Click to enlarge image

Hoe Programmeert U Voor De Touch Sensor

  • Stel de Raspberry Pi pin in als digitale input met de GPIO.setup() functie.
GPIO.setup(TOUCH_PIN, GPIO.IN)
  • Gebruik de GPIO.input() functie om de status van de Raspberry Pi pin uit te lezen.
touch_state = GPIO.input(TOUCH_PIN)

Er zijn twee veelvoorkomende gebruikstoepassingen voor de touch sensor:

  • De eerste: Als de input status HIGH is, voer dan een actie uit. Is de input status LOW, voer dan de tegenovergestelde actie uit.
  • De tweede: Wanneer de input status verandert van LOW naar HIGH (of van HIGH naar LOW), voer dan een actie uit.

Afhankelijk van de toepassing kiest u de juiste variant. Bijvoorbeeld om een LED te bedienen met een touch sensor:

  • Wilt u dat de LED AAN gaat zolang de sensor wordt aangeraakt en UIT staat wanneer niet, dan gebruikt u de eerste methode.
  • Wilt u dat de LED elke keer afwisselt tussen AAN en UIT bij aanraken, dan gebruikt u de tweede methode.

Raspberry Pi Code Voor Touch Sensor

We bekijken twee voorbeeldcodes:

  • Raspberry Pi leest de waarde van de touch sensor en toont deze in de Terminal.
  • Raspberry Pi controleert of de sensor is aangeraakt of losgelaten.

Raspberry Pi leest de waarde van de touch sensor en toont deze in de Terminal

Snelle Stappen

  • Zorg dat u Raspbian of een ander Raspberry Pi-compatibel besturingssysteem op uw Pi heeft geïnstalleerd.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw PC.
  • Zorg dat uw Raspberry Pi verbinding heeft met internet als u libraries moet installeren.
  • Als dit de eerste keer is dat u een Raspberry Pi gebruikt, bekijk dan onze gids Hoe stelt u de Raspberry Pi in
  • Verbind uw PC via SSH met de Raspberry Pi met de ingebouwde SSH-client op Linux en macOS, of PuTTY op Windows. Zie Hoe verbindt u uw PC via SSH met Raspberry Pi.
  • Controleer of de RPi.GPIO library is geïnstalleerd. Zo niet, installeer deze dan met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Maak een Python scriptbestand aan met de naam touch_sensor.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-touch-sensor import RPi.GPIO as GPIO # Set the GPIO mode to BCM (Broadcom SOC channel numbering) GPIO.setmode(GPIO.BCM) # Set the pin number connected to the touch sensor TOUCH_PIN = 12 # Set the GPIO pin as an input GPIO.setup(TOUCH_PIN, GPIO.IN) try: while True: # Read the state from the touch sensor touch_state = GPIO.input(TOUCH_PIN) # The touch sensor outputs LOW (0) when not touched, and HIGH (1) when touched if touch_state == GPIO.LOW: print("Touch sensor is not touched.") else: print("Touch sensor is touched!") except KeyboardInterrupt: # Clean up the GPIO settings on program exit GPIO.cleanup()
  • Sla het bestand op en voer het Python script uit door het volgende commando in de terminal te typen:
python3 touch_sensor.py
  • Leg uw vinger op de sensor en haal deze er weer af.
  • Controleer de uitvoer in de Terminal.
PuTTY - Raspberry Pi
Touch sensor is not touched. Touch sensor is not touched. Touch sensor is not touched. Touch sensor is touched! Touch sensor is touched! Touch sensor is touched! Touch sensor is touched! Touch sensor is touched! Touch sensor is touched! Touch sensor is not touched. Touch sensor is not touched.

Het script draait in een oneindige lus totdat u Ctrl + C indrukt in de terminal.

Raspberry Pi detecteert aanraken of loslaten van de sensor

Snelle Stappen

  • Maak een Python scriptbestand aan met de naam TO_BE_UPDATED.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-touch-sensor import RPi.GPIO as GPIO import time # Set the GPIO mode to BCM (Broadcom SOC channel numbering) GPIO.setmode(GPIO.BCM) # Set the pin number connected to the touch sensor TOUCH_PIN = 12 # Set the GPIO pin as an input GPIO.setup(TOUCH_PIN, GPIO.IN) # Variable to track the touch sensor state prev_touch_state = GPIO.LOW # Assuming the sensor is not touched initially try: while True: touch_state = GPIO.input(TOUCH_PIN) if touch_state != prev_touch_state: if touch_state == GPIO.HIGH: # Sensor touched event print("Touch sensor is touched!") else: # Sensor released event print("Touch sensor is released!") prev_touch_state = touch_state time.sleep(0.1) # A small delay to debounce the input except KeyboardInterrupt: # Clean up the GPIO settings on program exit GPIO.cleanup()
  • Sla het bestand op en voer het Python script uit met het volgende commando in de terminal:
python3 touch_sensor_events.py
  • Raak de sensor aan en houd uw vinger erop.
  • Controleer de uitvoer in de Terminal.
PuTTY - Raspberry Pi
Touch sensor is touched!
  • Haal uw vinger van de sensor af.
  • Controleer de uitvoer in de Terminal.
PuTTY - Raspberry Pi
Touch sensor is touched! Touch sensor is released!

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.

※ 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!