2.24 MPR121-Modul

Überblick

In dieser Lektion lernen Sie, wie Sie MPR121 verwenden. Dies ist eine gute Option, wenn Sie Ihrem Projekt viele Berührungsschalter hinzufügen möchten. Die Elektrode des MPR121 kann mit einem Leiter verlängert werden. Wenn Sie einen Draht mit einer Banane verbinden, können Sie die Banane in einen Berührungsschalter verwandeln und so Projekte wie ein Fruchtklavier realisieren.

Fritzing-Schaltung

In diesem Beispiel setzen wir MPR121 in das Steckbrett ein. Verbinden Sie GND von MPR121 mit GND, 3,3 V mit 3 V3, IRQ mit dem digitalen Pin 2, SCL mit Pin SCL (21) und SDA mit Pin SDA (20). Es gibt 12 Elektroden für die Berührungserkennung. Hinweis: Der MPR121 wird mit 3.3V versorgt, nicht mit 5V.

../_images/image201.png

Schematische Darstellung

../_images/image202.png

Code

Bemerkung

  • Sie können die Datei 2.24_mpr121.ino unter dem Pfad sunfounder_vincent_kit_for_arduino\code\2.24_mpr121 direkt öffnen.

  • Oder kopieren Sie diesen Code in Arduino IDE 1/2.

  • Laden Sie dann Laden Sie den Code hoch auf das Board hoch.

  • Bitte stellen Sie sicher, dass Sie die Bibliothek MPR121_JM hinzugefügt haben, detaillierte Anleitungen finden Sie unter Bibliotheken hinzufügen.

Nach dem Hochladen der Codes auf die Mega2560-Platine wird der Berührungszustand der Pins von MPR121 「1」 und 「0」 in einem booleschen 12-Bit-Array aufgezeichnet, das auf dem seriellen Monitor gedruckt wird.

Code-Analyse

Die Funktion des Moduls ist in der Bibliothek MPR121_JM.h enthalten.

#include <MPR121_JM.h>

Bibliotheksfunktionen:

MPR121(int irqpin,uint8_t touThresh,uint8_t relThresh)

Erstellt eine neue Instanz des MPR121.

  • irqpin: der Interrupt-Request-Pin.

  • touThresh: Berührungsschwelle, die Elektrode wird als Schwelle des 「Berührungs」-Zustands erkannt.

  • relThresh: Freigabeschwelle, die Elektrode wird als Schwelle des 「Freigabe」-Zustands erkannt.

Der Wertebereich der Elektrodendaten liegt zwischen 0 und 255. Für eine typische Berührungsanwendung kann der Schwellenwert beispielsweise im Bereich von 0x05~0x30 liegen. Je kleiner der Wert, desto empfindlicher ist es. Die Einstellung des Schwellenwerts hängt von der tatsächlichen Anwendung ab. Typischerweise ist der Berührungsschwellenwert etwas größer als der Auslöseschwellenwert für Berührungsentprellung und Hysterese.

void mpr121_setup()

MPR121-Modul einrichten.

bool checkInterrupt()

Nehmen Sie eine Unterbrechungsbeurteilung vor, wenn sich der Elektrodenzustand ändert, gibt die Funktion einen booleschen Wert 「0」 zurück.

uint16_t readTouchInputs()

Der Berührungszustand der Elektrode erzeugt einen booleschen Wert. Die Funktion akkumuliert die von allen Elektroden erzeugten booleschen Werte nacheinander zu einer 12-Bit-Binärzahl als Rückgabewert. Wenn die erste und die elfte Elektrode berührt werden, wird 「100000000010」 zurückgegeben.

Phänomen Bild

../_images/image203.jpeg