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

이 튜토리얼은 여러분에게 Arduino Nano와 함께 용량성 터치 센서를 사용하는 방법을 알려줍니다. 자세히, 우리는 배울 것입니다:

준비물

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

터치 센서에 대하여

정전식 터치 센서, 또는 터치 버튼이나 터치 스위치라고도 하는 것은, 터치 가능한 램프와 같은 다른 기기들을 제어하는 데 자주 사용되는 장치입니다. 이것은 버튼과 같은 기능을 수행하지만, 현대적인 기기에 더 세련된 외관을 제공하기 위해 버튼보다 종종 선호됩니다.

터치 센서 핀배열

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

  • GND 핀은 접지(0V)에 연결되어야 합니다.
  • VCC 핀은 전압원(5V 또는 3.3V)에 연결되어야 합니다.
  • SIGNAL 핀은 출력 핀입니다. 만지지 않을 때는 LOW가 되며 만지면 HIGH가 됩니다. 이 핀은 Arduino Nano 입력 핀에 연결되어야 합니다.
touch sensor pinout

작동 원리

  • 센서가 만지지 않을 때, 센서의 SIGNAL 핀은 LOW 레벨에 있습니다.
  • 반대로, 센서를 만질 때, 센서의 SIGNAL 핀은 HIGH 레벨에 있습니다.

아두이노 나노 - 터치 센서

터치 센서의 SIGNAL 핀은 아두이노 나노의 입력 핀에 연결되어 있습니다. 아두이노 나노 입력 핀의 상태를 확인함으로써, 터치 센서가 터치되었는지 여부를 판단할 수 있습니다.

선연결

Arduino Nano Touch Sensor wiring diagram

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

터치 센서 프로그래밍 방법

Arduino Nano 핀을 digital input 모드로 초기화하는데 pinMode() 함수를 사용합니다. 예를 들어, 아래 코드는 핀 2를 입력 모드로 설정합니다.

pinMode(2, INPUT_PULLUP);
  • digitalRead() 함수를 사용하여 Arduino Nano 핀의 상태를 읽습니다.
int inputState = digitalRead(2);

※ NOTE THAT:

두 가지 일반적인 시나리오가 있습니다:

  • 첫 번째: 입력이 HIGH이면 어떤 동작을 수행하고, 입력이 LOW이면 반대의 동작을 수행합니다.
  • 두 번째: 입력이 LOW에서 HIGH로 (또는 그 반대로) 변경되면 어떤 동작을 수행합니다.

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

  • 센서가 만져졌을 때 LED가 켜지고 만져지지 않았을 때 LED가 꺼지게 하려면 첫 번째 시나리오를 사용해야 합니다.
  • 센서를 만질 때마다 LED가 켜지고 꺼지게 하려면 두 번째 시나리오를 사용해야 합니다.

아두이노 나노 터치 센서용 코드

우리는 두 개의 샘플 코드를 실행할 예정입니다:

  • 아두이노 나노는 터치 센서에서 값을 읽고 시리얼 모니터에 출력합니다.
  • 아두이노 나노는 터치 또는 터치 해제 이벤트를 감지합니다.

아두이노 나노가 터치 센서에서 값을 읽고 시리얼 모니터에 출력합니다.

/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-touch-sensor */ #define TOUCH_SENSOR_PIN 2 // 터치 센서에 연결된 아두이노 나노 핀 void setup() { // 시리얼 모니터와 통신하기 위해 시리얼을 초기화합니다. Serial.begin(9600); // 아두이노 나노 핀을 입력으로 초기화합니다. pinMode(TOUCH_SENSOR_PIN, INPUT); } void loop() { // 입력 핀의 상태를 읽습니다: int state = digitalRead(TOUCH_SENSOR_PIN); // 시리얼 모니터에 상태를 출력합니다. Serial.println(state); }

사용 방법

  • 코드를 복사하고 Arduino IDE로 열십시오.
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 컴파일하고 Arduino Nano에 업로드하십시오.
  • 센서에 손가락을 대고 나서 빼십시오.
  • 시리얼 모니터에서 결과를 확인하십시오.
COM6
Send
0 0 0 1 1 1 1 1 1 0 0
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

아두이노 나노는 센서가 터치되었는지 또는 해제되었는지 감지합니다.

/* * 이 Arduino Nano 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino Nano 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano/arduino-nano-touch-sensor */ #define TOUCH_SENSOR_PIN 2 // 아두이노 나노 핀이 터치 센서에 연결되어 있습니다. int prev_state = LOW; // 입력 핀에서의 이전 상태 int touch_state; // 입력 핀에서의 현재 읽기 상태 void setup() { // 시리얼 모니터와 통신하기 위해 Serial을 초기화합니다. Serial.begin(9600); // 아두이노 나노 핀을 입력으로 초기화합니다. pinMode(TOUCH_SENSOR_PIN, INPUT); } void loop() { // 입력 핀의 상태를 읽습니다. touch_state = digitalRead(TOUCH_SENSOR_PIN); if (prev_state == LOW && touch_state == HIGH) Serial.println("센서가 터치되었습니다"); else if (prev_state == HIGH && touch_state == LOW) Serial.println("센서가 해제되었습니다"); // 마지막 상태를 저장합니다. prev_state = touch_state; }

사용 방법

  • 코드를 복사하여 아두이노 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 released
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, 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!