在某些应用中,需要用户输入来控制设备的功能。嵌入式和数字电子设备中使用了多种用户输入方法。触摸传感器就是其中之一。触摸传感器是与微控制器接口的重要且广泛使用的输入设备,它使输入数据变得更加简单。在各个地方都可以使用触摸传感器,无论它是手机还是LCD监视器开关。但是,市场上有很多类型的传感器,但是电容式触摸传感器是触摸传感器领域中使用最广泛的类型。
在上一个教程中,我们已经完成了使用触摸传感器和8051单片机进行光控制的任务。现在,在该项目中,同一触摸传感器将与Arduino UNO接口。Arduino是一种广泛流行且易于使用的开发板。
我们以前使用基于电容的触摸板和不同微控制器的基于触摸的输入方法,例如:
- 触摸键盘与ATmega32单片机的接口
- 带有Raspberry Pi的电容式触摸板
触控感应器
该项目将使用的触摸传感器是电容式触摸传感器模块,传感器驱动器基于驱动器IC TTP223。 TTP223 IC的工作电压为2 V至5.5 V,触摸传感器的电流消耗非常低。由于价格低廉,电流消耗低且易于集成支持,因此带有TTP223的触摸传感器在电容式触摸传感器领域变得很流行。
在上图中,显示了传感器的两侧,其中引脚图清晰可见。它还具有一个焊接跳线,可用于根据输出重新配置传感器。跳线为A和B。默认配置或焊料跳线的默认状态下,触摸传感器时,输出从LOW变为HIGH。但是,如果设置了跳线并重新配置了传感器,则当触摸传感器检测到触摸时,输出会更改其状态。触摸传感器的灵敏度也可以通过更换电容器来配置。有关详细信息,请浏览TTP 223的数据表,这将非常有用。
下图显示了不同跳线设置下的不同输出-
跳线A | 跳线B | 输出锁定状态 | 输出TTL电平 |
打开 | 打开 | 无锁 | 高 |
打开 | 关 | 自锁 | 高 |
关 | 打开 | 无锁 | 低 |
关 | 关 | 自锁 | 低 |
对于此项目,传感器将用作出厂配置下可用的默认配置。
可以通过使用触摸传感器并将其与微控制器接口来控制设备。在该项目中,触摸传感器将用于通过Arduino UNO和Relay将灯泡控制为ON或OFF。
了解中继
要连接继电器,必须对继电器的引脚说明有一个清晰的了解。继电器的引脚排列可以在下图中看到-
常开常开,常闭连接。 L1和L2是继电器线圈的两个端子。不施加电压时,继电器关闭,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 pc
- 4.7k电阻-1个
- BC549B晶体管
- TTP223传感器模块
- 1N4007二极管
- 灯泡与灯泡持有人
- 面包板
- 手机充电器,可通过USB电缆连接Arduino。
- 许多连接线或冰山电线。
- Arduino编程平台。
2k电阻BC549B,1N4007和继电器可以用继电器模块替换。
电路原理图
将触摸传感器与Arduino连接的原理图很简单,如下所示,
晶体管用于打开或关闭继电器。这是由于Arduino GPIO引脚无法提供足够的电流来驱动继电器。在继电器打开或关闭情况下,需要1N4007来阻止EMI。二极管起续流二极管的作用。触摸传感器与Arduino UNO板连接。
该电路是使用Arduino在面包板上构建的,如下所示。
在下面的示意图中可以看到正确的面包板连接。
编程Arduino UNO以使用触摸传感器控制灯泡
最后给出了完整的程序以及可运行的视频。在这里,我们解释了代码的几个重要部分。Arduino UNO将使用Arduino IDE进行编程。首先,包含Arduino库以访问Arduino的所有默认功能。
#包括
定义将要连接继电器和触摸传感器的所有引脚号。此处,触摸传感器连接到引脚A5。还使用内置的LED,该LED直接在板上连接到引脚13。继电器连接到引脚A4。
/ * *引脚说明 * / int Touch_Sensor = A5; 内置LED = 13; int继电器= A4;
定义引脚模式,即引脚功能应作为输入还是输出。此处将触摸传感器作为输入。继电器和LED引脚输出。
/ * *引脚模式设置 * / void setup(){ pinMode(Touch_Sensor,INPUT); pinMode(LED,输出); pinMode(继电器,输出); }
声明了两个整数,其中“条件”用于保持传感器的条件(无论是否触摸)。“状态”用于保持LED和继电器的状态(打开或关闭)。
/ * *程序流说明 * / int条件= 0; int状态= 0; //保持开关状态。
触摸传感器在被触摸时会将逻辑0更改为1。这由 digitalRead() 函数读取,并且该值存储在条件变量中。当条件为1时,LED和继电器的状态将更改。但是,为了准确检测触摸,使用了防抖动延迟。去抖延迟 ,delay(250); 用于确认单点触摸。
void loop(){ condition = digitalRead(A5); //从Arduino的A5引脚读取数字数据。 if(condition == 1){ delay(250); //反跳延迟。 if(condition == 1){ 状态=〜状态; //更改开关的状态。 digitalWrite(LED,状态); digitalWrite(Relay,state); } } }
测试触摸传感器TTP223的工作
在连接有低功率灯泡的面包板上测试该电路。
请注意,该项目使用230-240V交流电压,因此建议在使用灯泡时要小心。如果您有任何疑问或建议,请在下面评论。