使用TTP223和Arduino UNO通过触摸控制家庭灯

描述

  在某些应用程序中,需要用户输入来控制设备的功能。嵌入式和数字电子产品中使用了不同种类的用户输入方法。触摸传感器就是其中之一。触摸传感器是与微控制器接口的重要且广泛使用的输入设备,它使输入数据更简单。触摸传感器有个别地方可以使用,无论是手机还是液晶显示器开关。然而,市场上有许多类型的传感器可用,但电容式触摸传感器是触摸传感器领域中广泛使用的类型。

  在这个项目中,相同的触摸传感器将与 Arduino UNO 接口。Arduino 是一种广受欢迎且易于使用的开发板。

  触摸传感器

  将用于本项目的触摸传感器是电容式触摸传感器模块,传感器驱动器基于驱动器IC TTP223。TTP223 IC 的工作电压为 2 V 至 5.5 V,触摸传感器的电流消耗非常低。由于价格低廉、电流消耗低且易于集成支持,采用 TTP223 的触摸传感器在电容式触摸传感器领域很受欢迎。

触摸传感器

  在上图中,传感器的两侧都显示了引脚图清晰可见的位置。它还有一个焊接跳线,可用于根据输出重新配置传感器。跳线为 A 和 B。默认配置或在焊锡跳线的默认状态下,触摸传感器时输出从 LOW 变为 HIGH。但是,当设置跳线并重新配置传感器时,当触摸传感器检测到触摸时,输出会改变其状态。触摸传感器的灵敏度也可以通过改变电容来配置。

  下图显示了不同跳线设置下的不同输出 -

触摸传感器

  对于本项目,传感器将用作出厂发布条件下可用的默认配置。

  设备可以通过使用触摸传感器以及与微控制器连接来控制。在这个项目中,触摸传感器将用于使用 Arduino UNO 和 Relay 来控制灯泡的开或关。

  了解继电器

  要连接继电器,重要的是要对继电器的引脚描述有一个清晰的认识。继电器的引脚排列如下图所示 -

触摸传感器

  NO常开,NC常接。L1 和 L2 是 Relay 线圈的两个端子。未施加电压时,继电器关闭,POLE 与 NC 引脚连接。当在线圈端子上施加电压时,继电器的 L1 和 L2 接通,POLE 与 NO 连接。因此,可以通过改变继电器的操作状态来打开或关闭 POLE 和 NO 之间的连接。强烈建议在应用前检查继电器规格。继电器在 L1 和 L2 两端具有工作电压。有些继电器使用 12V,有些使用 6V,有些使用 5V。不仅如此,NO、NC 和 POLE 还具有电压和电流额定值。对于我们的应用,我们在开关侧使用具有 250V、6A 额定值的 5V 继电器。

  所需组件

  Arduino UNO

  用于编程和供电的 USB 电缆

  标准立方继电器 - 5V

  2k电阻-1个

  4.7k 电阻器 - 1 个

  BC549B晶体管

  TTP223 传感器模块

  1N4007 二极管

  带灯座的灯泡

  面包板

  通过 USB 电缆连接 Arduino 的手机充电器。

  很多连接线或 berg 线。

  Arduino 编程平台。

  2k电阻,BC549B,1N4007,继电器可以用继电器模块代替。

  电路原理图

  将触摸传感器与 Arduino 连接的示意图很简单,如下所示,

触摸传感器

  晶体管用于打开或关闭继电器。这是因为 Arduino GPIO 引脚无法提供足够的电流来驱动继电器。在继电器开启或关闭的情况下,需要 1N4007 来阻断 EMI。该二极管用作续流二极管。触摸传感器与 Arduino UNO 板连接。

  该电路构建在带有 Arduino 的面包板上,如下所示。

触摸传感器

  正确的面包板连接可以在下面的示意图中看到。

触摸传感器

使用触摸传感器对 Arduino UNO 进行编程以控制灯泡

最后给出了带有工作视频的完整程序。在这里,我们将解释代码的几个重要部分。Arduino UNO 将使用 Arduino IDE 进行编程。首先,包含 Arduino 库以访问 Arduino 的所有默认功能。

 

#include 

 

定义将连接继电器和触摸传感器的所有引脚号。这里,触摸传感器连接到引脚 A5。内置的 LED 也被使用,它直接连接到板上的引脚 13。继电器连接到引脚 A4。

 

/* 
* 引脚说明
*/ 
int Touch_Sensor = A5; 
整数 LED = 13;
诠释继电器 = A4;

 

定义引脚模式,即引脚功能应该是输入还是输出。此处输入触摸传感器。继电器和 LED 引脚输出。

 

/* 
* 引脚模式设置
*/ 
void setup() { 
            pinMode(Touch_Sensor, INPUT); 
            pinMode(LED,输出);
            pinMode(继电器,输出);
}

 

声明了两个整数,其中“条件”用于保存传感器的条件,无论它是否被触摸。“状态”用于保持 LED 和继电器的状态,开或关。 

 

/* 
* 程序流程描述
*/ 
int condition = 0; 
整数状态 = 0;//保持开关状态。

 

触摸传感器在被触摸时将逻辑 0 更改为 1。这是由digitalRead()函数读取的,并且值存储在条件变量中。当条件为 1 时,LED 和继电器的状态发生变化。然而,为了准确检测触摸,使用了去抖动延迟。去抖动延迟,延迟(250);  用于确认单次触摸。

 

无效循环(){
            条件=数字读取(A5);// 从 Arduino 的 A5 引脚读取数字数据。
            如果(条件 == 1){
                        延迟(250);// 去抖动延迟。
                        如果(条件 == 1){
                                    状态 = ~state; // 改变开关的状态。
                                    数字写入(LED,状态);
                                    数字写入(继电器,状态);
                        } 
            } 
}

 

  测试触摸传感器 TTP223 的工作情况

  该电路在面包板上进行测试,并连接了一个低功率灯泡。

触摸传感器

  注意本项目使用230-240V交流电压,建议使用灯泡时要小心。
/*//=============================================== =================================//

* TTP223 与 Arduino 接口

* 日期:- 3-04-2019

* 作者:- 苏拉夫古普塔

* 对于:- circuitdigest.com

*///=============================================== ================================//



#include



//#define ON 1

//#定义关闭 0



/*

* 引脚说明

*/

int Touch_Sensor = A5;

整数 LED = 13;

诠释继电器 = A4;



/*

* 程序流程说明

*/

整数条件 = 0;

整数状态 = 0;//保持开关状态。



/*

* 引脚模式设置

*/

无效设置(){

pinMode(触摸传感器,输入);

pinMode(LED,输出);

pinMode(继电器,输出);

}



无效循环(){

条件=数字读取(A5);// 从 Arduino 的 A5 引脚读取数字数据。



如果(条件 == 1){

延迟(250);// 去抖动延迟。

如果(条件 == 1){

状态=〜状态;// 改变开关的状态。

数字写入(LED,状态);

数字写入(继电器,状态);

}

}

}

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分