Der Autor von Instructables unter dem Spitznamen ShaneCunningham bietet an, ein kapazitives Relais zu implementieren Arduino programmatisch. Von den zusätzlichen Teilen werden nur kapazitive Sensoren und Widerstände selbst benötigt. Keine externen Hardwaregeneratoren. In der Software hausgemacht beteiligt das und das Entwicklungen von Drittanbietern.
Kapazitive Sensoren - zweischichtig, dreipolig. Der Meister macht sie mit seinen eigenen Händen. Ein Pappquadrat mit einer Seite von 300 mm wird mit Folie überklebt - dies ist der Ausgang, der mit dem gemeinsamen Draht verbunden ist. Darauf legt ein Pappquadrat mit einer Seite von 100 mm, ebenfalls mit Folie verklebt. Darauf ist die Folienschicht entlang einer Kontur, die einem Oszillogramm von Rechteckimpulsen ähnelt, in zwei Teile geteilt. Dies werden zwei weitere Schlussfolgerungen sein.
Jeder der hergestellten Sensoren ist mit einem 1 MΩ-Widerstand ausgestattet. Wenn nur ein Sensor vorhanden ist, schließen Sie ihn wie unten gezeigt an. Wenn es mehrere davon gibt, müssen Sie die Arduino-Schlussfolgerungen verwenden - zwei pro Sensor - und dies in der Skizze berücksichtigen.
Der Assistent führt Folgendes aus:
Erstellt eine Skizze, die vom Sensor aufgenommene Daten über die serielle Schnittstelle sendet:
///////////////////////////////////////////////
void loop () {
long total1 = cs_4_2.capacitiveSensor (30);
Serial.println (total1);
////////////////////////////////////////////////
Code für die Kommunikation mit der Verarbeitung über serielle
* /
int val1 = 0;
int val2 = 0;
int val3 = 0;
int inByte = 0;
CapacitiveSensor cs_4_2 = CapacitiveSensor (4.2); // 1M Widerstand zwischen Pin 4 und 2, Pin 2 ist Sensor Pin, fügen Sie einen Draht und / oder Folie hinzu, falls gewünscht
CapacitiveSensor cs_4_6 = CapacitiveSensor (4.6); // 1M Widerstand zwischen Pin 4 und 6, Pin 6 ist Sensorstift, Draht und / oder Folie hinzufügen
void setup () {
cs_4_2.set_CS_AutocaL_Millis (0xFFFFFFFF); // Autokalibrierung auf Kanal 1 ausschalten - nur als Beispiel
cs_4_6.set_CS_AutocaL_Millis (0xFFFFFFFF);
Serial.begin (9600);
pinMode (2, INPUT);
pinMode (6, INPUT);
// pinMode (8, INPUT);
etablContact (); // Sende ein Byte, um einen Kontakt herzustellen, bis der Empfänger antwortet
void loop () {
// Wenn wir ein gültiges Byte erhalten, lesen Sie die Eingaben:
if (Serial.available ()> 0) {
// eingehendes Byte abrufen:
inByte = Serial.read ();
// langer Start = millis ();
long total1 = cs_4_2.capacitiveSensor (30);
long total2 = cs_4_6.capacitiveSensor (30);
// long total3 = cs_4_8.capacitiveSensor (30);
// delay (10);
val1 = map (total1, 700, 2300, 0, 255); // Sensorwerte aus der Kalibrierung werden hier abgebildet - beginnt bei 700 (4 "entfernt) die menschliche Nähe zu erkennen, die Hand berührt den Sensor bei 2300 fast
val2 = map (total2, 30, 175, 0, 255);
// val3 = map (total3, 0, 13000, 0, 255);
Serial.write (val1);
Serial.write (val2);
//Serial.write(val3);
//Serial.print(val1);
// delay (50);
}}
void etablContact () {
while (Serial.available () <= 0) {
Serial.print ('A');
Verzögerung (300); }}
Der Assistent organisiert die weitere Analyse der eingehenden Informationen auf einem PC in der Verarbeitungsumgebung.
Dies ist jedoch nur der Anfang des Experiments. In Zukunft können Sie damit Signale von Arduino-Sensoren verarbeiten - das Gleiche oder, wenn die Ressourcen nicht ausreichen, noch eines.