아두이노 - 터치 센서 | Arduino - Touch Sensor

터치 센서(터치 버튼이나 터치 스위치라고도 함)는 장치를 제어하는 데 널리 사용됩니다(예: 터치 가능한 램프). 버튼과 같은 기능을 합니다. 많은 새로운 장치에서 버튼 대신 사용되며, 이는 제품을 깔끔하게 보이게 합니다.

이 튜토리얼에서는 아두이노와 터치 센서를 사용하는 방법을 배워볼 것입니다.

준비물

1×Arduino Uno Amazon
1×USB 2.0 cable type A/B 쿠팡 | Amazon
1×Touch Sensor Amazon
1×Jumper Wires Amazon
1×(Optional) 9V Power Adapter for Arduino Amazon
1×(Recommended) Screw Terminal Block Shield for Arduino Uno 쿠팡 | Amazon
1×(Optional) Transparent Acrylic Enclosure For Arduino Uno Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

터치 센서에 대하여

핀 배치

터치 센서는 3개의 핀이 있습니다:

  • GND 핀: GND(0V)에 연결해야 합니다.
  • VCC 핀: VCC(5V 또는 3.3V)에 연결해야 합니다.
  • SIGNAL 핀: 출력 핀입니다: 터치하지 않을 때는 LOW, 터치할 때는 HIGH입니다. 이 핀은 Arduino의 입력 핀에 연결해야 합니다.
Touch Sensor Pinout

작동 원리

  • 센서가 만져지지 않을 때, 센서의 신호 핀은 저레벨입니다.
  • 센서가 만져질 때, 센서의 신호 핀은 고레벨입니다.

아두이노 - 터치 센서

터치 센서의 신호핀이 아두이노의 입력 핀에 연결되어 있습니다.

아두이노의 핀(입력 핀으로 설정된) 상태를 읽음으로써 터치 센서가 터치되었는지 여부를 감지할 수 있습니다.

선연결

Arduino Touch Sensor Wiring Diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

터치 센서 프로그래밍 방법

pinMode() 함수를 사용하여 아두이노 핀을 디지털 입력 모드로 초기화합니다. 예를 들어, 핀 7

pinMode(7, INPUT_PULLUP);

digitalRead() 함수를 사용하여 아두이노 핀의 상태를 읽습니다.

int inputState = digitalRead(7);

※ NOTE THAT:

널리 사용되는 두 가지 사용 사례가 있습니다:

  • 첫 번째: 입력 상태가 HIGH일 경우, 어떤 것을 수행합니다. 입력 상태가 LOW일 경우, 반대로 다른 것을 수행합니다.
  • 두 번째: 입력 상태가 LOW에서 HIGH로 (또는 HIGH에서 LOW로) 변경될 경우, 어떤 것을 수행합니다.

응용 프로그램에 따라, 우리는 이 중 하나를 선택합니다. 예를 들어, 터치 센서를 사용하여 LED를 제어하는 경우:

  • 센서에 접촉했을 때 LED가 켜지고 접촉하지 않았을 때 LED가 꺼지길 원한다면, 첫 번째 사용 사례를 사용해야 합니다.
  • 센서에 접촉할 때마다 LED가 켜지고 꺼지게 하고 싶다면, 두 번째 사용 사례를 사용해야 합니다.

LOW에서 HIGH로 상태 변경 감지 방법

// 상수는 변경되지 않습니다. 여기서는 핀 번호를 설정하는 데 사용됩니다: const int SENSOR_PIN = 7; // 센서의 SIGNAL 핀에 연결되는 Arduino의 입력 핀 // 변수는 변경될 것입니다: int lastState = LOW; // 입력 핀에서의 이전 상태 int currentState; // 입력 핀에서의 현재 읽기 값 void setup() { // 초당 9600비트로 시리얼 통신 시작 Serial.begin(9600); // Arduino의 핀을 입력으로 초기화 pinMode(SENSOR_PIN, INPUT); } void loop() { // 입력 핀의 상태 읽기: currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH) Serial.println("센서가 만져졌습니다"); // 마지막 상태 저장 lastState = currentState; }

터치 센서 - 아두이노 코드

우리는 네 개의 예제 코드를 실행할 것입니다:

  • 터치 센서에서 값을 읽고 시리얼 모니터에 출력합니다.
  • 센서의 상태에 따라 LED를 제어합니다.
  • 센서가 터치되었는지 또는 릴리즈되었는지 감지합니다.
  • 센서가 터치될 때 LED를 토글합니다 (이것은 가장 일반적으로 사용됩니다).

터치 센서에서 값을 읽고 시리얼 모니터에 출력합니다.

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-touch-sensor */ // 상수는 변하지 않습니다. 여기서는 핀 번호를 설정하는데 사용됩니다: const int SENSOR_PIN = 7; // 센서의 SIGNAL 핀에 연결되는 Arduino의 입력 핀 void setup() { // 초당 9600비트로 직렬 통신을 초기화합니다: Serial.begin(9600); // Arduino의 핀을 입력으로 초기화합니다 pinMode(SENSOR_PIN, INPUT); } void loop() { // 입력 핀의 상태를 읽습니다: int state = digitalRead(SENSOR_PIN); // 상태를 직렬 모니터로 출력합니다 Serial.println(state); }

사용 방법

  • 위의 코드를 복사하고 Arduino IDE로 열기
  • 코드를 Arduino에 업로드하기 위해 Arduino IDE에서 Upload 버튼을 클릭하세요.
  • 센서에 손가락을 대고 떼세요.
  • 시리얼 모니터에서 결과를 확인하세요.
COM6
Send
0 0 0 1 1 1 1 1 1 0 0
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

센서 상태에 따라 LED를 제어합니다.

센서가 만져지면 LED를 켜세요. 센서가 만져지지 않으면 LED를 끄세요.

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-touch-sensor */ // 상수는 변하지 않습니다. 여기서는 핀 번호를 설정하는 데 사용됩니다: const int SENSOR_PIN = 7; // 센서의 SIGNAL 핀에 연결되는 Arduino의 입력 핀 void setup() { // 초당 9600비트로 시리얼 통신을 초기화합니다: Serial.begin(9600); // Arduino의 핀을 입력으로 초기화합니다 pinMode(SENSOR_PIN, INPUT); // 디지털 핀 LED_BUILTIN을 출력으로 초기화합니다. pinMode(LED_BUILTIN, OUTPUT); } void loop() { // 입력 핀의 상태를 읽습니다: int state = digitalRead(SENSOR_PIN); // 센서의 상태에 따라 LED를 제어합니다 digitalWrite(LED_BUILTIN, state); }

사용 방법

  • 위의 코드를 복사하고 아두이노 IDE로 열기
  • 아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 아두이노에 업로드
  • 센서에 손가락을 대고 계속 대고 있기
  • LED 상태 보기 ⇒ LED가 켜져 있어야 함.
  • 센서에서 손가락을 떼기
  • LED 상태 보기 ⇒ LED가 꺼져 있어야 함.

센서가 만져지거나 놓아졌는지 감지합니다

// 상수는 변경되지 않습니다. 여기서는 핀 번호를 설정하는 데 사용됩니다: const int SENSOR_PIN = 7; // 센서의 SIGNAL 핀에 연결되는 Arduino의 입력 핀 // 변수는 변경될 것입니다: int lastState = LOW; // 입력 핀에서의 이전 상태 int currentState; // 입력 핀에서의 현재 읽기 void setup() { // 초당 9600비트의 속도로 시리얼 통신을 초기화합니다: Serial.begin(9600); // Arduino의 핀을 입력으로 초기화합니다 pinMode(SENSOR_PIN, INPUT); } void loop() { // 입력 핀의 상태를 읽습니다: currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH) Serial.println("센서가 접촉되었습니다"); else if(lastState == HIGH && currentState == LOW) Serial.println("센서가 놓여졌습니다"); // 마지막 상태를 저장합니다 lastState = currentState; }

사용 방법

  • 위의 코드를 복사하여 아두이노 IDE로 열기
  • 아두이노 IDE에서 Upload 버튼을 클릭하여 아두이노에 코드를 업로드
  • 센서에 손가락을 대고 계속 접촉하십시오.
  • 시리얼 모니터에서 결과를 확인하십시오.
COM6
Send
The sensor is touched
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • 센서에서 손가락을 떼세요.
  • 시리얼 모니터에서 결과를 확인하세요.
COM6
Send
The sensor is touched The sensor is is released
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

센서가 닿으면 LED를 전환합니다.

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-touch-sensor */ // 상수는 변경되지 않습니다. 여기서는 핀 번호를 설정하는 데 사용됩니다: const int SENSOR_PIN = 7; // 센서의 SIGNAL 핀에 연결하는 아두이노의 입력 핀 // 변수는 변경될 것입니다: int lastState = LOW; // 입력 핀에서의 이전 상태 int currentState; // 입력 핀에서의 현재 읽기 int ledState = LOW; // 현재 LED 상태 void setup() { // 초당 9600비트의 속도로 시리얼 통신을 초기화합니다: Serial.begin(9600); // 아두이노의 핀을 입력으로 초기화합니다 pinMode(SENSOR_PIN, INPUT); // 디지털 핀 LED_BUILTIN을 출력으로 초기화합니다. pinMode(LED_BUILTIN, OUTPUT); } void loop() { // 입력 핀의 상태를 읽습니다: currentState = digitalRead(SENSOR_PIN); if(lastState == LOW && currentState == HIGH){ // LED 상태 토글 if(ledState == LOW) ledState = HIGH; else if(ledState == HIGH) ledState = LOW; // LED 제어 digitalWrite(LED_BUILTIN, ledState); } // 마지막 상태를 저장합니다 lastState = currentState; }

사용 방법

  • 위의 코드를 복사하고 Arduino IDE로 열기
  • Arduino IDE에서 Upload 버튼을 클릭하여 아두이노에 코드 업로드
  • 센서에 손가락을 대고 떼기.
  • LED 상태 확인 ⇒ LED가 켜져야 합니다.
  • 센서에 손가락을 대고 떼기.
  • LED 상태 확인 ⇒ LED가 꺼져야 합니다.
  • 센서에 손가락을 대고 떼기.
  • LED 상태 확인 ⇒ LED가 켜져야 합니다.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!