마음 속 하늘은 항상 맑음~!

TTP223 터치 스위치 회로. 본문

기타

TTP223 터치 스위치 회로.

파르셀수스 2019. 11. 2. 19:45

 앞부분은 간단한 전원부인데 2.5V 레퍼런스 전압을 얻을 수 있는 TL431를 응용하여 5V전압을 만들어낸다. 소전력 회로라서 추천은 하지 않는 방식.

 TTP223 모듈을 외부에서 연결하는데 이 모듈은 터치에 대한 값을 IO핀을 통해서 내보낸다.

 ATTiny85는 3번에서 신호를 받는데, 외부 인터럽트 핸들링을 이용한다. 왜냐면 단지 논리값으로 유지되는 시간이 몇초 안되고 TTP223모듈의 B점퍼를 연결해도 딱히 좋은 효과가 나지 않기 때문.

 외부 인터럽트 핸들링이 가능한 다른 마이크로 컨트롤러를 사용해도 된다.

(편집) Hi Z 풀다운 저항 R6추가로 FET Gate가 Hi Z 상태일 경우에 On이 되고 적은 전류에도 발열이 나는 경우를 방지한다.

 

 아두이노로 작업한 간단한 코드는 다음과 같다.

#include <avr/io.h>
#include <avr/interrupt.h>

volatile byte state=LOW;
int IntPin=PCINT3;
int OutPin=4;

void setup() {
    cli();
    pinMode(OutPin, OUTPUT);
    digitalWrite(OutPin, LOW);
    state = LOW;
    PCMSK |= (1 << IntPin);
    GIMSK |= (1 << PCIE);

    DDRB &= ~(1 << DDB3);
    PORTB |= (1<< PB3);
    sei();
}

void loop() {
  //none
}

ISR(PCINT0_vect) {
  if((PINB >> PINB3)&1!=0) {
    state=!state;
  }
  digitalWrite(OutPin, state);
}

 ATTinyCore를 추가해서 컴파일하면 된다. 인터럽트 벡터에서 온오프 전환하고 있으며, 외부인터럽트를 가능하게 하고, 기본적으로 켜진 풀업을 꺼버리기 위해서 입력 PORTB의 PB3비트를 1로 만든다.

 출력은 PB4를 이용한다.

 너무 간단해서 다른 설명이 필요가 없다.

 

 

'기타' 카테고리의 다른 글

555 PWM 업데이트  (0) 2019.12.10
간단한 NCV 디텍터.  (0) 2019.11.24
기상 예보 스테이션.  (0) 2019.09.29
간단한 통신사 웹리다이렉션 방지 확장 프로그램.  (0) 2019.09.10
아두이노 ADC값 측정기.  (0) 2019.09.08