亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

利用 MPR121 电容传感器在任意表面制作触控按键

项目简介

MPR121 是一款 12 通道电容触摸传感器,通过 I²C 接口与单片机通信。本项目演示如何用 Arduino UNO + MPR121 断出板,在任意非金属表面(木板、亚克力、纸张、甚至 Bare Conductive 导电漆绘制的图案)上制作触控按键,并控制一颗 LED 亮灭。

硬件清单

元器件数量备注
Arduino UNO1主控
Adafruit MPR121 电容触摸模块112 通道,I²C 地址可选 0x5A/0x5B/0x5C/0x5D
LED (任意颜色)1接 D3,配合电流限制电阻

关键技术点

接线图

利用 MPR121 电容传感器在任意表面制作触控按键

MPR121          Arduino UNO
VCC      →      3.3V (切勿接 5V!)
GND      →      GND
SDA      →      A4
SCL      →      A5
IRQ      →      D4 (中断引脚)
ADDR     →      GND (地址 0x5A)

示例代码:通道 0 触摸亮灯,通道 1 释放灭灯

#include <MPR121.h>
#include <Wire.h>

#define numElectrodes 2
#define LEDPIN 3

void setup() {
  Serial.begin(115200);
  Serial.println("System started");
  pinMode(LEDPIN, OUTPUT);
  Wire.begin();

  if (!MPR121.begin(0x5A)) {
    Serial.println("error setting up MPR121");
    switch (MPR121.getError()) {
      case NO_ERROR: Serial.println("no error"); break;
      case ADDRESS_UNKNOWN: Serial.println("incorrect address"); break;
      case READBACK_FAIL: Serial.println("readback failure"); break;
      case OVERCURRENT_FLAG: Serial.println("overcurrent on REXT pin"); break;
      case OUT_OF_RANGE: Serial.println("electrode out of range"); break;
      case NOT_INITED: Serial.println("not initialised"); break;
      default: Serial.println("unknown error"); break;
    }
    while (1);
  }

  MPR121.setInterruptPin(4);
  MPR121.setTouchThreshold(40);
  MPR121.setReleaseThreshold(20);
  MPR121.updateTouchData();
}

void loop() {
  if (MPR121.touchStatusChanged()) {
    MPR121.updateTouchData();
    for (int i = 0; i < numElectrodes; i++) {
      if (MPR121.isNewTouch(i)) {
        if (i == 0) digitalWrite(LEDPIN, HIGH);
      } else if (MPR121.isNewRelease(i)) {
        if (i == 1) digitalWrite(LEDPIN, LOW);
      }
    }
  }
}

创意应用案例

常见问题排查

  1. I²C 扫描不到设备:检查供电是否 3.3V、SDA/SCL 是否接反、ADDR 引脚连接、是否需要上拉电阻(模块通常已板载)
  2. 误触发频繁:增大触摸/释放阈值差值,缩短电极导线,远离大功率电源线
  3. 单通道无响应:确认电极未短路、未被大面积金属遮挡、库版本兼容
  4. 中断不触发:检查 IRQ 引脚连接、setInterruptPin() 参数、Arduino 引脚是否支持外部中断

扩展建议

制造工艺

  1. 树莓派与 AS3935 闪电检测传感器实战指南
  2. 树莓派仓鼠健身追踪器:激光断束传感器记录每日运动量
  3. IoT 与 MQTT 入门:免代码 ESP8266 教程
  4. Arduino 与树莓派 2 I2C 通信集成:打造物联网传感器项目的最佳搭档
  5. 从概念到现实:将创意设计转化为有形产品
  6. CNC车铣复合加工优势深度解析:多轴联动重塑制造效能
  7. 革命性DNA存储让日常物品变身耐久数据档案
  8. 6大实战策略将线索转化为忠诚客户——附真实案例
  9. 以人为本的供应链转型:提升效率与韧性
  10. 智能车床:触屏电子控制赋能精密加工
  11. 春季空压机大保养:五大维护要点保障旺季满负荷运行
  12. OmniFibers:调节呼吸助表现与恢复的智能织物