MPR121和arduino的那点事

2019-10-311.8万
AI 快速预览详细 收起
本文介绍了如何使用Arduino Lilypad和MPR121制作触控互动玩具。项目的主要硬件包括Arduino Lilypad、MPR121、DFPlayer mini和8欧小喇叭。文章详细说明了如何通过level shifter将Arduino Lilypad的5V输出转换为MPR121所需的3.3V输入,并提供了具体的连线图和代码示例。通过这个项目,初学者可以轻松实现多点触摸感应,适合STEM教育场景。
先说主题,就是做一个触控互动玩具。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
视频晚分享





创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(0)
- 没有更多了 -