CAP1188 Sensore tattile capacitivo

FunduinoUltimo aggiornamento il

Acht Berührungssensoren – vom Testaufbau zum Instrument

Der CAP1188 erkennt Berührungen, ohne dass etwas gedrückt werden muss. Er misst, wie gut ein Körper elektrische Ladung speichert – und darin sind menschliche Haut und alles Leitfähige gut.

Acht Sensoren, acht LEDs, ein I²C-Anschluss. Nach einem kurzen Testaufbau mit der internen LED des Arduino wird daraus ein Instrument: An Büroklammern, Alufolie oder Kupferstreifen geklemmt, spielt jeder Kontakt einen eigenen Ton.

Platine des CAP1188 mit acht Touch-Pins und acht LEDs
Der CAP1188

Was der CAP1188 kann

Der CAP1188 hat acht kapazitive Sensoren, C1 bis C8. Sie reagieren darauf, wie gut ein Körper elektrische Ladung speichern kann – menschliche Haut und leitfähige Gegenstände können das.

Berührst du einen Touch-Pin, ändert sich der Messwert und der Kontakt löst aus. Zu jedem Touch-Pin gehört eine LED auf der Platine, die dann aufleuchtet.

Angeschlossen wird der Sensor über I²C.

Der Artikel schreibt „eine LED (L8 bis L7)“. Bei acht Sensoren sind es acht LEDs – L8 bis L1.

Platine des CAP1188 mit acht Touch-Pins und acht LEDs
Der CAP1188

Erster Test: die interne LED schalten

Schließe an C1 und C2 je ein Kabel an. Das freie Kabelende ist deine Berührungsfläche – fasst du es an, löst der Sensor aus. Die beiden Pins schalten die interne LED des Arduino ein und aus.

Installiere über die Bibliotheksverwaltung die Bibliothek Adafruit CAP1188. Im folgenden Dialog musst du die zusätzlich benötigte Bibliothek mitinstallieren.

Über das Register 0x1f stellst du die Empfindlichkeit ein: kleine Werte reagieren schon auf Annäherung, große Werte erst auf echte Berührung.

Der Sketch schaltet bei C2 ein und bei C1 aus, der Text darüber sagt es genau umgekehrt.

CAP1188 am Arduino, zwei Kabel an den Pins C1 und C2
Kabel an C1 und C2 als Berührungsflächen
Bibliothek Adafruit CAP1188 in der Bibliotheksverwaltung
Die Bibliothek Adafruit CAP1188
Dialog zur Installation der zusätzlich benötigten Bibliothek
Die Zusatzbibliothek mitinstallieren
1 / 3
Interne LED über C1 und C2 schalten
#include "Adafruit_CAP1188.h"
// Name zuweisen
Adafruit_CAP1188 cap = Adafruit_CAP1188();
void setup()
{
  Serial.begin(9600);
  delay(500);
  pinMode(LED_BUILTIN, OUTPUT);
  if (!cap.begin())
  {
    // Programm anhalten, wenn CAP1188 nicht gefunden wurde
    Serial.println("CAP1188 nicht gefunden");
    while (1);
  }
  Serial.println("CAP1188 gefunden!");
  delay(1000);
  // Empfindlichkeit einstellen
  // 10 = sehr empfindlich-> reagiert schon bei Annäherung
  // bis 111 weniger empfindlich -> Gegenstand muss berührt werden
  // kann je nach Gegenstand angepasst werden
  int Empfindlichkeit = cap.readRegister(0x1f) & 0x0f;
  cap.writeRegister(0x1f, Empfindlichkeit | 111);
}
void loop()
{
  int Beruehrung = cap.touched();
  if (Beruehrung == 0)
  {
    // keine Berührung entdeckt
    return;
  }
  // Berührungen abfragen
  for (int i = 0; i < 8; i++)
  {
    if (Beruehrung & (1 << i))
    {
      // mit dem höchsten Wert beginnen
      if (i + 1 == 2) digitalWrite(LED_BUILTIN, HIGH);
      if (i + 1 == 1) digitalWrite(LED_BUILTIN, LOW);
    }
  }
}

Erweiterung: Musik aus Alltagsgegenständen

Als Auslöser taugt alles, was Strom leitet: Büroklammern, Alufolie, Kupferfolie, Schrauben, Nägel – und wasserhaltige Lebensmittel.

Daraus wird ein Instrument: Acht Berührungsflächen ergeben acht Töne einer Tonleiter.

Alufoliestreifen als Berührungsflächen am CAP1188
Berührungsflächen aus Alufolie
Büroklammern als Berührungsflächen am CAP1188
Berührungsflächen aus Büroklammern
1 / 2

Aufbau und Verkabelung

Schließe an die Pins C8 bis C1 je ein Kabel mit Krokodilklemme an und klemme es an deinen Gegenstand. Der Lautsprecher kommt an Pin 7.

Welcher Pin welchen Ton spielt, zeigen die beiden Zuordnungstabellen: C8 ist das tiefe C, C1 das hohe C eine Oktave darüber.

Die Bauteilliste führt an erster Stelle einen aktiven Buzzer auf. Der Sketch arbeitet mit tone() und braucht einen passiven Lautsprecher – ein aktiver Buzzer gibt nur seinen festen Eigenton ab.

Lautsprecher für die Tonausgabe
Der Lautsprecher
Schaltplan des Musikprojekts mit CAP1188 und Lautsprecher
Der Schaltplan für das Musikprojekt
Zuordnung der Kupferstreifen zu den Pins C8 bis C1
Welcher Streifen gehört zu welchem Pin
Tabelle mit Pins, Noten und zugehörigen Frequenzen
Pins, Noten und Frequenzen
1 / 4

Das Musikprogramm

Der Sketch fragt in jedem Durchlauf alle acht Sensoren ab und spielt zu jedem ausgelösten Pin den passenden Ton – von C’ mit 262 Hz bis C” mit 523 Hz.

Acht Töne über die Berührungsflächen spielen
#include "Adafruit_CAP1188.h"
#define Lautsprecher 7
#define TonLaenge 100
// Name zuweisen
Adafruit_CAP1188 cap = Adafruit_CAP1188();
void setup()
{
  Serial.begin(9600);
  if (!cap.begin())
  {
    // Programm anhalten, wenn CAP1188 nicht gefunden wurde
    Serial.println("CAP1188 nicht gefunden");
    while (1);
  }
  Serial.println("CAP1188 gefunden!");
  delay(1000);
  // Empfindlichkeit einstellen
  // 10 = sehr empfindlich-> reagiert schon bei Annäherung
  // bis 111 weniger empfindlich -> Gegenstand muss berührt werden
  // kann je nach Gegenstand angepasst werden
  int Empfindlichkeit = cap.readRegister(0x1f) & 0x0f;
  cap.writeRegister(0x1f, Empfindlichkeit | 111);
}
void loop()
{
  int Beruehrung = cap.touched();
  if (Beruehrung == 0)
  {
    // keine Berührung entdeckt
    return;
  }
  // Berührungen abfragen
  for (int i = 0; i < 8; i++)
  {
    if (Beruehrung & (1 << i))
    {
      // mit dem höchsten Wert beginnen
      if (i + 1 == 8) tone(Lautsprecher, 262, TonLaenge); // C'
      if (i + 1 == 7) tone(Lautsprecher, 294, TonLaenge); // D'
      if (i + 1 == 6) tone(Lautsprecher, 330, TonLaenge); // E'
      if (i + 1 == 5) tone(Lautsprecher, 349, TonLaenge); // F'
      if (i + 1 == 4) tone(Lautsprecher, 392, TonLaenge); // G'
      if (i + 1 == 3) tone(Lautsprecher, 440, TonLaenge); // A'
      if (i + 1 == 2) tone(Lautsprecher, 494, TonLaenge); // H'
      if (i + 1 == 1) tone(Lautsprecher, 523, TonLaenge); // C"
    }
  }
}
Valuta le istruzioni

Commenti

Fare una domanda o condividere un'esperienza

Scrivici se qualcosa non funziona. Indica la tua scheda e il messaggio di errore.

Controlliamo ogni commento prima della pubblicazione. Il tuo indirizzo e-mail rimane presso di noi.