본문 바로가기
Arduino(아두이노) 활용 강좌

Arduino Uno 로 TTP224 4채널 정전식 터치센서를 사용해 터치시 LED와 Buzzer 제어해 보기

by 오마이엔지니어 2017. 4. 15.
반응형

Arduino Uno 로 TTP224 4채널 정전식 터치센서를 사용해서 터치시 LED를 점등시켜 보고 추가로 Buzzer 와
서보모터를 제어해 보는 프로젝트입니다

4채널 터치센서 모듈은 정전식 터치 IC (TTP224) 기반의 4채널의 정전용량 형 터치 스위치 모듈 입니다
아두이노 나 기타 마이크로콘트롤 보드와 연결하여 입력장치로 사용가능하며 스위치나 푸시버튼 대신

사용하기 편리합니다
정전식으로 손가락이 터치패드에 완전히 닿지 않아도 터치센서가 감지 가능합니다

 


<TTP224 4채널 정전식 터치센서 모듈 이미지>

<TTP224 4채널 정전식 터치센서 모듈 상세사양>


사용된 부품
Arduino Uno R3 (Italy)
미니 브래드 보드
점퍼케이블
막대저항 220 (Ohm) - 4개
TTP224 4채널 정전식 터치센서 모듈
SG90 마이크로 서보모터
5mm LED 4색

사용된 키트
아두이노 정전식 터치센서 키트

구성 배선도 - 터치센서 터치시 시리얼 모니터로 출력값 확인해 보기


구성 배선도 - 터치센서 터치시 여러개의 LED 점등시켜 보기


구성 배선도 - 터치센서 터치시 3색 RGB LED 점등시켜 보기 & Buzzer 울려 보기


구성 배선도 - 터치센서 터치시 SG90 마이크로 서보모터 회전각을 달리하며 회전시켜 보기


사용된 예제소스

TTP224.txt
0.00MB
TTP224 LEDS.txt
0.00MB
TTP224 Servo.txt
0.00MB


주의사항

배선시 LED의 방향을 잘 확인해야 합니다
긴핀이 (+) 짧은핀이 (-) 입니다
LED를 점등시키는 배선을 할때는 적당한 용량의 막대저항을 같이 사용해 줍니다
이유는 전압이 높아지면 전류가 많이 흐르게 되고 이로인해 LED가 손상이 될수 있기 때문입니다
자세한 것은 '저항의 기능과 용도' 포스팅을 참고 합시다

TTP224 는 터치센서 터치시 Arduino IDE 시리얼 모니터로 출력값을 확인해 보는 소스 입니다
각각의 숫자의 터치패드 터치시 "(터치패드 번호) is pressed" 가 출력 됩니다

TTP224 LEDS 는 터치센서 터치시 배선된 4개의 LED 를 점등 시켜보는 소스입니다

옆 터치패드를 건드리지 안 도록 하면서 터치패드를 터치해보면 각각의 터치패드에 연결된 LED가 점등 됩니다
(3색 RGB LED와 Buzzer 배선시 동일한 예제로 테스트 하면 됩니다, 이때 부저는 4번 터치패드를 누르면 울리도록

아두이노 9번핀에 연결해 주면 됩니다)

TTP224 Servo 는 터치센서 터치시 배선된 SG90 마이크로 서보모터의 회전각을 변화시켜 보는 소스입니다

옆 터치패드를 건드리지 안 도록 하면서 터치패드를 터치해보면 1~4번 각각의 터치패드 터치시 SG90 서보모터가
1번(60도), 2번(90도), 3번(120도), 4번(180도)로 회전합니다


TTP224 예제코드를 살펴보면
void setup()
{
 Serial.begin(9600);
 pinMode(2,INPUT);
 pinMode(3,INPUT);
 pinMode(4,INPUT);
 pinMode(5,INPUT);
}

셋업에서 2,3,4,5 로 터치센서 핀모드를 세팅합니다

void loop()
{
 int touch1=digitalRead(2);
 int touch2=digitalRead(3);
 int touch3=digitalRead(4);
 int touch4=digitalRead(5);
 if (touch1== HIGH)
 {
   Serial.println("1 is pressed");
}
delay(200);
if (touch2== HIGH)
 {
   Serial.println("2 is pressed");
}
delay(200);
if (touch3== HIGH)
 {
   Serial.println("3 is pressed");
}
delay(200);
if (touch4== HIGH)
 {
   Serial.println("4 is pressed");
}
delay(200);
}
반복 루프에서 2,3,4,5에 배선된 터치패드를 터치시 HIGH 가되면 출력값을 출력해 줍니다
각각의 숫자의 터치패드 터치시 "(터치패드 번호) is pressed" 가 출력 됩니다


TTP224 LEDS
예제코드를 살펴보면
int led1 = 3;
int sensor1 = 2;
1번 터치패는 아두이노 2번핀, LED는 아두이노 3번핀에 세팅
int led2 = 5;
int sensor2 = 4;
2번 터치패는 아두이노 4번핀, LED는 아두이노 5번핀에 세팅
int led3 = 7;
int sensor3 = 6;
3번 터치패는 아두이노 6번핀, LED는 아두이노 7번핀에 세팅
int led4 = 9;
int sensor4 = 8;
4번 터치패는 아두이노 8번핀, LED는 아두이노 9번핀에 세팅

void setup()
{
pinMode(led1, OUTPUT);
pinMode(sensor1, INPUT);
pinMode(led2, OUTPUT);
pinMode(sensor2, INPUT);
pinMode(led3, OUTPUT);
pinMode(sensor3, INPUT);
pinMode(led4, OUTPUT);
pinMode(sensor4, INPUT);
}

셋업에서 1-4번 터치패드의 입력값을 받아서 배선된 LED를 출력해 줍니다

void loop()
{
if( digitalRead(sensor1) == HIGH )
digitalWrite(led1, HIGH);
else
digitalWrite(led1, LOW);
delay(100);
반복 루프에서 if문을 사용해서 1-4번까지의 패드가 HIGH 가 될시 LED가 HIGH 로 점등됩니다

else 그밖의 경우는 LED가 LOW로 꺼집니다


TTP224 Servo 예제코드를 살펴보면
 #include <Servo.h>
  Servo Serv;

  int pinButton1=5; //Button1 pin
  int pinButton2=6; //Button2 pin
  int pinButton3=7; //Button3 pin
  int pinButton4=8; //Button4 pin
  int pinServo=3; //servo motor pin
  int val=0;
Servo 라이브러리를 사용하고 1-4번 터치패드를 아두이노 5-8번으로 세팅합니다
서보모터는 3번핀으로, Val=0 으로 세팅합니다

  void setup(){
    Serv.attach(pinServo);
  }
셋업에서 서보모터를 출력해 줍니다

void loop(){
    val = digitalRead(pinButton1);
    if (val ==0) { 
      Serv.write(0);
      delay(100);
    }
    else{
      Serv.write(60);
      delay(1000);
    }
반복 루프에서 1-4번까지의 터치패드의 val=0 일때 0도로 회전, else 그밖의 경우

(60도,90도,120도,180도)로 회전합니다
Serv.write(60); 이부분을 원하는 각도로 수정해서 테스트 해봅니다


프로젝트 동영상 - 터치센서 터치시 시리얼 모니터로 출력값 확인해 보기


프로젝트 동영상 - 터치센서 터치시 여러개의 LED 제어해 보기


프로젝트 동영상 - 터치센서 터치시 3색 RGB LED와 Buzzer 제어해 보기


프로젝트 동영상 - 터치센서 터치시 SG90 마이크로 서보모터 회전각 제어해 보기


이렇게 아두이노로 TTP224 터치센서 모듈을 사용해서 간단하게 LED나 부저 서보모터를 제어해 볼수 있습니다 

반응형

댓글