2019-10-31 11:51:41 [显示全部楼层]
8039浏览
查看: 8039|回复: 0

[项目] MPR121和arduino的那点事

[复制链接]
先说主题,就是做一个触控互动玩具。3D打印部分未列出,不在这次展示中。
选择的主控是Arduino,主要模块是mpr121
MPR121和arduino的那点事图1
MPR121芯片可以处理多达12个独立的触摸板。MPR121只支持I2C,几乎可以用任何微控制器实现。您可以使用ADDR引脚选择4个地址中的一个,一个I2C 2线总线上共有48个电容触摸板。使用该芯片比使用模拟输入进行电容式感应要容易得多:它可以处理所有的滤波器,并且可以配置为更多/更少的灵敏度。MPR121-12通道独立电容式触摸电路板实物截图:
MPR121和arduino的那点事图2
MPR121和arduino的那点事图3
主控我用的是arduino lilypad
MPR121和arduino的那点事图4
DFPlayer mini和128M SD卡一个
MPR121和arduino的那点事图5
8偶小喇叭一只
MPR121和arduino的那点事图7
因为mpr121的VCC是要求输入3.3V,而arduino lilypad VCC是输出5V,因此需要一个level shifter。把5V转为3.3V。给mpr121使用。
MPR121和arduino的那点事图6
下面是连线图
MPR121和arduino的那点事图8
代码编译通过
MPR121和arduino的那点事图9
[mw_shl_code=applescript,true]/********made by gada888***China Cool Man****2019-10-31****/
#include <SoftwareSerial.h>
#include <DFPlayer_Mini_Mp3.h>
#include <MPR121.h>


#define nums 2     

void setup () {
  Serial.begin (9600);

  mp3_set_serial (Serial);        
  delay(1);                       
  mp3_set_volume (20);            // Volume 0 ~ 30

  MPR121.begin(0x5a);             // MPR121 touch address 0x5a
  MPR121.setInterruptPin(4);      
  MPR121.setTouchThreshold(40);   
  MPR121.setReleaseThreshold(15);
  MPR121.updateTouchData();      
}


void loop () {
  if (MPR121.touchStatusChanged()) {
    MPR121.updateTouchData();
    if (MPR121.isNewTouch(0))     
     mp3_play (1);
    if (MPR121.isNewTouch(1))     
    mp3_play (2);
  }
  DeMPR121();
}

void DeMPR121() {
    MPR121.updateBaselineData();            
  MPR121.updateFilteredData();            
  Serial.print("Count: ");
  for (int i = 0; i < 2; i++) {        
    Serial.print(MPR121.getBaselineData(i) - MPR121.getFilteredData(i), DEC);
    if (i < 2) Serial.print(" ");
  }
  Serial.println();
}

[/mw_shl_code]



下载附件lib.rar
下载附件MP3.rar
视频晚分享





您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail