Inleiding tot de TTP223 Capacitive Touch Module voor Arduino
In deze tutorial zullen we de TTP223 capacitieve aanraakmodule verkennen en hoe deze kan worden geïntegreerd met een Arduino om een aanraakgevoelige schakelaar te maken. De TTP223 is een eenvoudige en effectieve module waarmee je apparaten zoals relais of lichten met slechts een aanraking kunt in- of uitschakelen. Dit project zal demonstreren hoe je de module aansluit en een basis Arduino-programma schrijft om aanraakinvoer te lezen en een uitvoerapparaat te bedienen.De code en bedrading voor dit project zullen in detail worden uitgelegd, zodat je de opstelling gemakkelijk kunt repliceren. Voor visuele leerlingen raad ik aan de bijbehorende videotutorial te bekijken voor verduidelijking van de opstelling en het coderingsproces (in video om 03:15).
Hardware Uitleg
De TTP223 capacitieve aanraakmodule is een compact en gebruiksvriendelijk apparaat dat aanraakinvoer detecteert via capacitieve sensing. Het heeft een enkele uitgangspen die hoog gaat wanneer de aanraking wordt gedetecteerd, waardoor het ideaal is voor toepassingen waarbij je elektronica met een eenvoudige aanraking wilt bedienen. De module werkt op een voedingsspanning van 2,0 tot 5,5 volt, wat het compatibel maakt met de meeste Arduino-borden. De module heeft doorgaans een paar pennen: VCC voor voeding, GND voor aarde, en de uitgangspen die een signaal verzendt wanneer een aanraking wordt gedetecteerd. Deze uitgangspen kan worden aangesloten op een digitale ingangspen op de Arduino, zodat je de aanraakstatus eenvoudig kunt lezen. De TTP223-module is vooral nuttig in projecten waar een fysieke schakelaar niet wenselijk is.
Datasheet Gegevens
| Fabrikant | Seeed Studio |
|---|---|
| Onderdeelnummer | TTP223 |
| Logica/IO spanning | 2,0 - 5,5 V |
| Voedingsspanning | 2,0 - 5,5 V |
| Uitgangsstroom | 20 mA max |
| Piekstroom | 30 mA |
| Bedrijfstemperatuur | -40 tot 85 °C |
| Pakket | TO-220 |
- Zorg voor een juiste spanningsvoorziening (2,0 - 5,5 V) om schade aan de module te voorkomen.
- De uitgangspen kan worden aangesloten op elke digitale pen op de Arduino.
- Verbind de GND-pin met de Arduino-aarde.
- Houd de module uit de buurt van bronnen van elektrische ruis om valse activering te voorkomen.
- Gebruik indien nodig pull-up weerstanden voor stabiele metingen.
Bedradinginstructies
Om de TTP223 capacitieve aanraakmodule op je Arduino aan te sluiten, begin je met het verbinden van de VCC-pin op de module met de 5V-pin op de Arduino. Verbind vervolgens de GND-pin op de module met een van de GND-pinnen op de Arduino. De uitgangspin van de TTP223, die het aanraaksignaal verzendt, moet worden verbonden met een digitale pin op de Arduino, bijvoorbeeld pin 2. Als je een relais met de aanraakmodule gebruikt, sluit dan de relaisbesturingspin aan op een andere digitale pin, zoals pin 8. Zorg ervoor dat de voedingsbron van het relais correct is aangesloten, volgens de specificaties. Als je meerdere aanraakmodules gebruikt, kun je extra uitgangspinnen aansluiten op andere digitale pinnen op de Arduino en het bedradingproces dienovereenkomstig herhalen.
Codevoorbeelden en Stappenplan
De volgende codefragment initialiseert de pinnen en stelt de seriële communicatie in. De variabeletouchPinis verbonden met de uitgang van de TTP223-module, terwijlrelayPinstuurt het relais aan.
int touchPin = 2; // connect output from TTP223 to this
int relayPin = 8; // Connected to relay
void setup() {
Serial.begin(9600);
pinMode(touchPin, INPUT);
pinMode(relayPin, OUTPUT);
}
Deze code initialiseert de aanraakmodule en de relaispin, en bereidt ze voor op gebruik in de lusfunctie.Serial.begin(9600)de opdracht stelt de baudrate in voor seriële communicatie, zodat je de aanraakstatus via de Seriële Monitor kunt volgen.
In de lus controleert het programma de status van de aanraakinvoer en schakelt de relais dienovereenkomstig. Als de aanraking wordt gedetecteerd, print het "Aangeraakt" naar de Seriële Monitor en schakelt het de relais in.
void loop() {
val = digitalRead(touchPin);
if(val == 1) {
Serial.println("Touched");
digitalWrite(relayPin, LOW); // turn relay ON
}
delay(100);
}
Dit fragment toont aan hoe de aanraakinput wordt gelezen en verwerkt. DedigitalRead(touchPin)functie controleert of de aanraking is gedetecteerd. Als dat het geval is, wordt het relais geactiveerd door het instellen vanrelayPinnaar LAAG.
Demonstratie / Wat te Verwachten
Wanneer je de code uitvoert en het TTP223-module aanraakt, zou je "Raak aangeraakt" in de Seriële Monitor moeten zien, wat aangeeft dat de aanraking is gedetecteerd. Het relais dat is aangesloten oprelayPinzal ook geactiveerd worden, zodat je elk apparaat dat eraan is verbonden kunt bedienen. Wees voorzichtig met het debounce-effect; als je de sensor te snel aanraakt, kan het meerdere aanrakingen registreren.
Voor een complexere opstelling kun je meerdere TTP223-modules toevoegen om verschillende apparaten te bedienen. Elke module kan worden aangesloten op een aparte invoerpin en beheerd worden in dezelfde loopfunctie, wat veelzijdige controle over meerdere uitgangen mogelijk maakt (in video om 10:45).
Videotijdstempels
- 00:00- Inleiding tot de TTP223-module
- 03:15- Bedradinginstructies
- 05:30- Code Doorloop
- 10:45- Demonstratie van de Touch Module
/*
* This is the Arduino code for a TTP223 Touch module switch.
* By touching the module, the pin 8 sends a signal to turn the relay or switch ON.
*
* Written by Ahmad S. for Robojax.com
* Date: April 1, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code, given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
*
*/
int touchPin = 2;// connect output from TTP223 to this
int val = 0;
int relayPin = 8;// Connected to relay
void setup() {
Serial.begin(9600);
pinMode(touchPin, INPUT);
pinMode(relayPin, OUTPUT);
}
void loop() {
digitalWrite(relayPin, HIGH);
val = digitalRead(touchPin);
if(val ==1){
Serial.println("Touched");
digitalWrite(relayPin, LOW);
}
delay(100);
Serial.println();
}
/*
* This is the Arduino code for a TTP223 touch module switch.
* By touching the module, the pin 8 is sending a signal to turn the relay or switch ON.
*
* Written by Ahmad S. for Robojax.com
* Date: April 1, 2017, in Ajax, Ontario, Canada
* Permission granted to share this code, given that this
* note is kept with the code.
* Disclaimer: This code is "AS IS" and for educational purposes only.
*
*/
// 1st channel
int touchPin1 = 2;// connect output from TTP223 to this
int val = 0;
int relayPin = 8;// Connected to relay
// 2nd channel
int touchPin2 = 3;// connect output from TTP223 to this
int val2 = 0;
int relayPin2 = 9;// Connected to relay
void setup() {
Serial.begin(9600);
pinMode(touchPin, INPUT); // input from touch
pinMode(relayPin, OUTPUT);// output to relay
pinMode(touchPin2, INPUT); // input from touch (2)
pinMode(relayPin2, OUTPUT);// output to relay (2)
}
void loop() {
// start of channel 1 code
digitalWrite(relayPin, HIGH);// set the relay to HIGH (if your relay is low-trigger. If not, remove this line)
val = digitalRead(touchPin); // read channel 1 touch module value
if(val ==1){
Serial.println("Channel 1 Touched");
digitalWrite(relayPin, LOW);// turn relay (of switch) 1 ON
}
delay(100);
Serial.println();
// end of channel 1 code
// start of channel 2 code
digitalWrite(relayPin2, HIGH);// set the relay to HIGH (if your relay is low-trigger. If not, remove this line)
val2 = digitalRead(touchPin2); // read channel 2 touch module value
if(val2 ==1){
Serial.println("Channel 2 Touched");
digitalWrite(relayPin2, LOW);// turn relay (of switch) 2 ON
}
delay(100);
Serial.println();
// end of channel 2 code
}
Hulpmiddelen en referenties
Nog geen middelen.
Bestanden📁
Andere bestanden
-
TP223 Datasheet
robojax-0492_TTP223_Datasheet.pdf0.24 MB