- Co to jest pojemnościowy czujnik dotyku i jak działa?
- Budowa czterokierunkowego pojemnościowego czujnika dotyku
- Materiały wymagane do obwodu sterowanego dotykowo ESP32
- Obwód sterujący dla naszego pojemnościowego czujnika dotyku
- Projekt PCB dla obwodu pojemnościowego czujnika dotykowego
- Kod Arduino dla pojemnościowego czujnika dotykowego opartego na ESP32
- Testowanie obwodu czujnika dotyku opartego na ESP32
- Dalsze ulepszenia
W wielu przypadkach zamiast przycisków stosowane są czujniki dotykowe. Zaletą jest to, że nie musimy używać siły do naciśnięcia przycisku, a klawiszem możemy aktywować bez dotykania go za pomocą czujników dotykowych. Technologia wykrywania dotyku staje się popularna z dnia na dzień. W ciągu ostatniej dekady trudno było wyobrazić sobie świat bez czułej na dotyk elektroniki. Do opracowania czujnika dotyku można zastosować zarówno rezystancyjne, jak i pojemnościowe metody dotykowe, aw tym artykule omówimy prymitywny sposób wykonania pojemnościowego czujnika dotykowego z ESP32, wcześniej zbudowaliśmy również pojemnościowy przycisk dotykowy z Raspberry pi.
Chociaż czujniki dotykowe specyficzne dla aplikacji mogą być nieco skomplikowane, podstawowa zasada leżąca u podstaw tej technologii pozostaje taka sama, dlatego w tym artykule skupimy się na opracowaniu naszego pojemnościowego czujnika dotykowego za pomocą naszego ulubionego ESP32 i kawałka miedzi platerowana płyta.
W poprzednim samouczku wykonaliśmy sterowanie oświetleniem domowym za pomocą dotyku za pomocą czujnika dotykowego TTP223 i Arduino UNO, teraz w tym projekcie budujemy czujnik dotykowy dla ESP32, ale ten sam może być również użyty dla Arduino. Wcześniej używaliśmy również dotykowych metod wprowadzania danych, wykorzystujących pojemnościowe panele dotykowe z różnymi mikrokontrolerami, takimi jak interfejs klawiatury dotykowej z mikrokontrolerem ATmega32 i pojemnościowy panel dotykowy z Raspberry Pi, możesz je również sprawdzić, jeśli jesteś zainteresowany.
Co to jest pojemnościowy czujnik dotyku i jak działa?
Kondensatory występują w wielu formach. Najczęściej występuje w postaci pakietu ołowianego lub pakietu do montażu powierzchniowego, ale aby utworzyć pojemność, potrzebujemy przewodników oddzielonych materiałem dielektrycznym. Dlatego łatwo jest go utworzyć. Dobrym przykładem może być ten, który będziemy rozwijać w poniższym przykładzie.
Biorąc pod uwagę wytrawioną płytkę drukowaną jako materiał przewodzący, naklejka działa jak materiał dielektryczny, więc teraz pozostaje pytanie, w jaki sposób dotknięcie podkładki miedzianej powoduje zmianę pojemności w taki sposób, że kontroler czujnika dotykowego jest w stanie wykryć? Oczywiście ludzki palec.
Cóż, są głównie dwa powody: po pierwsze, jeden obejmuje właściwości dielektryczne naszego palca, a drugi to przewodzące właściwości naszego palca. Będziemy używać dotyku opartego na pojemności. Skoncentrujemy się więc na pojemnościowym czujniku dotykowym. Ale zanim to wszystko omówimy, ważne jest, aby zauważyć, że nie ma żadnego przewodzenia, a palec jest izolowany ze względu na papier użyty w naklejce. Tak więc palec nie jest w stanie rozładować kondensatora.
Palec działający jako dielektryk:
Powszechnie wiadomo, że kondensator ma stałą wartość, która może być zrealizowana przez pole powierzchni dwóch przewodzących płytek, odległość między nimi i jego stałą dielektryczną. Nie możemy zmienić powierzchni kondensatora po prostu dotykając go, ale możemy z pewnością zmienić stałą dielektryczną kondensatora, ponieważ ludzki palec ma inną stałą dielektryczną niż materiał, który go wyświetla. W naszym przypadku jest to powietrze, wypieramy je palcami. Jeśli pytasz jak? Dzieje się tak dlatego, że stała dielektryczna powietrza 1006 w temperaturze pokojowej na poziomie morza i stała dielektryczna palca jest znacznie wyższa około 80, ponieważ palec ludzki składa się głównie z wody. Tak więc interakcja palca z polem elektrycznym kondensatora powoduje wzrost stałej dielektrycznej, a tym samym zwiększa się pojemność.
Teraz, gdy zrozumieliśmy zasadę, przejdźmy do tworzenia rzeczywistych PCB.
Budowa czterokierunkowego pojemnościowego czujnika dotyku
Zastosowany w tym projekcie pojemnościowy czujnik dotyku ma cztery kanały i jest łatwy do wykonania. Poniżej wspomnieliśmy o szczegółowym procesie tworzenia.
Najpierw wykonaliśmy płytkę drukowaną czujnika za pomocą narzędzia projektowego Eagle PCB, które wygląda mniej więcej tak, jak na poniższym obrazku.
Z pomocą wymiarów i Photoshopa wykonaliśmy szablon i na końcu naklejkę na sensor, która wygląda mniej więcej tak jak na poniższym obrazku,
Teraz, gdy skończyliśmy z naklejką, przechodzimy do tworzenia rzeczywistego szablonu platerowanej płytki, którego będziemy używać do tworzenia naszej płytki PCB, który wygląda mniej więcej tak, jak na poniższym obrazku,
Teraz możemy wydrukować ten plik i kontynuować proces tworzenia domowej płytki PCB. Jeśli jesteś nowy, możesz zapoznać się z artykułem o tym, jak zbudować PCB w domu. Możesz również pobrać wymagane pliki PDF i Gerber z poniższego łącza
- Plik GERBER dla czterokanałowego pojemnościowego czujnika dotyku
Po zakończeniu rzeczywista wytrawiona płytka drukowana wygląda jak na poniższym obrazku.
Teraz pora wywiercić otwory i połączyć przewody z płytką. Abyśmy mogli połączyć go z płytką ESP32. Po zakończeniu wygląda jak na poniższym obrazku.
Ponieważ nie umieściliśmy przelotek na PCB, lutowie rozleciały się po całym miejscu podczas lutowania, naprawiliśmy nasz błąd, wykonując otwór na PCB, który można znaleźć w powyższej sekcji pobierania. Wreszcie nadszedł czas, aby przykleić naklejkę i nadać jej ostateczną formę. Wygląda jak obrazek poniżej.
Skończyliśmy z panelem dotykowym, czas przejść do wykonania obwodu sterującego dla panelu dotykowego.
Materiały wymagane do obwodu sterowanego dotykowo ESP32
Elementy potrzebne do zbudowania sekcji sterownika za pomocą ESP32 są podane poniżej, większość z nich powinieneś znaleźć w lokalnym sklepie hobbystycznym.
W poniższej tabeli wymieniłem również komponenty z wymaganym typem i ilością, ponieważ łączymy czterokanałowy czujnik dotykowy i kontrolujemy cztery obciążenia AC, będziemy używać 4 przekaźników do przełączania obciążenia AC i 4 tranzystorów do budowy przekaźnika obwody sterownika.
Sl.No |
Części |
Rodzaj |
Ilość |
1 |
Przekaźnik |
Przełącznik |
4 |
2 |
BD139 |
Tranzystor |
4 |
3 |
Zacisk śrubowy |
Zacisk śrubowy 5mmx2 |
4 |
4 |
1N4007 |
Dioda |
5 |
5 |
0,1 uF |
Kondensator |
1 |
6 |
100 uF, 25 V. |
Kondensator |
2 |
7 |
LM7805 |
Regulator napięcia |
1 |
8 |
1K |
Rezystor |
4 |
9 |
560R |
Rezystor |
4 |
10 |
Bursztynowa dioda LED |
DOPROWADZIŁO |
4 |
11 |
Mężczyzna nagłówka |
Złącze |
4 |
12 |
Nagłówek żeński |
Złącze |
30 |
13 |
Czerwona dioda LED |
DOPROWADZIŁO |
1 |
14 |
Płyta deweloperska ESP32 V1 |
Płyta ESP32 |
1 |
12 |
Platerowana deska |
Ogólny 50 x 50 mm |
1 |
13 |
Przewody połączeniowe |
Przewody |
4 |
14 |
Podłączanie przewodów |
Przewody |
5 |
Obwód sterujący dla naszego pojemnościowego czujnika dotyku
Poniższy obraz przedstawia pełny schemat obwodu dla naszego czujnika dotykowego opartego na ESP32.
Jak widać, jest to bardzo prosty obwód z minimalną liczbą wymaganych elementów.
Ponieważ jest to prosty obwód czujnika dotykowego, może być przydatny w miejscach, w których chcesz na przykład wchodzić w interakcję z urządzeniem za pomocą dotyku, zamiast używać typowego przełącznika montowanego na płytce, możesz włączać / wyłączać urządzenia za pomocą dotyku.
Na schemacie gniazdo beczkowe DC jest używane jako wejście, gdzie dostarczamy niezbędną moc wymaganą do zasilania obwodu, stamtąd mamy nasz regulator napięcia 7805, który przekształca nieregulowane wejście DC na stałe 5 V DC, przez które dostarczamy zasilanie modułu ESP32.
Następnie na schemacie mamy nasze złącza dotykowe na pinie 25, 26, 27, 28, do którego mamy zamiar podłączyć touchpad.
Następnie mamy nasze przekaźniki, które są przełączane przez tranzystor BD139, dioda D2, D3, D4, D5 jest tam, aby chronić obwód przed jakimkolwiek napięciem przejściowym, które jest generowane podczas przełączania przekaźnika, diody w tej konfiguracji są znane jako dioda flyback / dioda gasząca. Rezystory 560R u podstawy każdego tranzystora służą do ograniczenia przepływu prądu przez bazę.
Projekt PCB dla obwodu pojemnościowego czujnika dotykowego
Płytka drukowana naszego obwodu czujnika dotykowego została zaprojektowana dla płytki jednostronnej. Użyliśmy programu Eagle do zaprojektowania mojej płytki drukowanej, ale możesz użyć dowolnego wybranego oprogramowania do projektowania. Obraz 2D naszego projektu płyty jest pokazany poniżej.
Do wykonania ścieżek mocy, które służą do przepływu prądu przez płytkę drukowaną, użyto wystarczającej średnicy śladu. Zacisk śrubowy umieściliśmy u góry, ponieważ w ten sposób znacznie łatwiej jest podłączyć obciążenie, a złącze zasilające, czyli gniazdo beczkowe DC zostało umieszczone z boku, co również daje łatwy dostęp. Pełny plik projektu dla Eagle wraz z Gerber można pobrać z linku poniżej.
- Plik GERBER dla obwodu sterującego czujnika dotykowego opartego na ESP32
Teraz, gdy nasz projekt jest gotowy, przyszedł czas na wytrawianie i lutowanie płytki. Po zakończeniu procesu wytrawiania, wiercenia i lutowania płytka wygląda jak na poniższym obrazku,
Kod Arduino dla pojemnościowego czujnika dotykowego opartego na ESP32
W tym projekcie zaprogramujemy ESP32 z niestandardowym kodem, który wkrótce opiszemy. Kod jest bardzo prosty i łatwy w użyciu, Zaczynamy od zdefiniowania wszystkich wymaganych pinów, w naszym przypadku definiujemy piny dla naszych czujników dotykowych i przekaźników.
# zdefiniować Relay_PIN_1 15 # zdefiniować przekaźnik_PIN_2 2 # zdefiniować przekaźnik_PIN_3 4 # zdefiniować przekaźnik_PIN_4 16 # zdefiniować TOUCH_SENSOR_PIN_1 13 # zdefiniować TOUCH_SENSOR_PIN_2 12 # zdefiniować TOUCH_SENSOR_PIN_3CH 14
Następnie, w sekcji konfiguracji, zaczynamy od zainicjowania UART do debugowania, następnie wprowadziliśmy opóźnienie 1S, co daje nam trochę czasu na otwarcie okna Serial Monitor. Następnie używamy funkcji pinMode Arduinos, aby wyprowadzić piny przekaźnika jako wyjście, co oznacza koniec sekcji Setup () .
void setup () {Serial.begin (115200); opóźnienie (1000); pinMode (Relay_PIN_1, OUTPUT); pinMode (Relay_PIN_2, OUTPUT); pinMode (Relay_PIN_3, OUTPUT); pinMode (Relay_PIN_4, OUTPUT); }
Rozpoczynamy naszą sekcję pętli od instrukcji if , wbudowana funkcja touchRead (pin_no) służy do określenia, czy pin został dotknięty, czy nie. Funkcja touchRead (pin_no) zwraca zakresy wartości całkowitoliczbowych (0-100), wartość cały czas pozostaje blisko 100, ale jeśli dotkniemy wybranego pinu, wartość spadnie prawie do zera i przy pomocy zmieniającej się wartości możemy określić, czy dana szpilka została dotknięta palcem, czy nie.
W instrukcji if sprawdzamy wszelkie zmiany wartości całkowitych i jeśli wartość spadnie poniżej 28, możemy być pewni, że potwierdziliśmy dotyk. Gdy stwierdzenie if stanie się prawdziwe, czekamy 50ms i ponownie sprawdzamy parametr, co pomoże nam określić, czy wartość czujnika została wyzwolona błędnie, po czym odwracamy stan pinu za pomocą digitalWrite (Relay_PIN_1,! DigitalRead (Relay_PIN_1)) , a reszta kodu pozostaje taka sama.
if (touchRead (TOUCH_SENSOR_PIN_1) <28) {if (touchRead (TOUCH_SENSOR_PIN_1) <28) {Serial.println ("Czujnik pierwszy jest dotknięty"); digitalWrite (Relay_PIN_1,! digitalRead (Relay_PIN_1)); }} else if (touchRead (TOUCH_SENSOR_PIN_2) <28) {if (touchRead (TOUCH_SENSOR_PIN_2) <28) {Serial.println ("Dotknięto czujnika drugiego"); digitalWrite (Relay_PIN_2,! digitalRead (Relay_PIN_2)); }} else if (touchRead (TOUCH_SENSOR_PIN_3) <28) {if (touchRead (TOUCH_SENSOR_PIN_3) <28) {Serial.println ("Czujnik trzeci jest dotknięty"); digitalWrite (Relay_PIN_3,! digitalRead (Relay_PIN_3)); }} else if (touchRead (TOUCH_SENSOR_PIN_4) <28) {if (touchRead (TOUCH_SENSOR_PIN_4) <28) {Serial.println ("Czujnik czwarty jest dotknięty"); digitalWrite (Relay_PIN_4,! digitalRead (Relay_PIN_4)); }}
Na koniec kończymy nasz kod kolejnym 200 ms opóźnieniem blokowania.
Testowanie obwodu czujnika dotyku opartego na ESP32
Ponieważ jest to bardzo prosty projekt, zestaw testowy jest bardzo prosty, jak widać, podłączyłem 4 diody LED z rezystorami, które działają jako obciążenia, ponieważ jest to połączone z przekaźnikiem, możesz łatwo podłączyć dowolne obciążenie do 3A.
Dalsze ulepszenia
Chociaż płytka drukowana jest prosta, wciąż jest miejsce na ulepszenia, jak widać od spodu rzeczywistej płytki drukowanej, podłączyłem wiele rezystorów, próbując podłączyć cztery diody wskazujące, a rozmiar PCB można również zmniejszyć, jeśli to staje się wymogiem, Mam nadzieję, że podobał Ci się artykuł i dowiedziałeś się czegoś przydatnego. Jeśli masz jakieś pytania, możesz je zostawić w sekcji komentarzy poniżej lub skorzystać z naszych forów, aby zadać inne pytania techniczne.