Go Down

Topic: Berührungssensor unter Gips (Read 1 time) previous topic - next topic

Apollo_M

Erst einmal nochmal ein dickes Danke an euch alle. Eure Beiträge haben mir bei meinem Projekt schon sehr weitergeholfen.

Im englischsprachigen Forum habe ich 2 Beiträge zum Thema Swipe-Interaktionen gefunden, jedoch haben die Codes nicht so wirklich geklappt.

Habe deshalb versucht, mir selbst was zusammenzubasteln um testweise die folgende Swipe-Interaktion zum implementieren: Ein Swipe von Sensor 1 über Sensor 2 zu Sensor 3 lässt LED 1 leuchten, ein Swipe in die andere Richtung lässt LED 2 leuchten.

Hier ist der Code:

Code: [Select]
#include <CapacitiveSensor.h>

CapacitiveSensor   cs_4_2 = CapacitiveSensor(4,2);
CapacitiveSensor   cs_4_6 = CapacitiveSensor(4,6);
CapacitiveSensor   cs_4_8 = CapacitiveSensor(4,8);

const int ledPin1 = 53;
const int ledPin2 = 49;

long timeTouched1 = 0;
long timeTouched2 = 0;
long timeTouched3 = 0;

int maxInterval = 500;

void setup() {
  cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF);     
  cs_4_6.set_CS_AutocaL_Millis(0xFFFFFFFF);     
  cs_4_8.set_CS_AutocaL_Millis(0xFFFFFFFF);

  pinMode(ledPin1, OUTPUT);
  pinMode(ledPin2, OUTPUT);

  digitalWrite(ledPin1, LOW);
  digitalWrite(ledPin2, LOW);

  Serial.begin(9600);
}

void loop() {
  long valueSensor1 =  cs_4_2.capacitiveSensor(30);
  long valueSensor2 =  cs_4_6.capacitiveSensor(30);
  long valueSensor3 =  cs_4_8.capacitiveSensor(30);

  if (valueSensor1 > 60) {
    timeTouched1 = millis();
  }
  else if (valueSensor2 > 60) {
    timeTouched2 = millis();
  }
  else if (valueSensor3 > 60) {
    timeTouched3 = millis();
  }

  if (timeTouched2 > timeTouched1 && timeTouched3 > timeTouched2 &&
  timeTouched2 - timeTouched1 <= maxInterval && timeTouched3 - timeTouched2 <= maxInterval) {
    digitalWrite(ledPin1, HIGH);
    digitalWrite(ledPin2, LOW);
  }
  else if (timeTouched2 > timeTouched3 && timeTouched1 > timeTouched2 &&
  timeTouched2 - timeTouched3 <= maxInterval && timeTouched1 - timeTouched2 <= maxInterval) {
    digitalWrite(ledPin1, LOW);
    digitalWrite(ledPin2, HIGH);
  }
}

Klappt soweit auch ganz gut.

Wäre über jeglichen Input bezüglich des Codes sehr dankbar :)

Habt ein schönes Wochenende
Chris

Go Up