MPR121 to pojemnościowy kontroler czujnika dotykowego, który może wykryć do 12 elektrod wrażliwych na dotyk. Jest powszechnie stosowany w wrażliwych na dotyk interfejsach, instrumentach muzycznych i innych interaktywnych projektach. W tym samouczku pokażemy, jak połączyć się i używać MPR121 z Arduino do tworzenia aplikacji dotykowych.
Czego będziesz potrzebować
- Moduł czujnika dotykowego MPR121
- Arduino Board (np. UNO, Mega, Nano)
- Druty chleba i skoczków
- Komputer z zainstalowanym Arduino IDE
Krok 1: Zrozumienie modułu MPR121
MPR121 wykorzystuje komunikację I2C do interfejsu z mikrokontrolerem. Ma 12 wrażliwych na dotyk danych wejściowych, które mogą wykryć zmiany pojemnościowe, gdy obiekt przewodzący (np. Palcem) znajduje się w pobliżu elektrod.
MPR121 Pinout
Szpilka | Funkcjonować |
---|---|
VCC | Zasilacz (3,3 V/5 V) |
GND | Grunt |
SDA | I2C Linia danych |
Scl | Linia zegara I2C |
Irq | Wyjście przerwania (opcjonalnie) |
Krok 2: Okablowanie MPR121 do Arduino
Oto jak połączyć MPR121 z Arduino Uno:
Pin MPR121 | PIN Arduino |
---|---|
VCC | 5v |
GND | GND |
SDA | A4 (SDA) |
Scl | A5 (SCL) |
IRQ (opcjonalnie) | Nie połączone |
Notatka: W przypadku innych tablic Arduino zweryfikuj szpilki I2C w dokumentacji swojej tablicy.
Krok 3: Zainstaluj wymaganą bibliotekę
Biblioteka Adafruit MPR121 upraszcza pracę z czujnikiem.
Kroki do zainstalowania:
- Otwórz Arduino IDE.
- Idź do Naszkicować > Uwzględnij bibliotekę > Zarządzaj bibliotekami.
- Wyszukaj „Adafruit MPR121” i kliknij Zainstalować.
Krok 4: Prześlij kod
Oto przykład szkicu do wykrywania wejść dotykowych z 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
}
Krok 5: Przetestuj konfigurację
- Podłącz Arduino do komputera za pomocą USB.
- Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
- Prześlij kod do Arduino, klikając Wgrywać.
- Otwórz monitor szeregowy (Narzędzia > Monitor szeregowy) i ustaw wskaźnik transmisji na
9600
. - Dotknij elektrod na module MPR121 i obserwuj monitor szeregowy dla wykrytych wejść dotykowych.
Opcjonalnie: Korzystanie z PIN IRQ do przerwań
Pin IRQ może być użyty do wywołania przerwania po wykryciu dotyku, zmniejszając potrzebę ciągłego ankietowania czujnika.
- Podłącz
IRQ
PIN MPR121 do cyfrowego szpilki na Arduino (np. Pin 2). - Zmodyfikuj kod, aby dołączyć przerwanie i obsłużyć wykrywanie dotykowe w procedurze usługi przerwania (ISR).
Zastosowania MPR121
- Pojemne interfejsy dotykowe
- Instrumenty muzyczne
- Interaktywne instalacje artystyczne
- Kontrole oparte na gestach
Rozwiązywanie problemów
- Brak odpowiedzi od czujnika: Sprawdź połączenia i adres I2C.
- Niespójne wykrywanie dotyku: Upewnij się, że elektrody są czyste i odpowiednio podłączone.
- Błędy biblioteczne: Potwierdź, że instalowana jest biblioteka Adafruit MPR121.
Wniosek
Z powodzeniem połączyłeś pojemnościowy czujnik dotykowy MPR121 z Arduino. Ten wszechstronny czujnik otwiera możliwości tworzenia interaktywnych i wrażliwych na dotyk projektów. Eksperymentuj z różnymi projektami elektrod i konfiguracji, aby rozszerzyć swoją funkcjonalność!