Ten poradnik jest częścią: Sterowanie przekaźnikiem za pomocą Arduino
To są filmy grupowe związane ze sztafetą. Linki do innych filmów znajdują się poniżej tego artykułu.
Użycie modułu dotykowego TTP223B i przekaźnika do sterowania obciążeniami AC/DC za pomocą Arduino
W tym samouczku dowiemy się, jak używać pojemnościowego modułu dotykowego TTP223B wraz z przekaźnikiem do sterowania obciążeniami AC lub DC za pomocą Arduino. Ta konfiguracja umożliwia wygodne włączanie urządzeń, takich jak żarówki lub inne elementy elektryczne, za pomocą dotyku. Nauczysz się, jak podłączyć komponenty, napisać kod Arduino oraz dostosować czas, przez jaki obciążenie pozostaje aktywne po dotknięciu. To świetny projekt zarówno dla początkujących, jak i doświadczonych użytkowników chcących poszerzyć swoje umiejętności.




W trakcie tego przewodnika przeprowadzimy Cię przez niezbędne komponenty, instrukcje podłączenia oraz programowanie wymagane do uruchomienia tego projektu. Dowiesz się również, jak zmodyfikować czas aktywacji obciążenia zgodnie z własnymi preferencjami (na filmie w 10:15). Koniecznie obejrzyj towarzyszące wideo, aby zobaczyć wizualną demonstrację procesu.
Wyjaśnienie sprzętu
Kluczowymi komponentami tego projektu są moduł dotykowy TTP223B, przekaźnik oraz Arduino. Moduł TTP223B wykrywa dotyk i wysyła sygnał do Arduino, które następnie może sterować przekaźnikiem. Przekaźnik działa jak przełącznik, umożliwiając bezpieczne sterowanie obciążeniami AC lub DC o wyższym napięciu.
Układ TTP223B jest produkowany przez Taiwan Semiconductor (TONTEK), a moduł działa przy napięciu zasilania od 2,2 V do 5,5 V i ma trzy piny: VCC (zasilanie), GND (masa) i SIG (sygnał). Gdy pad dotykowy jest aktywowany, pin SIG wysyła wysoki sygnał do Arduino. Pełne szczegóły znajdziesz w karcie katalogowej. Z kolei przekaźnik wymaga sygnału sterującego z Arduino, aby włączyć lub wyłączyć obciążenie. Sterowanie to realizowane jest przez cyfrowy pin wyjściowy podłączony do przekaźnika.
Szczegóły z karty katalogowej
| Producent | Taiwan Semiconductor (TONTEK) |
|---|---|
| Numer części | TTP223B |
| Napięcie logiczne/IO | 2,2 - 5,5 V |
| Napięcie zasilania | 2,2 - 5,5 V |
| Prąd wyjściowy (na kanał) | maks. 20 mA |
| Prąd szczytowy (na kanał) | maks. 50 mA |
| Zalecenia dotyczące częstotliwości PWM | Nie dotyczy |
| Progi logiczne wejścia | 0,3 * VCC (niski), 0,7 * VCC (wysoki) |
| Spadek napięcia / RDS(on) / nasycenie | Nie dotyczy |
| Limity termiczne | Nie dotyczy |
| Obudowa | TO-220 |
| Uwagi / warianty | Znany również jako BA6 |
- Zapewnij prawidłowe uziemienie, aby uniknąć fałszywych wyzwalaczy.
- Użyj kondensatora, aby odfiltrować szumy na linii sygnału dotykowego.
- Sprawdź specyfikację przekaźnika, aby dopasować go do wymagań obciążenia.
- Zachowaj ostrożność przy połączeniach AC — zapewnij odpowiednią izolację i środki bezpieczeństwa.
- Dostosuj czas w kodzie do pożądanego czasu aktywacji obciążenia.
Instrukcje podłączenia
Aby podłączyć moduł dotykowy TTP223B i przekaźnik do Arduino, wykonaj następujące kroki:
Najpierw podłącz pin VCC modułu TTP223B do źródła zasilania 5 V, zarówno z Arduino, jak i z zewnętrznego zasilacza. Następnie podłącz pin GND modułu TTP223B do masy. Pin SIG należy podłączyć do pinu 2 na Arduino, który będzie odczytywał sygnał dotykowy.
W przypadku przekaźnika podłącz jego pin VCC do tego samego źródła zasilania 5 V, a pin GND do masy. Pin sygnału sterującego przekaźnika należy podłączyć do pinu 10 na Arduino. Upewnij się, że przekaźnik jest prawidłowo podłączony do obciążenia, które chcesz sterować — jeden przewód do pinu wspólnego (COM), a drugi do pinu normalnie otwartego (NO). Taka konfiguracja umożliwia przekaźnikowi włączanie i wyłączanie obciążenia na podstawie sygnału sterującego z Arduino.
Przykłady kodu i omówienie
Poniższy fragment kodu inicjalizuje konfigurację modułu dotykowego TTP223B i przekaźnika. Ustawia tryby pinów dla wejścia i wyjścia, umożliwiając Arduino odczytywanie sygnałów dotykowych i sterowanie przekaźnikiem.
void setup() {
Serial.begin(9600);
pinMode(10, OUTPUT); // Pin sterujący przekaźnikiem
pinMode(2, INPUT); // Pin wejściowy dotyku
Serial.println("Robojax Test: TTP223B touch");
}
W funkcji setup definiujemy pin 10 jako wyjście do sterowania przekaźnikiem oraz pin 2 jako wejście do odczytu sygnału dotykowego. Monitor szeregowy jest inicjalizowany do celów debugowania.
Główna pętla programu sprawdza, czy przycisk dotykowy został naciśnięty. Jeśli tak, przekaźnik jest aktywowany, włączając podłączone obciążenie.
void loop() {
if(digitalRead(2)) {
Serial.println("Button Touched");
digitalWrite(10, LOW); // Włącz przekaźnik
delay(LD);
} else {
digitalWrite(10, HIGH); // Wyłącz przekaźnik
}
}
Ten kod w sposób ciągły odczytuje stan pinu 2. Jeśli czujnik dotykowy jest aktywowany, włącza przekaźnik na określony czas zdefiniowany przez zmienną LD. Jeśli czujnik nie jest dotknięty, przekaźnik jest wyłączany.
Demonstracja / Czego się spodziewać
Po zakończeniu podłączania i wgraniu kodu powinieneś zobaczyć, że podłączone obciążenie (np. żarówka) włącza się po dotknięciu modułu TTP223B. Czas, przez który obciążenie pozostaje włączone, jest kontrolowany przez zmienną LD w kodzie. Jeśli chcesz, aby obciążenie było włączone dłużej, po prostu zwiększ wartość LD do pożądanego czasu w milisekundach.
Typowe problemy obejmują nieprawidłowe podłączenie, które może prowadzić do braku aktywacji przekaźnika lub braku reakcji czujnika dotykowego. Upewnij się, że wszystkie połączenia są pewne i że używasz właściwych pinów zdefiniowanych w kodzie. Ponadto zachowaj ostrożność podczas pracy z obciążeniami AC, aby uniknąć porażenia prądem lub uszkodzeń.
Znaczniki czasu wideo
- 00:00 - Wprowadzenie do projektu
- 02:30 - Przegląd okablowania
- 05:15 - Wyjaśnienie kodu
- 10:15 - Demonstracja konfiguracji
Ten poradnik jest częścią: Sterowanie przekaźnikiem za pomocą Arduino
- Kod Arduino i wideo dla dwukanałowego przekaźnika 5V
- Sterowanie przekaźnikiem 5V za pomocą Arduino do sterowania obciążeniem AC lub DC, takim jak żarówka lub silnik
- TTP224 4-kanałowy czujnik dotykowy do włączania obciążeń AC/DC za pomocą przekaźnika
- Używanie modułu przekaźnika 5V (niskiego wyzwolenia) z Arduino
- Użycie termopary typu K MAX6675 z przekaźnikiem i wyświetlaczem
- Użycie kontaktronu do sterowania przekaźnikiem oraz obciążeniami AC/DC z Arduino
- Użycie przycisku Arduino do przełączania przekaźnika i żarówki AC
/*
* This is the Arduino code for TTP223B capacitive touch switch with relay
* The output pin 10 is connected to the relay
* By touching the touch pad TTP223B or TTP223N-BA6, the relay will be turned ON
*
* Written by Ahmad Nejrabi for Roboja Video
* Date: December 4, 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 LD = 200; // Loop Delay. Controls how long after release the bulb is ON
void setup() {
Serial.begin(9600);
// output pins
pinMode(10, OUTPUT);// LED for button 1
// input pins
pinMode(2, INPUT);// Button 1 input pin 2
Serial.println("Robojax Test: TTP223B touch");
}
void loop() {
// button 1 action
if(digitalRead(2)){
Serial.println("Button Touched");
digitalWrite(10, LOW); // Turn the LED ON
delay(LD);
}else{
digitalWrite(10, HIGH);// Turn OFF the LED
}
}// loop
/*
* This is the Arduino code for TTP223 Capacitive Touch switch with relay to turn AC or DC load
// December 13, 2017
// Written for Robojax.com video
// Using TTP223 Touch module to turn AC (or DC) load ON or OFF.
// When the touch pad is touched the light on the relay will turn on and the COM and NO pin will be connected
* watch video for details https://youtu.be/YSI1PdSLbt0
*
*
* Written by Ahmad Nejrabi for RoboJax Video
* Date: December 4, 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.
*
*/
// December 12, 2017
// Written for Robojax.com video
// Using TTP223 Touch module to turn AC (or DC) load ON or OFF.
// When the touch pad is touched the light on the relay will turn on and the COM and NO pin will be connected
int touchPin = 2;// connect output from TTP223 to this
int val = 0;
int relayPin = 10;// 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 TTP223 Capacitive Touch switch with relay to turn AC or DC load with delay
// December 13, 2017
// Written for Robojax.com video
// Using TTP223 Touch module to turn an AC (or DC) load ON and waits for 5 seconds before it goes OFF
// When the touch pad is touched the light on the relay will turn on and the COM and NO pins will be connected
* Watch the video for details: https://youtu.be/YSI1PdSLbt0
*
*
* Written by Ahmad Nejrabi for RoboJax Video
* Date: December 4, 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.
*
*/
// December 12, 2017
// Written for Robojax.com video
// Using TTP223 Touch module to turn an AC (or DC) load ON or OFF.
// When the touch pad is touched the light on the relay will turn on and the COM and NO pins will be connected
int touchPin = 2;// connect output from TTP223 to this
int val = 0;
int relayPin = 10;// Connected to relay
int wait = 5;// wait for 5 seconds
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(wait*1000);
}
delay(100);
Serial.println();
}
Zasoby i odniesienia
Brak zasobów.
Pliki📁
Karta katalogowa (pdf)
-
TTP223 datasheet by Taiwan Semiconductor (TONTEK)
TTP223_datasheet.pdf0.27 MB
Inne pliki
-
Podręcznik użytkownika TTP223B
robojax-TTP223B_manual.pdf0.15 MB