Touch Sensor Interfacing with LPC2148 (TTP223B)

In this tutorial we are going to discuss Touch Sensor Interfacing with LPC2148 (TTP223B).

Prerequisites

Before start this tutorial we should know below topics. If you know already, please go further.

Components Required

Introduction

The TTP223B is a Digital touch pad detector IC which offers 1 touch key. The touching detection IC is designed for replacing traditional direct button key with diverse pad size. This device uses your body as part of the circuit.

When you touch the sensor pad, the capacitance of the circuit is changed and is detected.  That detected change in capacitance results in the output changing states. In the normal state, the module output  low, low power consumption; When a finger touches the corresponding position,  the module output high, if not touched for 12 seconds, switch to low-power mode.

Specification

  • Operating voltage 2.0V~5.5V
  • ƒOperating current @VDD=3V, no load, SLRFTB=1,At low power mode typical 1.5uA, maximum 3.0uA and At fast mode typical 3.5uA, maximum 7.0uA
  • Operating current @VDD=3V, no load, SLRFTB=0,At low power mode typical 2.0uA, maximum 4.0uA and At fast mode typical 6.5uA, maximum 13.0uA
  • The response time max about 60mS at fast mode, 220mS at low power mode @VDD=3V
  • Provides Fast mode and Low Power mode selection by pad option(LPMB pin)
  • Operating Temperature:-20 ~ +70 ℃

Touch Sensor Pin Outs

Like  a lot of the sensors out there, this is three pin sensor.  You provide, power, ground and monitor the output.

  • SIG – Output (If it detects touch, this will be HIGH otherwise LOW)
  • VCC – 2v to 5.5v
  • GND – Ground

Touch Sensor Interfacing with LPC2148

Connection

Touch Sensor

  • Vcc – 5v
  • Gnd – Ground
  • Sig – P1.24

LCD

  • RS – P0.8
  • RW – P0.9
  • EN – P0.10
  • Data Lines – P0.0 – P0.7

 

Touch Sensor Interfacing with LPC2148

Source Code

If this sensor detects any touch, LCD will display “Touch Detected”.

#include<lpc214x.h>
#define bit(x) (1<<x)
#define delay for(i=0;i<7000;i++);
 
#define TOUCH (IO1PIN & (1<<24))
 
unsigned int i;
 
void lcd_int();
void dat(unsigned char);
void cmd(unsigned char);
void string(unsigned char *);
 
void main()
{
    IO0DIR =0XFFF;
    IO1DIR = 0x0;
    lcd_int();
    cmd(0x80);
    string("EMBETRONICX.COM ");
    while(1) {
            if(TOUCH) {  
                    string("Touch Detected");
            }
            delay;delay;
            cmd(0x01);
    }
}
 
void lcd_int()
{
    cmd(0x38);
    cmd(0x0c);
    cmd(0x06);
    cmd(0x01);
    cmd(0x80);
}
 
void cmd(unsigned char a)
{
    IO0PIN&=0x00;
    IO0PIN|=(a<<0);
    IO0CLR|=bit(8);                //rs=0
    IO0CLR|=bit(9);                //rw=0
    IO0SET|=bit(10);               //en=1
    delay;
    IO0CLR|=bit(10);               //en=0
}
 
void dat(unsigned char b)
{
    IO0PIN&=0x00;
    IO0PIN|=(b<<0);
    IO0SET|=bit(8);                //rs=1
    IO0CLR|=bit(9);                //rw=0
    IO0SET|=bit(10);               //en=1
    delay;
    IO0CLR|=bit(10);               //en=0
}
 
void string(unsigned char *p)
{
    while(*p!='\0') {
        dat(*p++);
    }
}

References

0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
1
0
Would love your thoughts, please comment.x
Ads Blocker Image Powered by Code Help Pro
Ad Blocker Detected!!!

It seems you are using adblocking software that prevents the page from fully loading.

The revenue we earn by advertisements is used to manage this website. Still, If you want to disable the ads, please become a premium member. Ads are disabled for Premium members.

Or please add www.embetronicx.com to your ad blocker whitelist or disable your adblocking software and reload the page.

Note: Please disable the ad blocker to access the membership pages also.

False Detection? Please write a mail to [email protected]

 
Refresh