아두이노 나노 터치 센서

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

준비물

1×아두이노 나노 쿠팡 | 아마존
1×USB A to Mini-B USB 케이블 쿠팡 | 아마존
1×터치 센서 (Touch Sensor) 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 아두이노 나노용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) 아두이노 나노용 브레이크아웃 확장 보드 쿠팡 | 아마존
1×(추천) 아두이노 나노용 전원 분배기 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

터치 센서에 대하여

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

터치 센서 핀배열

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

  • GND 핀은 접지(0V)에 연결되어야 합니다.
  • VCC 핀은 전압원(5V 또는 3.3V)에 연결되어야 합니다.
  • SIGNAL 핀은 출력 핀입니다. 만지지 않을 때는 LOW가 되며 만지면 HIGH가 됩니다. 이 핀은 Arduino Nano 입력 핀에 연결되어야 합니다.
터치 센서 사용법 핀아웃

작동 원리

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

아두이노 나노 - 터치 센서

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

선연결

아두이노 나노 터치 센서 연결 배선도

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

Arduino Nano와 기타 부품에 전원을 공급하는 가장 효과적인 방법은 다음 링크를 참조하세요: 아두이노 나노 전원 공급 방법.

터치 센서 프로그래밍 방법

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

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

※ 주의:

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

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

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

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

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

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

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

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

/* * 이 아두이노 나노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 나노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * 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에 업로드하십시오.
  • 센서에 손가락을 대고 나서 빼십시오.
  • 시리얼 모니터에서 결과를 확인하십시오.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
0 0 0 1 1 1 1 1 1 0 0
Ln 11, Col 1
Arduino Nano on COM15
2

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

/* * 이 아두이노 나노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 나노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * 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 버튼을 클릭하여 코드를 아두이노 나노에 전송하세요.
  • 센서에 손가락을 대보세요.
  • 시리얼 모니터에서 출력을 확인하세요.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
The sensor is touched
Ln 11, Col 1
Arduino Nano on COM15
2
  • 터치 센서에서 손가락을 떼세요.
  • 시리얼 모니터에서 출력을 확인하세요.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
The sensor is touched The sensor is released
Ln 11, Col 1
Arduino Nano on COM15
2

동영상

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

함수 참조들