Touch Based Door Lock System Using Arduino:
In this project of we will learn How to design Touch-Based Door Lock System Using Arduino & Touch Sensor TTP223. Door Lock System using Arduino & TTP223 Capacitive Touch Sensor Switch is a simple project for switching circuit, i.e switching the servo motor on/off with the help of simple touch. The door can be locked or unlocked just by simply touching. We are using Touch Sensor TTP223 as a switch and LCD to display the status of door lock and LED to indicate on/off status as well.
The application area of this project is home and office where a simple touch can open and close the door. Interfacing touch sensor TTP223 with Arduino acts as a switch for unlocking the door.
Before starting you can check our previous project Touch Detector using Arduino TTP223 Capacitive Touch Sensor Switch
TTP223 CAPACITIVE TOUCH SENSOR
Introduction:
A capacitive touch sensor module based on the dedicated TTP223 touch sensor IC. The module provides a single integrated touch sensing area of 11 x 10.5mm with a sensor range of ~5mm. An on-board LED will give a visual indication of when the sensor is triggered. When triggered the module’s output will switch from its idle low state to high (default operation). Solder jumpers allow for reconfiguring its mode of operation to be either active low or toggle output.
Internal Structure:
TTP223 is 1 Key Touch pad detector IC, and it is suitable to detect capacitive element variations. It consumes very low power and the operating voltage is only between 2.0V~5.5V. The response time max about 60mS at fast mode, 220mS at low power mode @VDD=3V. Sensitivity can adjust by the capacitance(0~50pF) outside.
Working Mechanism of TTP223 Capacitive Touch Sensor
Capacitive screens do not use the pressure of your finger to create a change in the flow of electricity. Instead, they work with anything that holds an electrical charge – including human skin.
When a finger hits the screen a tiny electrical charge is transferred to the finger to complete the circuit, creating a voltage drop on that point of the screen. The software processes the location of this voltage drop and orders the ensuing action.
Components Required
1. Arduino Uno Board
2. TTP223 Capacitive Touch Sensor
3. 16X2 LCD Display
4. SG90 Servo Motor
5. LED
6. Resistor 330 ohm
7. Breadboard
8. Connecting Wires
Circuit Diagram & Connections
Connect the signal pin of TTP223 Touch Sensor to Arduino Digital Pin 7.
Connect servo motor signal pin to Arduino Digital Pin 3.
Connect the LED to Arduino Digital Pin 5 via a 330-ohm resistor.
Connect the LCD to analog pin A0, A1, A2, A3, A4, A5 of Arduino as shown in the figure.
Practical Working of the Project:
After the Code Uploaded the, the LCD will display
|
1 2 |
Touch Based Door Lock System |
The Servo Motor will reset to the original position.
If the Touch Sensor is Touched, the LCD will display 2 Lines
|
1 2 |
Status: Unlocked Touch to Lock |
Similarly, Servo Motor will rotate by 180 degrees, and LED will glow.
If the Touch Sensor is Touched again, the LCD will display 2 Lines
|
1 2 |
Status: Locked Touch to Unlock |
Similarly, Servo Motor will rotate reversely by 180 degrees a and LED will get off.
You can see these in the photos below.
Source Code/Programs:
Here is a code for Touch-Based Door Lock System Using Arduino & Touch Sensor TTP223. Copy the code, the compile, and upload it to Arduino UNO Board.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
#include<LiquidCrystal.h> LiquidCrystal lcd(A0,A1,A2,A3,A4,A5); const int servoPin = 3; // Servo pin const int touchPin = 7; // Pushtouch pin int ledPin = 5; int touchState = 0; int directionState = 0; Servo myservo; int pos = 0; void setup() { lcd.begin(16,2); lcd.print(" Touch Based"); lcd.setCursor(0, 1); lcd.print("Door Lock System"); myservo.attach(3); pinMode(touchPin, INPUT); pinMode(ledPin, OUTPUT); } void loop(){ touchState = digitalRead(touchPin); if (directionState == 0){ if (touchState == HIGH) { directionState = 1; for(pos = 0; pos < 180; pos += 1) digitalWrite(ledPin,1); lcd.clear(); lcd.print("Status: Unlocked"); lcd.setCursor(0, 1); lcd.print("Touch to Lock"); { myservo.write(pos); delay(15); // waits 15ms to reach the position } } } else if (directionState == 1) { if (touchState == HIGH) { directionState = 0; for (pos = 180; pos>=1; pos -=1) digitalWrite(ledPin,0); lcd.clear(); lcd.print("Status: Locked"); lcd.setCursor(0, 1); lcd.print("Touch to Unlock"); { myservo.write(pos); delay(15); } } } } |












2 Comments
why is nothing working for me no leds are turning on nothing will work please if anyone could help me that would be 100% helpful and i would be very thankful… Thankyou!
Anthony Include Servo.h library so it will work comment when it works