4路TTP224电容式触摸模块 人体数字触摸传感器
1、板载TTP224电容式4键触摸感应IC
2、板载4路电平状态指示灯
3、工作电压:2.4V-5.5V
4、模块可以设置输出模式、键输出模式、最长输出时间和快速/低功耗选择
5、PCB板子尺寸:35(mm)x29(mm)
模块电原理图
/*
【Arduino】66种传感器模块系列实验(81)
实验八十三: 4路TTP224电容式触摸模块 人体数字触摸传感器
对应按键输出数字
*/
int i;
void setup()
{
for(i=4; i<=7; i++)
{
pinMode(i, INPUT);
}
Serial.begin(9600);
}
void loop()
{
for(i=4; i<=7; i++)
{
if(digitalRead(i) == HIGH)
{
Serial.println(i-3);
}
}
delay(100);
}
/*
【Arduino】66种传感器模块系列实验(81)
实验八十三: 4路TTP224电容式触摸模块 人体数字触摸传感器
程序之二,稳定性很好,不易误触发
模块上的1,2,3,4对应于单片机上的7,6,5,4
其中引入了布尔型M,主要是为了实现,在按下到松开这个过程中,
仅输出一次高电平,即输出语句只输出一句,来避免一直输出。
*/
#include <Arduino.h>
int i;
boolean m=true;
void setup()
{
Serial.begin(9600);
}
void loop()
{
if(m==true){
for(i=0;i<5;i++){
if(digitalRead(8-i)==1){
delay(50);
if(digitalRead(8-i)==1){
Serial.print("hello ");
Serial.print(i);
Serial.println(" ---");
m=false;
}
}
}
}
if(digitalRead(4)==0 && digitalRead(5)==0 && digitalRead(6)==0 && digitalRead(7)==0)
{m=true;}
}
/*
【Arduino】66种传感器模块系列实验(81)
实验八十三: 4路TTP224电容式触摸模块 人体数字触摸传感器
程序之三,使用4路触控模块的其中3个开关,当作LED灯的开关、调亮和调暗控制界面
*/
const byte LED_PIN = 5; // LED灯的接脚
const byte PWR_LED = 13; // 电源指示灯的接脚
bool powerOn = false; // LED电源是否开启,默认“否”
bool btnStatus; // 按钮状态
int pwmVal = 0; // 电源输出值
// 宣告触键的自订结构类型
typedef struct {
byte pin; // 按键的接脚编号
bool lastStatus;// 上次的状态
} key;
// 宣告电源键的接脚和默认状态
key powerKey = { 10, LOW };
// 宣告“调亮”键的接脚和默认状态
key upKey = { 11, LOW };
// 宣告“调暗”键的接脚和默认状态
key downKey = { 12, LOW };
void setup() {
Serial.begin(9600);
pinMode(powerKey.pin, INPUT);
pinMode(upKey.pin, INPUT);
pinMode(downKey.pin, INPUT);
pinMode(LED_PIN, OUTPUT);
pinMode(PWR_LED, OUTPUT);
}
void loop() {
// 读取电源键的状态
btnStatus = digitalRead(powerKey.pin);
// 如果电源键的讯号从低电位变成高电位…
if (btnStatus && powerKey.lastStatus == LOW) {
powerOn = !powerOn;// 反相电源状态
digitalWrite(PWR_LED, powerOn);
if (powerOn) {// 若powerOn为true…
// 依照pwmVal的值点亮LED
analogWrite(LED_PIN, pwmVal);
} else {
// 关闭LED灯
digitalWrite(LED_PIN, LOW);
}
}
// 纪录这次的电源键讯号状态
powerKey.lastStatus = btnStatus;
// 读取“调亮”键的状态
btnStatus = digitalRead(upKey.pin);
// 若“有开启电源”且“此按键讯号是高电位”且“前次讯号是低电位”
if (powerOn && btnStatus && upKey.lastStatus == LOW) {
// 增加亮度值,每次增加10,不能超过255。
if ((pwmVal+10) <= 255) { pwmVal += 10;
Serial.println(pwmVal);
analogWrite(LED_PIN, pwmVal); } }
upKey.lastStatus = btnStatus; // 读取“调暗”键的状态
btnStatus = digitalRead(downKey.pin);
if (powerOn && btnStatus && downKey.lastStatus == LOW) { // 减少亮度值,最低值为0
if ((pwmVal-10) >= 0) {
}
pwmVal -= 10;
Serial.println(pwmVal);
analogWrite(LED_PIN, pwmVal);
}
downKey.lastStatus = btnStatus;
}
实验八十四: 8位LED数码管MAX7219模块(支持级联八位串行3个IO口控制)
MAX7219
是一种集成化的串行输入/输出共阴极显示驱动器,它连接微处理器与8位数字的7段数字LED显示,也可以连接条线图显示器或者64个独立的LED。其上包括一个片上的B型BCD编码器、多路扫描回路,段字驱动器,而且还有一个8*8的静态RAM用来存储每一个数据。只有一个外部寄存器用来设置各个LED的段电流。
一个方便的四线串行接口可以联接所有通用的微处理器。每个数据可以寻址在更新时不需要改写所有的显示。MAX7219同样允许用户对每一个数据选择编码或者不编码。整个设备包含一个150μA的低功耗关闭模式,模拟和数字亮度控制,一个扫描限制寄存器允许用户显示1-8位数据,还有一个让所有LED发光的检测模式。只需要3个IO口即可驱动8位数码管!数码管显示时无闪烁!支持级联!