電容式傳感器和電感式傳感器的區(qū)別包括以下內(nèi)容。
(1)電容式傳感器 | (2)電感式傳感器 |
?電容式傳感器使用電場檢測物體。 ?為了通過電容式傳感器檢測物體,物體不需要導(dǎo)電。 ?這些傳感器用于檢測金屬和非導(dǎo)電材料。 ?電容式傳感器的工作原理是,它測量稱為電容的電氣特性內(nèi)的變化。 ?電容式傳感器有四種類型:微型、圓柱型、高溫型和模擬型。 ?它具有較低的開關(guān)頻率。 ?由于可能出現(xiàn)錯誤觸發(fā),準(zhǔn)確性不佳。 ?電容式傳感器的檢測范圍為2至50mm。 | ?電感式傳感器使用磁場檢測物體。 ?為了通過電感式傳感器檢測物體,物體必須是導(dǎo)電的。 ?該傳感器用于檢測金屬物體。 ?這些傳感器根據(jù)電感原理的變化工作。 ?電感式傳感器有高頻振蕩、磁性和靜電容量三種類型。 ?它具有更高的開關(guān)頻率。 ?非常好的準(zhǔn)確性。 ?電感式傳感器的檢測范圍為0.8至100mm。 |
與 Arduino 連接的電容式傳感器
我們知道,電容式傳感器只是檢測周圍環(huán)境的容量變化。該傳感器響應(yīng)含有一定導(dǎo)電性的不同材料,如金屬和液體。某些類型的傳感器也有機會調(diào)節(jié)靈敏度。這可以通過按鈕或電位計來實現(xiàn)。
該傳感器經(jīng)常用于檢測水箱內(nèi)的水位、泄漏或管道內(nèi)的氣泡。此外,它還可以用作觸摸傳感器,金屬探測器,否則就像門觸點一樣。
MPR121電容式觸摸傳感器與Arduino的接口如下所示。在此圖中,MPR121模塊用作電容式觸摸傳感器,這是一種高精度傳感器。
該模塊包括12個觸摸按鈕,支持I2C通信,因此可以輕松連接到任何微控制器。該板不包括任何穩(wěn)壓器,因此電源電壓必須在 1.7 – 3.6VDC 之間。
MPR121 的引腳配置
MPR121電容式觸摸傳感器的引腳排列包括以下內(nèi)容。該傳感器模塊包括左側(cè)的 6 個引腳(如下所述)和右側(cè)的 12 個引腳(0 到 11)是觸摸按鈕。
?VCC是3.3V等模塊的電源。
?IRQ 是中斷輸出。
?SCL 是 I2C 協(xié)議的串行 CLK 輸入。
?SDA 是 I2C 協(xié)議的串行數(shù)據(jù) I/O。
?ADD是I2C協(xié)議的調(diào)整地址。
?GND 是接地端子。
該接口所需的硬件和軟件組件主要包括Arduino UNO R3,MPR121接近電容式觸摸傳感器模塊,公對母跳線和Arduino IDE。下面的接口圖將展示如何通過連接線將Arduino Uno連接到MPR121模塊。
建立電路連接后,轉(zhuǎn)到庫管理器并需要安裝 Adafruit MPR121 庫。之后,需要將以下代碼上傳到Arduino板,然后打開串行監(jiān)視器。
/*
修改于 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;
無效設(shè)置 () {
串行開始(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() {
獲取當(dāng)前觸摸的墊
currtouched = cap.touched();
for (uint8_t i = 0; i < 12; i++) {
如果*被*觸摸并且*以前沒有*被觸摸過,警報!
如果 ((currtouched & _BV(i)) && !(lasttouched & _BV(i)) ) {
Serial.print(i); Serial.print("觸摸");
}
// 如果它*被*觸摸過而現(xiàn)在*沒有*,警告!
如果 (!(currtouched & _BV(i)) && (lasttouched & _BV(i)) ) {
Serial.println(" released");
}
}
// 重置我們的狀態(tài)
lasttouched = currtouched;
// 注釋掉這一行以獲得來自傳感器的詳細數(shù)據(jù)!
返回;
// 調(diào)試信息,
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板。之后,它會在串行監(jiān)視器上顯示每個鍵的觸摸和釋放。
相關(guān)傳感器產(chǎn)品型號
?FUTEK MTA400 三軸稱重傳感器
?Bota Systems MiniONE微型六軸力扭矩傳感器
?Adin Robotics AFT200-D80智能六軸力矩傳感器
?美培亞三美 MMS101微型6分量力/六軸/力矩傳感器
?FUTEK QMA142 六軸力矩傳感器(薄型輕型)。
相關(guān)閱讀: