Gestire nove sensori capacitivi con CapBoard

Reading Time: 2 minutes

In questo esempio presentiamo uno sketch per CapBoard che consente di trasmettere al software connesso ad Arduino attraverso la porta seriale lo stato dei nove sensori capacitivi secondo una logica binaria acceso/spento. E’ attualmente in fase di sviluppo la trasmissione continua dei dati che consente di ottenere dei sensori capaci di rilevare, oltre che il tocco, anche la prossimità a distanza del corpo umano dall’oggetto.

#include <CapacitiveSensor.h>
CapacitiveSensor cs122 = CapacitiveSensor(12,2);
CapacitiveSensor cs123 = CapacitiveSensor(12,3);
CapacitiveSensor cs124 = CapacitiveSensor(12,4);
CapacitiveSensor cs125 = CapacitiveSensor(12,5);
CapacitiveSensor cs126 = CapacitiveSensor(12,6);
CapacitiveSensor cs127 = CapacitiveSensor(12,7);
CapacitiveSensor cs128 = CapacitiveSensor(12,8);
CapacitiveSensor cs1210 = CapacitiveSensor(12,10);
CapacitiveSensor cs1211 = CapacitiveSensor(12,11);
boolean isTriggered1=false;
boolean isTriggered2=false;
boolean isTriggered3=false;
boolean isTriggered4=false;
boolean isTriggered5=false;
boolean isTriggered6=false;
boolean isTriggered7=false;
boolean isTriggered8=false;
boolean isTriggered9=false;
int Soglia=1000; //Imposta il valore di soglia del sensore capavitivo
// modificare questo valore per cambiare la sensibilità
int Samples=70; //Numero di campioni da utilizzare nella misura del sensore capacitivo
//int LedPin=13; //togliere il commento per attivare il LED sulla porta 13

void setup(){
  //pinMode(LedPin,OUTPUT);//togliere il commento per attivare il LED sulla porta 13
  Serial.begin(115200);
}

void loop(){
  long total1=cs122.capacitiveSensor(Samples);
  //Serial.println(total1);
  if(total1>Soglia)
  {  
    if(!isTriggered1)
    {  
      //digitalWrite(LedPin,HIGH);
      //Serial.println("A1-1");
      Serial.write(1);
      Serial.write(206);
      isTriggered1=true;
    }
  } else 
  {
    if(isTriggered1)
    {
      //digitalWrite(LedPin,LOW);
      isTriggered1=false;
      //Serial.println("A1-0");
      Serial.write(0);
      Serial.write(206);
    }
  }
  
  long total2=cs123.capacitiveSensor(Samples);
  //Serial.println(total2);
  if(total2>Soglia)
  {  
    if(!isTriggered2)
    {  
      //digitalWrite(LedPin,HIGH);
      //Serial.println("A2-1");
      Serial.write(1);
      Serial.write(207);
      isTriggered2=true;
    }
  } else 
  {
    if(isTriggered2)
    {
      //digitalWrite(LedPin,LOW);
      isTriggered2=false;
      //Serial.println("A2-0");
      Serial.write(0);
      Serial.write(207);
    }
  }

  long total3=cs124.capacitiveSensor(Samples);
  //Serial.println(total2);
  if(total3>Soglia)
  {  
    if(!isTriggered3)
    {  
      //digitalWrite(LedPin,HIGH);
      //Serial.println("A3-1");
      Serial.write(1);
      Serial.write(208);
      isTriggered3=true;
    }
  } else 
  {
    if(isTriggered3)
    {
      //digitalWrite(LedPin,LOW);
      isTriggered3=false;
      //Serial.println("A3-0");
      Serial.write(0);
      Serial.write(208);
    }
  }

  long total4=cs125.capacitiveSensor(Samples);
  //Serial.println(total2);
  if(total4>Soglia)
  {  
    if(!isTriggered4)
    {  
      //digitalWrite(LedPin,HIGH);
      //Serial.println("A4-1");
      Serial.write(1);
      Serial.write(209);
      isTriggered4=true;
    }
  } else 
  {
    if(isTriggered4)
    {
      //digitalWrite(LedPin,LOW);
      isTriggered4=false;
      //Serial.println("A4-0");
      Serial.write(0);
      Serial.write(209);
    }
  }
  
  long total5=cs126.capacitiveSensor(Samples);
  //Serial.println(total1);
  if(total5>Soglia)
  {  
    if(!isTriggered5)
    {  
      //digitalWrite(LedPin,HIGH);
      //Serial.println("A5-1");
      Serial.write(1);
      Serial.write(210);
      isTriggered5=true;
    }
  } else 
  {
    if(isTriggered5)
    {
      //digitalWrite(LedPin,LOW);
      isTriggered5=false;
      //Serial.println("A5-0");
      Serial.write(0);
      Serial.write(210);
    }
  }
    
  long total6=cs127.capacitiveSensor(Samples);
  //Serial.println(total2);
  if(total6>Soglia)
  {  
    if(!isTriggered6)
    {  
      //digitalWrite(LedPin,HIGH);
      //Serial.println("A6-1");
      Serial.write(1);
      Serial.write(211);
      isTriggered6=true;
    }
  } else 
  {
    if(isTriggered6)
    {
      //digitalWrite(LedPin,LOW);
      isTriggered6=false;
      //Serial.println("A6-0");
      Serial.write(0);
      Serial.write(211);
    }
  }
  long total7=cs128.capacitiveSensor(Samples);
  //Serial.println(total2);
  if(total7>Soglia)
    {  
      if(!isTriggered7)
      {  
        //digitalWrite(LedPin,HIGH);
        //Serial.println("A7-1");
        Serial.write(1);
        Serial.write(212);
        isTriggered7=true;
      }
    } else 
    {
      if(isTriggered7)
      {
        //digitalWrite(LedPin,LOW);
        isTriggered7=false;
        //Serial.println("A7-0");
        Serial.write(0);
        Serial.write(212);
      }
    }
  long total8=cs1210.capacitiveSensor(Samples);
  //Serial.println(total2);
  if(total8>Soglia)
    {  
      if(!isTriggered8)
      {  
        //digitalWrite(LedPin,HIGH);
        //Serial.println("A8-1");
        Serial.write(1);
        Serial.write(213);
        isTriggered8=true;
      }
    } else 
    {
      if(isTriggered8)
      {
        //digitalWrite(LedPin,LOW);
        isTriggered8=false;
        //Serial.println("A8-0");
        Serial.write(0);
        Serial.write(213);
      }
    }

    long total9=cs1211.capacitiveSensor(Samples);
    //Serial.println(total2);
    if(total9>Soglia)
    {  
      if(!isTriggered9)
      {  
        //digitalWrite(LedPin,HIGH);
        //Serial.println("A9-1");
        Serial.write(1);
        Serial.write(214);
        isTriggered9=true;
      }
    } else 
    {
      if(isTriggered9)
      {
        //digitalWrite(LedPin,LOW);
        isTriggered9=false;
        //Serial.println("A9-0");
        Serial.write(0);
        Serial.write(214);
      }
    }
}

Per problemi, curiosità e suggerimenti scrivi qui di seguito:

Codice di sicurezza:
security code
Inserire un codice di sicurezza.:

Invia

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *