Jak używać pojemnościowego czujnika dotykowego MPR121 z Arduino

How to Use the MPR121 Capacitive Touch Sensor with Arduino

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ć

  1. Moduł czujnika dotykowego MPR121
  2. Arduino Board (np. UNO, Mega, Nano)
  3. Druty chleba i skoczków
  4. 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:

  1. Otwórz Arduino IDE.
  2. Idź do Naszkicować > Uwzględnij bibliotekę > Zarządzaj bibliotekami.
  3. 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ę

  1. Podłącz Arduino do komputera za pomocą USB.
  2. Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
  3. Prześlij kod do Arduino, klikając Wgrywać.
  4. Otwórz monitor szeregowy (Narzędzia > Monitor szeregowy) i ustaw wskaźnik transmisji na 9600.
  5. 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.

  1. Podłącz IRQ PIN MPR121 do cyfrowego szpilki na Arduino (np. Pin 2).
  2. Zmodyfikuj kod, aby dołączyć przerwanie i obsłużyć wykrywanie dotykowe w procedurze usługi przerwania (ISR).

Zastosowania MPR121

  1. Pojemne interfejsy dotykowe
  2. Instrumenty muzyczne
  3. Interaktywne instalacje artystyczne
  4. 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ść!

Zostaw komentarz

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.