วิธีใช้เซ็นเซอร์สัมผัส capacitive MPR121 กับ Arduino

How to Use the MPR121 Capacitive Touch Sensor with Arduino

MPR121 เป็นตัวควบคุมเซ็นเซอร์สัมผัสแบบ capacitive ที่สามารถตรวจจับขั้วไฟฟ้าที่ไวต่อการสัมผัสได้สูงสุด 12 มักใช้ในอินเทอร์เฟซที่ไวต่อการสัมผัสเครื่องดนตรีและโครงการเชิงโต้ตอบอื่น ๆ ในบทช่วยสอนนี้เราจะแสดงวิธีการเชื่อมต่อและใช้ MPR121 กับ Arduino เพื่อสร้างแอปพลิเคชันแบบสัมผัส


สิ่งที่คุณต้องการ

  1. โมดูลเซ็นเซอร์สัมผัส MPR121
  2. คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
  3. เครื่องหั่นขนมปังและสายจัมเปอร์
  4. คอมพิวเตอร์ที่ติดตั้ง Arduino IDE

ขั้นตอนที่ 1: ทำความเข้าใจโมดูล MPR121

MPR121 ใช้การสื่อสาร I2C เพื่อเชื่อมต่อกับไมโครคอนโทรลเลอร์ มันมีอินพุตที่ไวต่อการสัมผัส 12 ตัวที่สามารถตรวจจับการเปลี่ยนแปลง capacitive เมื่อวัตถุนำไฟฟ้า (เช่นนิ้ว) อยู่ใกล้ขั้วไฟฟ้า

mpr121 pinout

เข็มหมุด การทำงาน
VCC แหล่งจ่ายไฟ (3.3V/5V)
gnd พื้น
SDA สายข้อมูล i2c
SCL สายนาฬิกา i2c
IRQ เอาต์พุตขัดจังหวะ (ไม่บังคับ)

ขั้นตอนที่ 2: การเดินสาย MPR121 ถึง Arduino

นี่คือวิธีการเชื่อมต่อ MPR121 กับ Arduino Uno:

MPR121 PIN พิน Arduino
VCC 5V
gnd gnd
SDA A4 (SDA)
SCL A5 (SCL)
IRQ (ไม่บังคับ) ไม่ได้เชื่อมต่อ

บันทึก: สำหรับบอร์ด Arduino อื่น ๆ ให้ตรวจสอบหมุด I2C ในเอกสารของคณะกรรมการของคุณ


ขั้นตอนที่ 3: ติดตั้งไลบรารีที่ต้องการ

ห้องสมุด Adafruit MPR121 ช่วยให้การทำงานกับเซ็นเซอร์ง่ายขึ้น

ขั้นตอนในการติดตั้ง:

  1. เปิด Arduino IDE
  2. ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
  3. ค้นหา "Adafruit MPR121" แล้วคลิก ติดตั้ง.

ขั้นตอนที่ 4: อัปโหลดรหัส

นี่คือตัวอย่างตัวอย่างเพื่อตรวจจับอินพุตสัมผัสจาก MPR121:

#include <Wire.h>
#include "Adafruit_MPR121.h"

Adafruit_MPR121 mpr121 = Adafruit_MPR121();

void setup() {
  Serial.begin(9600);
  Serial.println("Initializing MPR121...");

  if (!mpr121.begin(0x5A)) { // Default I2C address is 0x5A
    Serial.println("MPR121 not found. Check connections.");
    while (1);
  }

  Serial.println("MPR121 initialized.");
}

void loop() {
  // Read touch status
  uint16_t touchStatus = mpr121.touched();

  for (uint8_t i = 0; i < 12; i++) {
    if (touchStatus & (1 << i)) {
      Serial.print("Electrode ");
      Serial.print(i);
      Serial.println(" touched.");
    }
  }

  delay(100); // Update every 100ms
}

ขั้นตอนที่ 5: ทดสอบการตั้งค่า

  1. เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
  2. เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
  3. อัปโหลดรหัสไปยัง Arduino โดยคลิก อัพโหลด.
  4. เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น 9600.
  5. แตะอิเล็กโทรดบนโมดูล MPR121 และสังเกตการตรวจสอบอนุกรมสำหรับอินพุตสัมผัสที่ตรวจพบ

ตัวเลือก: การใช้ IRQ PIN สำหรับการขัดจังหวะ

พิน IRQ สามารถใช้เพื่อกระตุ้นการขัดจังหวะเมื่อตรวจพบการสัมผัสลดความจำเป็นในการสำรวจความคิดเห็นของเซ็นเซอร์อย่างต่อเนื่อง

  1. เชื่อมต่อ IRQ PIN ของ MPR121 ไปยังพินดิจิตอลบน Arduino (เช่น PIN 2)
  2. ปรับเปลี่ยนรหัสเพื่อแนบการตรวจจับการขัดจังหวะและจับการสัมผัสในรูทีนบริการขัดจังหวะ (ISR)

แอปพลิเคชันของ MPR121

  1. อินเทอร์เฟซสัมผัสแบบ capacitive
  2. เครื่องดนตรี
  3. การติดตั้งงานศิลปะแบบโต้ตอบ
  4. การควบคุมตามท่าทาง

การแก้ไขปัญหา

  • ไม่มีการตอบสนองจากเซ็นเซอร์: ตรวจสอบการเชื่อมต่อและที่อยู่ I2C
  • การตรวจจับการสัมผัสที่ไม่สอดคล้องกัน: ตรวจสอบให้แน่ใจว่าขั้วไฟฟ้าสะอาดและเชื่อมต่ออย่างเหมาะสม
  • ข้อผิดพลาดของห้องสมุด: ยืนยันว่ามีการติดตั้งไลบรารี Adafruit MPR121

บทสรุป

คุณประสบความสำเร็จในการเชื่อมต่อเซ็นเซอร์สัมผัส MPR121 capacitive กับ Arduino เซ็นเซอร์อเนกประสงค์นี้เปิดโอกาสให้สร้างโครงการแบบโต้ตอบและสัมผัสที่ไวต่อการสัมผัส ทดลองกับการออกแบบอิเล็กโทรดและการกำหนดค่าที่แตกต่างกันเพื่อขยายการทำงาน!

แสดงความคิดเห็น

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.