电容式传感器和电感式传感器的区别包括以下内容。
(1)电容式传感器 | (2)电感式传感器 |
•电容式传感器使用电场检测物体。 •为了通过电容式传感器检测物体,物体不需要导电。 •这些传感器用于检测金属和非导电材料。 •电容式传感器的工作原理是,它测量称为电容的电气特性内的变化。 •电容式传感器有四种类型:微型、圆柱型、高温型和模拟型。 •它具有较低的开关频率。 •由于可能出现错误触发,准确性不佳。 •电容式传感器的检测范围为2至50mm。 | •电感式传感器使用磁场检测物体。 •为了通过电感式传感器检测物体,物体必须是导电的。 •该传感器用于检测金属物体。 •这些传感器根据电感原理的变化工作。 •电感式传感器有高频振荡、磁性和静电容量三种类型。 •它具有更高的开关频率。 •非常好的准确性。 •电感式传感器的检测范围为0.8至100mm。 |
与 Arduino 连接的电容式传感器
我们知道,电容式传感器只是检测周围环境的容量变化。该传感器响应含有一定导电性的不同材料,如金属和液体。某些类型的传感器也有机会调节灵敏度。这可以通过按钮或电位计来实现。
该传感器经常用于检测水箱内的水位、泄漏或管道内的气泡。此外,它还可以用作触摸传感器,金属探测器,否则就像门触点一样。
MPR121电容式触摸传感器与Arduino的接口如下所示。在此图中,MPR121模块用作电容式触摸传感器,这是一种高精度传感器。
该模块包括12个触摸按钮,支持I2C通信,因此可以轻松连接到任何微控制器。该板不包括任何稳压器,因此电源电压必须在 1.7 – 3.6VDC 之间。
MPR121 的引脚配置
MPR121电容式触摸传感器的引脚排列包括以下内容。该传感器模块包括左侧的 6 个引脚(如下所述)和右侧的 12 个引脚(0 到 11)是触摸按钮。
•VCC是3.3V等模块的电源。
•IRQ 是中断输出。
•SCL 是 I2C 协议的串行 CLK 输入。
•SDA 是 I2C 协议的串行数据 I/O。
•ADD是I2C协议的调整地址。
•GND 是接地端子。
该接口所需的硬件和软件组件主要包括Arduino UNO R3,MPR121接近电容式触摸传感器模块,公对母跳线和Arduino IDE。下面的接口图将展示如何通过连接线将Arduino Uno连接到MPR121模块。
建立电路连接后,转到库管理器并需要安装 Adafruit MPR121 库。之后,需要将以下代码上传到Arduino板,然后打开串行监视器。
/*
修改于 Jan 20, 2021
由 MehranMaleki 从 Arduino 示例修改
家
*/
#include <Wire.h>
#include “Adafruit_MPR121.h”
#ifndef _BV
#define _BV(位)(1 <<(位))
#endif
一条 i2c 总线上最多可以有 4 个,但一条足以进行测试!
Adafruit_MPR121上限 = Adafruit_MPR121();
跟踪最后接触的引脚
所以,我们知道按钮何时“释放”
上次接触uint16_t = 0;
uint16_t currtouched = 0;
无效设置 () {
串行开始(9600);
而(!串行) { // 需要防止莱昂纳多/微启动太快!
延迟(10);
}
Serial.println(“Adafruit MPR121电容式触摸传感器测试”);
默认地址为0x5A,如果连接到3.3V,则其0x5B
如果与SDA绑定,则0x5C,如果SCL则0x5D
if (!cap.begin(0x5A)) {
Serial.println(“找不到 MPR121,请检查接线?”);
而(1);
}
Serial.println(“MPR121 found!”);
}
void loop() {
获取当前触摸的垫
currtouched = cap.touched();
for (uint8_t i = 0; i < 12; i++) {
如果*被*触摸并且*以前没有*被触摸过,警报!
如果 ((currtouched & _BV(i)) && !(lasttouched & _BV(i)) ) {
Serial.print(i); Serial.print("触摸");
}
// 如果它*被*触摸过而现在*没有*,警告!
如果 (!(currtouched & _BV(i)) && (lasttouched & _BV(i)) ) {
Serial.println(" released");
}
}
// 重置我们的状态
lasttouched = currtouched;
// 注释掉这一行以获得来自传感器的详细数据!
返回;
// 调试信息,
Serial.print(“ 0x”); Serial.println(cap.touched(), HEX);
Serial.print(“过滤器:”);
对于 (uint8_t i = 0; i < 12; i++) {
Serial.print(cap.filteredData(i)); Serial.print(“ ”);
}
Serial.println();
Serial.print(“Base: ”);
for (uint8_t i = 0; i < 12; i++) {
Serial.print(cap.baselineData(i));Serial.print(“ ”);
}
Serial.println();
延迟一下,这样就不会让人不知所措
延迟(1000);
}
首先,此项目代码验证电容式传感器模块是否正确连接到Arduino板。之后,它会在串行监视器上显示每个键的触摸和释放。
相关传感器产品型号
•FUTEK MTA400 三轴称重传感器
•Bota Systems MiniONE微型六轴力扭矩传感器
•Adin Robotics AFT200-D80智能六轴力矩传感器
•美培亚三美 MMS101微型6分量力/六轴/力矩传感器
•FUTEK QMA142 六轴力矩传感器(薄型轻型)。
相关阅读: