MPR121 เป็นตัวควบคุมเซ็นเซอร์สัมผัสแบบ capacitive ที่สามารถตรวจจับขั้วไฟฟ้าที่ไวต่อการสัมผัสได้สูงสุด 12 มักใช้ในอินเทอร์เฟซที่ไวต่อการสัมผัสเครื่องดนตรีและโครงการเชิงโต้ตอบอื่น ๆ ในบทช่วยสอนนี้เราจะแสดงวิธีการเชื่อมต่อและใช้ MPR121 กับ Arduino เพื่อสร้างแอปพลิเคชันแบบสัมผัส
สิ่งที่คุณต้องการ
- โมดูลเซ็นเซอร์สัมผัส MPR121
- คณะกรรมการ Arduino (เช่น Uno, Mega, Nano)
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่ติดตั้ง 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 ช่วยให้การทำงานกับเซ็นเซอร์ง่ายขึ้น
ขั้นตอนในการติดตั้ง:
- เปิด Arduino IDE
- ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
- ค้นหา "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: ทดสอบการตั้งค่า
- เชื่อมต่อ Arduino กับคอมพิวเตอร์ของคุณผ่าน USB
- เปิด Arduino IDE และเลือกที่ถูกต้อง กระดาน และ ท่าเรือ ภายใต้ เครื่องมือ เมนู.
- อัปโหลดรหัสไปยัง Arduino โดยคลิก อัพโหลด.
- เปิดมอนิเตอร์อนุกรม (เครื่องมือ > จอภาพอนุกรม) และตั้งค่าอัตราการรับส่งข้อมูลเป็น
9600
. - แตะอิเล็กโทรดบนโมดูล MPR121 และสังเกตการตรวจสอบอนุกรมสำหรับอินพุตสัมผัสที่ตรวจพบ
ตัวเลือก: การใช้ IRQ PIN สำหรับการขัดจังหวะ
พิน IRQ สามารถใช้เพื่อกระตุ้นการขัดจังหวะเมื่อตรวจพบการสัมผัสลดความจำเป็นในการสำรวจความคิดเห็นของเซ็นเซอร์อย่างต่อเนื่อง
- เชื่อมต่อ
IRQ
PIN ของ MPR121 ไปยังพินดิจิตอลบน Arduino (เช่น PIN 2) - ปรับเปลี่ยนรหัสเพื่อแนบการตรวจจับการขัดจังหวะและจับการสัมผัสในรูทีนบริการขัดจังหวะ (ISR)
แอปพลิเคชันของ MPR121
- อินเทอร์เฟซสัมผัสแบบ capacitive
- เครื่องดนตรี
- การติดตั้งงานศิลปะแบบโต้ตอบ
- การควบคุมตามท่าทาง
การแก้ไขปัญหา
- ไม่มีการตอบสนองจากเซ็นเซอร์: ตรวจสอบการเชื่อมต่อและที่อยู่ I2C
- การตรวจจับการสัมผัสที่ไม่สอดคล้องกัน: ตรวจสอบให้แน่ใจว่าขั้วไฟฟ้าสะอาดและเชื่อมต่ออย่างเหมาะสม
- ข้อผิดพลาดของห้องสมุด: ยืนยันว่ามีการติดตั้งไลบรารี Adafruit MPR121
บทสรุป
คุณประสบความสำเร็จในการเชื่อมต่อเซ็นเซอร์สัมผัส MPR121 capacitive กับ Arduino เซ็นเซอร์อเนกประสงค์นี้เปิดโอกาสให้สร้างโครงการแบบโต้ตอบและสัมผัสที่ไวต่อการสัมผัส ทดลองกับการออกแบบอิเล็กโทรดและการกำหนดค่าที่แตกต่างกันเพื่อขยายการทำงาน!