- 정전 용량 방식 터치 센서 란 무엇이며 어떻게 작동합니까?
- 4 방향 정전 식 터치 센서 구축
- ESP32 터치 제어 회로에 필요한 재료
- 정전 식 터치 센서 용 제어 회로
- 정전 용량 방식 터치 센서 회로를위한 PCB 설계
- ESP32 기반 정전 식 터치 센서 용 Arduino 코드
- ESP32 기반 터치 센서 회로 테스트
- 추가 향상
대부분의 경우 누름 버튼 대신 터치 센서가 사용됩니다. 장점은 버튼을 누르는 데 힘을 줄 필요가 없으며 터치 센서를 사용하여 키를 건드리지 않고도 키를 활성화 할 수 있다는 것입니다. 터치 감지 기술은 날로 대중화되고 있습니다. 그리고 지난 10 년 동안 터치 감지 전자 장치 없이는 세상을 상상하기가 어려워졌습니다. 두 저항 및 정전 용량 터치 방법은 터치 센서를 개발하는데 이용 될 수 있으며,이 문서에서, 우리는 만들기의 원유 방법에 대해 설명합니다 ESP32과 정전 용량 터치 센서를 이전에 우리는 또한 라즈베리 파이와 정전 용량 터치 버튼을 구축했다.
하지만 응용 프로그램 별 터치 센서가 조금 복잡 할 수 있으며, 기본 원리는 그래서이 글에서, 우리가에 초점을 것 같은이 기술 숙박을 기본 우리의 정전 용량 터치 센서 개발을 우리가 제일 좋아하는의 도움으로 ESP32과 구리의 조각 클래드 보드.
이전 튜토리얼에서는 TTP223 터치 센서 및 Arduino UNO를 사용하여 터치로 홈 조명 제어를 수행했습니다. 이제이 프로젝트에서는 ESP32 용 터치 센서를 구축하고 있지만 Arduino에도 동일하게 사용할 수 있습니다. 또한 이전에는 ATmega32 마이크로 컨트롤러를 사용한 Touch Keypad Interfacing 및 Raspberry Pi가있는 Capacitive TouchPad와 같은 다양한 마이크로 컨트롤러가있는 정전 식 터치 패드를 사용하는 터치 기반 입력 방법을 사용했습니다. 관심이있는 경우 확인할 수도 있습니다.
정전 용량 방식 터치 센서 란 무엇이며 어떻게 작동합니까?
커패시터는 다양한 형태로 제공됩니다. 가장 일반적인 것은 납이있는 패키지 또는 표면 실장 패키지의 형태로 제공되지만 커패시턴스를 형성하려면 유전체 재료로 분리 된 도체 가 필요합니다 . 따라서 쉽게 만들 수 있습니다. 좋은 예는 다음 예에서 개발할 것입니다.
에칭 된 PCB 를 전도성 재료 로 고려할 때 스티커는 유전체 역할을하므로 이제 구리 패드를 터치하면 터치 센서 컨트롤러가 감지 할 수있는 방식으로 커패시턴스가 어떻게 변화하는지에 대한 의문이 남아 있습니다. 물론 인간의 손가락.
음, 주로 두 가지 이유가 있습니다. 첫째, 하나는 손가락 의 유전 적 특성을 포함하고, 두 번째는 손가락의 전도성 속성 때문입니다. 우리는 정전 식 기반 터치를 사용할 것 입니다. 따라서 정전 용량 기반 터치 센서로 초점을 돌릴 것입니다. 그러나이 모든 것을 논의하기 전에, 스티커에 사용 된 종이 때문에 전도가 일어나지 않고 손가락이 절연되어 있다는 점에 유의하는 것이 중요합니다. 따라서 손가락으로 커패시터를 방전 할 수 없습니다.
유전체 역할을하는 손가락:
커패시터는 두 전도 판 의 면적, 판 사이의 거리 및 유전 상수에 의해 실현 될 수있는 일정한 값을 갖는다는 것은 상식입니다. 커패시터를 터치하는 것만으로는 커패시터의 면적을 변경할 수 없지만 사람의 손가락이 표시하는 물질과 유전 상수가 다르기 때문에 커패시터의 유전 상수를 확실히 변경할 수 있습니다. 우리의 경우는 공기이고, 우리는 손가락으로 공기를 옮깁니다.. 방법을 묻는다면? 인간의 손가락은 대부분 물로 구성되어 있기 때문에 해수면 상온에서 공기 (1006)의 유전 상수와 손가락의 유전 상수가 약 80 정도 더 높기 때문입니다. 따라서 손가락과 커패시터의 전기장의 상호 작용으로 인해 유전 상수가 증가하여 커패시턴스가 증가합니다.
원리를 이해 했으니 이제 실제 PCB 제작으로 넘어가 보겠습니다.
4 방향 정전 식 터치 센서 구축
정전 용량 터치 센서 이 프로젝트에 사용되는 네 개의 채널을 가지고 있으며, 그것은 쉽게 만들 수 있습니다. 아래에서 우리는 하나를 만드는 자세한 과정을 언급했습니다.
먼저 Eagle PCB 설계 도구 를 사용하여 센서 용 PCB를 만들었습니다. 아래 이미지와 비슷합니다.
치수와 Photoshop 의 도움으로 우리는 템플릿을 만들고 마지막으로 아래 이미지와 같은 센서 용 스티커를 만들었습니다.
이제 스티커 작업이 끝나면 아래 이미지와 같은 PCB를 만드는 데 사용할 실제 클래드 보드 템플릿을 만드는 단계로 넘어갑니다.
이제이 파일을 인쇄하고 수제 PCB를 만드는 과정을 진행할 수 있습니다. 당신이 처음이라면 집에서 PCB를 만드는 방법에 대한 기사를 확인할 수 있습니다. 아래 링크에서 필요한 PDF 및 Gerber 파일을 다운로드 할 수도 있습니다.
- 4 채널 정전 식 터치 센서 용 GERBER 파일
완료되면 실제 에칭 된 PCB는 아래 이미지와 같습니다.
이제 몇 개의 구멍을 뚫을 시간이고 몇 개의 전선을 PCB에 연결합니다. 그래서 우리는 그것을 ESP32 보드와 연결할 수 있습니다. 완료되면 아래 이미지와 같습니다.
PCB에 비아를 넣지 않았기 때문에 솔더링 중에 솔더가 사방으로 흩어 졌기 때문에 위의 다운로드 섹션에서 찾을 수있는 PCB에 드릴 구멍을 뚫어 실수를 수정했습니다. 마지막으로 스티커를 붙이고 최종적으로 만들 시간이었습니다. 아래 이미지와 비슷합니다.
이제 터치 패널 작업을 마쳤으므로 터치 패널 용 제어 회로를 만드는 단계로 넘어갈 차례입니다.
ESP32 터치 제어 회로에 필요한 재료
ESP32를 사용하여 컨트롤러 섹션을 구축하는 데 필요한 구성 요소는 다음과 같습니다. 대부분의 구성 요소는 지역 취미 상점에서 찾을 수 있습니다.
또한 4 채널 터치 센서를 인터페이스하고 4 개의 AC 부하를 제어하기 때문에 아래 표의 구성 요소를 필요한 유형 및 수량과 함께 나열했습니다. 우리는 4 개의 릴레이를 사용하여 AC 부하를 전환하고 4 개의 트랜지스터를 사용하여 릴레이를 구축 할 것입니다. 드라이버 회로.
Sl. 아니요 |
부속 |
유형 |
수량 |
1 |
계전기 |
스위치 |
4 |
2 |
BD139 |
트랜지스터 |
4 |
삼 |
나사 터미널 |
나사 식 터미널 5mmx2 |
4 |
4 |
1N4007 |
다이오드 |
5 |
5 |
0.1uF |
콘덴서 |
1 |
6 |
100uF, 25V |
콘덴서 |
2 |
7 |
LM7805 |
전압 조정기 |
1 |
8 |
1K |
저항기 |
4 |
9 |
560R |
저항기 |
4 |
10 |
황색 LED |
LED |
4 |
11 |
남성 헤더 |
커넥터 |
4 |
12 |
여성 헤더 |
커넥터 |
30 |
13 |
적색 LED |
LED |
1 |
14 |
ESP32 개발 보드 V1 |
ESP32 보드 |
1 |
12 |
클래드 보드 |
일반 50x 50mm |
1 |
13 |
점퍼 와이어 |
전선 |
4 |
14 |
전선 연결 |
전선 |
5 |
정전 식 터치 센서 용 제어 회로
아래 이미지는 ESP32 기반 터치 센서 의 전체 회로도를 보여줍니다 .
보시다시피 최소한의 구성 요소가 필요한 매우 간단한 회로입니다.
간단한 터치 센서 회로이므로 터치를 통해 장치와 상호 작용하려는 장소에서 유용 할 수 있습니다. 예를 들어 일반적인 보드 장착 스위치를 사용하는 대신 터치로 기기를 켜고 끌 수 있습니다.
회로도에서 DC 배럴 잭은 회로에 전원을 공급하는 데 필요한 전력을 제공하는 입력으로 사용되며, 여기에서 비 조정 DC 입력을 우리가 제공하는 일정한 5V DC로 변환하는 7805 전압 조정기가 있습니다. ESP32 모듈의 전원.
다음으로 회로도에서 핀 25, 26, 27, 28에 터치 커넥터가 있습니다. 여기서 터치 패드를 연결합니다.
다음으로 BD139 트랜지스터를 통해 스위칭되는 릴레이가 있습니다. 다이오드 D2, D3, D4, D5는 릴레이가 토글 될 때 생성되는 과도 전압으로부터 회로를 보호하기 위해 있습니다.이 구성의 다이오드는 플라이 백 다이오드 / 프리 휠링 다이오드. 각 트랜지스터의베이스에있는 560R 저항은베이스를 통한 전류 흐름을 제한하는 데 사용됩니다.
정전 용량 방식 터치 센서 회로를위한 PCB 설계
터치 센서 회로 용 PCB는 단면 기판 용으로 설계되었습니다. 우리는 Eagle을 사용하여 PCB를 설계했지만 원하는 설계 소프트웨어를 사용할 수 있습니다. 보드 디자인의 2D 이미지는 아래와 같습니다.
회로 기판을 통해 전류를 흐르게하는 데 사용되는 전력 트랙을 만들기 위해 충분한 트레이스 직경이 사용되었습니다. 로드 연결이 훨씬 쉽기 때문에 나사 단자를 상단 에 배치하고 측면에 DC 배럴 잭인 전원 커넥터 를 배치하여 쉽게 접근 할 수 있습니다. Gerber와 함께 Eagle의 전체 디자인 파일은 아래 링크에서 다운로드 할 수 있습니다.
- ESP32 기반 터치 센서 제어 회로 용 GERBER 파일
이제 디자인이 준비 되었으므로 보드 를 에칭하고 납땜 할 차례 입니다. 에칭, 드릴링, 납땜 공정이 완료되면 보드는 아래 그림과 같이 보입니다.
ESP32 기반 정전 식 터치 센서 용 Arduino 코드
이 프로젝트에서는 곧 설명 할 사용자 지정 코드로 ESP32를 프로그래밍합니다. 코드는 매우 간단하고 사용하기 쉽습니다.
필요한 모든 핀을 정의하는 것으로 시작합니다.이 경우에는 터치 센서 및 릴레이 용 핀을 정의합니다.
#define Relay_PIN_1 15 #define Relay_PIN_2 2 #define Relay_PIN_3 4 #define Relay_PIN_4 16 #define TOUCH_SENSOR_PIN_1 13 #define TOUCH_SENSOR_PIN_2 12 #define TOUCH_SENSOR_PIN_3 14 #define TOUCH_SENSOR_PIN_4 27
다음으로 설정 섹션에서 디버깅을 위해 UART를 초기화하는 것으로 시작하고, 직렬 모니터 창을 여는 데 약간의 시간을 제공하는 1S 지연을 도입했습니다. 다음으로 Arduinos pinMode 함수를 사용하여 릴레이 핀을 출력으로 만들어 Setup () 섹션 의 끝을 표시합니다.
void setup () {Serial.begin (115200); 지연 (1000); pinMode (Relay_PIN_1, OUTPUT); pinMode (Relay_PIN_2, OUTPUT); pinMode (Relay_PIN_3, OUTPUT); pinMode (Relay_PIN_4, OUTPUT); }
우리는 우리의 시작 루프 로 섹션을 경우 문, 내장 기능 touchRead (pin_no)은 핀을 터치하거나하지 않은 경우 결정하는 데 사용됩니다. touchRead (pin_no) 함수가 정수 값의 범위 (0 - 100) 반환 우리가 선택한 핀을 만지지 경우, 100의 모든 시간에 가까운 값 숙박,하지만, 값이 0에 가까운에 방울을하고, 변화하는 값의 도움으로, 특정 핀이 손가락으로 터치되었는지 여부를 확인할 수 있습니다.
에서 경우 문, 우리는 정수 값의 변화를 확인하고, 값에 도달 (28) 아래의 경우에, 우리는 확실히 우리가 터치를 인정했다고 할 수있다. if 문이 true가 되면 50ms 동안 기다렸다가 매개 변수를 다시 확인하면 센서 값이 잘못 트리거되었는지 확인하는 데 도움이됩니다. 그 후 digitalWrite (Relay_PIN_1,! digitalRead)를 사용하여 핀의 상태를 반전합니다 . (Relay_PIN_1)) 메서드와 나머지 코드는 동일하게 유지됩니다.
if (touchRead (TOUCH_SENSOR_PIN_1) <28) {if (touchRead (TOUCH_SENSOR_PIN_1) <28) {Serial.println ("센서 하나가 터치되었습니다"); 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 ("센서 2가 터치되었습니다"); 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 ("Sensor Three is touched"); 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 ("센서 4가 터치되었습니다"); digitalWrite (Relay_PIN_4,! digitalRead (Relay_PIN_4)); }}
마지막으로 200ms의 차단 지연으로 코드를 종료합니다.
ESP32 기반 터치 센서 회로 테스트
이것은 매우 간단한 프로젝트이므로 테스트 세트는 매우 간단합니다. 보시다시피 부하 역할을하는 저항과 4 개의 LED를 연결했습니다. 릴레이와 연결되어 있기 때문에 모든 부하를 3Amp까지 쉽게 연결할 수 있습니다.
추가 향상
PCB는 단순하지만 실제 PCB의 바닥면에서 볼 수 있듯이 개선의 여지는 여전히 남아 있으며, 4 개의 표시 LED를 연결하기 위해 많은 저항을 연결했으며, 그럴 경우 PCB 크기도 줄일 수 있습니다. 요구 사항이되고
기사를 즐겁게 읽고 유용한 것을 배웠기를 바랍니다. 질문이있는 경우 아래 댓글 섹션에 남겨 두거나 포럼을 사용하여 다른 기술 질문을 게시 할 수 있습니다.