일부 애플리케이션에서는 장치의 기능을 제어하기 위해 사용자 입력이 필요합니다. 임베디드 및 디지털 전자 장치에서 사용되는 다양한 종류의 사용자 입력 방법이 있습니다. 터치 센서는 그중 하나입니다. 터치 센서는 마이크로 컨트롤러와 인터페이스하기 위해 중요하고 널리 사용되는 입력 장치이며 데이터 입력을 더 간단하게 만들었습니다. 휴대폰이든 LCD 모니터 스위치이든 터치 센서를 사용할 수있는 개별 장소가 있습니다. 그러나 시장에는 다양한 유형의 센서가 있지만 정전 용량 식 터치 센서는 터치 센서 부문에서 널리 사용되는 유형입니다.
이전 튜토리얼에서는 터치 센서와 8051 마이크로 컨트롤러를 사용하여 조명 제어를 수행했습니다. 이제이 프로젝트에서는 동일한 터치 센서가 Arduino UNO와 인터페이스됩니다. Arduino는 널리 사용되며 쉽게 사용할 수있는 개발 기판입니다.
이전 에는 다음과 같은 다른 마이크로 컨트롤러와 함께 정전 식 터치 패드 를 사용하는 터치 기반 입력 방법을 사용 했습니다.
- ATmega32 마이크로 컨트롤러와 인터페이스하는 터치 키패드
- Raspberry Pi가 탑재 된 정전 식 터치 패드
터치 센서
이 프로젝트에 사용될 터치 센서는 정전 식 터치 센서 모듈이며 센서 드라이버는 드라이버 IC TTP223을 기반으로합니다. TTP223 IC의 작동 전압은 2V ~ 5.5V이며 터치 센서의 전류 소비는 매우 낮습니다. 저렴하고 전류 소모가 적고 지원을 쉽게 통합 할 수 있기 때문에 TTP223이있는 터치 센서는 정전 식 터치 센서 부문에서 인기를 얻고 있습니다.
위의 이미지에서 센서의 양쪽이 핀아웃 다이어그램이 명확하게 보이는 부분을 보여줍니다. 또한 출력과 관련하여 센서를 재구성하는 데 사용할 수있는 솔더 점퍼가 있습니다. 점퍼는 A와 B입니다. 기본 구성 또는 솔더 점퍼의 기본 상태에서 센서를 터치하면 출력이 LOW에서 HIGH로 변경됩니다. 그러나 점퍼가 설정되고 센서가 재구성되면 터치 센서가 터치를 감지하면 출력 상태가 변경됩니다. 터치 센서의 감도는 커패시터를 변경하여 구성 할 수도 있습니다. 자세한 정보는 매우 유용한 TTP 223의 데이터 시트를 참조하십시오.
아래 차트는 다른 점퍼 설정에서 다른 출력을 보여줍니다.
점퍼 A | 점퍼 B | 출력 잠금 상태 | 출력 TTL 레벨 |
열다 | 열다 | 잠금 없음 | 높은 |
열다 | 닫기 | 자동 잠금 | 높은 |
닫기 | 열다 | 잠금 없음 | 낮은 |
닫기 | 닫기 | 자동 잠금 | 낮은 |
이 프로젝트의 경우 센서는 공장 출하 상태에서 사용할 수있는 기본 구성으로 사용됩니다.
터치 센서를 사용하고 마이크로 컨트롤러와 연결하여 기기를 제어 할 수 있습니다. 이 프로젝트에서 터치 센서는 Arduino UNO 및 Relay를 사용하여 전구를 ON 또는 OFF로 제어하는 데 사용됩니다.
릴레이에 대해 알아보기
릴레이를 인터페이스하려면 릴레이의 핀 설명에 대해 공정하게 생각하는 것이 중요합니다. 릴레이의 핀아웃은 아래 이미지에서 볼 수 있습니다.
NO는 일반적으로 열리고 NC는 정상적으로 연결됩니다. L1과 L2는 릴레이 코일의 두 단자입니다. 전압이인가되지 않으면 릴레이가 꺼지고 POLE이 NC 핀과 연결됩니다. 코일 단자에 전압이 가해지면 릴레이의 L1과 L2가 켜지고 POLE이 NO에 연결됩니다. 따라서 릴레이의 작동 상태를 변경하여 POLE과 NO 사이의 연결을 켜거나 끌 수 있습니다. 적용하기 전에 릴레이 사양 을 확인하는 것이 좋습니다. 릴레이는 L1 및 L2에 작동 전압이 있습니다. 일부 릴레이는 12V, 일부는 6V, 일부는 5V에서 작동합니다. 이뿐 만 아니라 NO, NC 및 POLE에도 전압 및 전류 정격이 있습니다. 우리 애플리케이션의 경우 스위칭 측에서 정격 250V, 6A의 5V 릴레이를 사용하고 있습니다.
필요한 구성 요소
- Arduino UNO
- 프로그래밍 및 전원을위한 USB 케이블
- 표준 큐빅 릴레이-5V
- 2k 저항 -1 pc
- 4.7k 저항-1 개
- BC549B 트랜지스터
- TTP223 센서 모듈
- 1N4007 다이오드
- 전구 홀더가있는 전구
- 브레드 보드
- USB 케이블을 통해 Arduino를 연결하는 전화 충전기.
- 많은 훅업 와이어 또는 버그 와이어.
- Arduino 프로그래밍 플랫폼.
2k 저항, BC549B, 1N4007 및 릴레이는 릴레이 모듈로 교체 할 수 있습니다.
회로도
터치 센서를 Arduino와 연결 하는 회로도 는 간단하며 아래에서 볼 수 있습니다.
트랜지스터는 릴레이를 켜거나 끄는 데 사용됩니다. 이는 Arduino GPIO 핀이 릴레이를 구동하기에 충분한 전류를 제공 할 수 없기 때문입니다. 1N4007은 릴레이 켜기 또는 끄기 상황에서 EMI 차단에 필요합니다. 다이오드는 프리휠 다이오드로 작동 합니다. 터치 센서는 Arduino UNO 보드와 연결됩니다.
회로는 아래와 같이 Arduino와 함께 브레드 보드에 구성됩니다.
적절한 브레드 보드 연결은 아래 회로도에서 볼 수 있습니다.
터치 센서를 사용하여 전구를 제어하도록 Arduino UNO 프로그래밍
작동하는 비디오 가있는 완전한 프로그램 이 마지막에 제공됩니다. 여기서는 코드의 몇 가지 중요한 부분을 설명합니다. Arduino UNO는 Arduino IDE를 사용하여 프로그래밍됩니다. 첫째, Arduino 라이브러리가 포함되어 Arduino의 모든 기본 기능에 액세스 할 수 있습니다.
#포함
릴레이와 터치 센서가 연결될 모든 핀 번호를 정의합니다. 여기에서 터치 센서는 핀 A5에 연결됩니다. 보드에서 핀 13에 직접 연결되는 내장 LED도 사용됩니다. 릴레이는 핀 A4에 연결됩니다.
/ * * 핀 설명 * / int Touch_Sensor = A5; int LED = 13; int 릴레이 = A4;
핀 모드, 즉 입력이든 출력이든 핀 기능을 정의하십시오. 여기에 터치 센서가 입력됩니다. 릴레이 및 LED 핀이 출력됩니다.
/ * * 핀 모드 설정 * / void setup () { pinMode (Touch_Sensor, INPUT); pinMode (LED, OUTPUT); pinMode (Relay, OUTPUT); }
터치 여부에 관계없이 센서의 상태를 유지하기 위해 'condition'이 사용되는 두 개의 정수가 선언됩니다. '상태'는 LED 및 릴레이의 상태를 켜거나 끄는 데 사용됩니다.
/ * * 프로그램 흐름 설명 * / int condition = 0; int 상태 = 0; // 스위치 상태를 유지합니다.
터치 센서는 터치시 로직 0을 1로 변경합니다. 이것은 digitalRead () 함수에 의해 읽히고 값은 조건 변수에 저장됩니다. 조건이 1이면 LED 및 Relay의 상태가 변경됩니다. 그러나 터치를 정확하게 감지하기 위해 디 바운스 지연이 사용됩니다. 디 바운스 지연 , delay (250); 단일 터치를 확인하는 데 사용됩니다.
void loop () { condition = digitalRead (A5); // Arduino의 A5 핀에서 디지털 데이터를 읽습니다. if (조건 == 1) { 지연 (250); // 디 바운스 지연. if (상태 == 1) { 상태 = ~ 상태; // 스위치 상태 변경. digitalWrite (LED, 상태); digitalWrite (릴레이, 상태); } } }
터치 센서 TTP223의 작동 테스트
회로는 저전력 전구가 연결된 브레드 보드에서 테스트됩니다.
참고 있음 이 전구를 사용하는 동안주의하는 것이 좋습니다 있도록이 프로젝트는 230-240V AC 전압을 사용합니다. 의심이나 제안이 있으면 아래에 의견을 말하십시오.