Der CAP1188 verfügt über acht kapazative Sensoren (C8 bis C1). Die Sensoren reagieren auf Veränderungen der Fähigkeit von Körpern oder Gegenständen elektrische Ladung zu speichern. Die menschliche Haut und elekrisch leitfähige Gegenstände sind dazu in der Lage. Wird einer der Touch-Pins berührt, verändert sich der Messwert und der Kontakt wird ausgelöst.
Zu jedem Touch-Pin gehört eine LED (L8 bis L7), sie leuchtet, wenn der Kontakt ausgelöst wurde.
Die Pins C1 und C2 sollen die interne LED des Arduinos schalten:
C1: LED einschalten
C2: LED ausschalten
Schließe an die Pins C1 und C2 jeweils ein Kabel an. Wenn du das Kabelende berührst, wird der Sensor augelöst.
Suche im Bibliotheksverwalter
Sketch -> Bibliothek einbinden -> Bibliotheken verwalten
oder über das entsprechende Icon nach der Bibliothek Adafruit CAP1188. Anschließend musst du in der nächsten Dialogbox die zusätzliche Bibliothek installieren.
#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);
}
}
}
Verschiedene elektrisch leitfähige Gegenstände können als Auslöser des Signals verwendet werden: Büroklammern, Alufolie, Kupferfolie, Schrauben, Nägel und auch Lebensmittel, die viel Flüssigkeit enthalten.
Schließe an die Pins C8 bis C1 jeweils eines der Kabel mit der Krokodilklemme an.
#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''
}
}
}