Grove i2c touch

Il Grove i2c touch sensors è una scheda che consente di leggere fino a 8 sensori touch della serie grove connettendoli in i2c ad arduino o genuino.

grove i2c touch and lcd

Da qualche settimana sto provando e documentando i miei esperienza con le shield ed i componenti della serie Grove:

Grove starter kit

Grove Lcd RGB i2c

Grove lcd rgb i2c wheel

ed in questo articolo sperimenterai con il Grove touch sensors che ho aggiunto al mio kit base acquistandolo da robotics-3d.com

Collegamenti del Grove i2c touch sensors

I collegamenti, come per tutta la serie grove, sono molto semplici, facilitati dai connettori a 4 fili della serie stessa.

ho provveduto su un lato della basetta in plexyglass a predisporre 4 quadratini di biadesivo:

grove i2c touch and lcd biadesivo

a cui ho poi fissato ognuno dei touch sensor del grove i2c touch:

grove i2c touch and lcd mounted

giusto per tenerli fermi e distanti a sufficienza perché non si creassero interferenze.

L’ultimo passaggio del collegamento è inserire il connettore a 4 fili in uno degli slot i2c della grove shield:

grove i2c touch and lcd

e passare allo sketch.

Download della libraria grove i2c touch

La libreria non è presente, al momento in cui scrivo, tra quelle che puoi scaricare direttamente con il Library Manager di Arduino e questo comporta un piccolo passaggio in più.

Collegati alla pagina GitHub della libraria (url: https://github.com/Seeed-studio/Grove_I2C_Touch_Sensor):

grove i2c touch and lcd library

e clicca sul pulsante download:

grove i2c touch and lcd download library

dopo averla scaricata, esegui la solita procedura di installazione con il file .zip o la procedura manuale descritta in molti miei articoli.

Al termine otterrai tra gli Esempi il menu relativo al Grove I2c touch sensor:

grove i2c touch and lcd select example

il cui esempio, unico, e sufficiente è i2c_touch.

Lo sketch di esempio Grove I2c Touch

Ecco lo sketch di esempio:

#include <Wire.h> // include I2C library
#include <i2c_touch_sensor.h>
#include <MPR121.h>

i2ctouchsensor touchsensor;

long previousMillis = 0;
long interval = 100;
void setup() 
  {    
    Serial.begin(9600); // for debugging   
    Serial.print("begin to init");  
    Wire.begin(); // needed by the GroveMultiTouch lib     
    touchsensor.initialize(); // initialize the feelers     
	
  }
void loop()
{     
   unsigned char MPR_Query=0;
   unsigned long currentMillis = millis();
 if(currentMillis - previousMillis > interval)
  {
    previousMillis = currentMillis;
    touchsensor.getTouchState();
  }
 for (int i=0;i<12;i++)
 {
 if (touchsensor.touched&(1<<i))
 	{
 	Serial.print("pin ");
        Serial.print(i);
        Serial.println(" was  touched");
         }
 }
}

 

Come vedi non è molto complesso ed il suo funzionamento è scrivere sul monitor seriale il valore corrispondente al sensore touch che tocchi con il dito.

Le uniche linee che potrebbero risultarti complesse riguardano la linea 14: serve ad inizializzare il touch sensor;

linea 24: interroghi il sensore per conoscere quale touch è stato toccato;

linea 26: scorri tutti e 12 i pin del sensore;

linea 28: verifichi che per ciascun indice “i” sia restituito un valore corrispondente al touch sensor interessato.

Le altre linee servono a controllare i tempi di scansione del sensore ed a scrivere sul monitor seriale i valori letti.

Cortesemente, prima di inserire i commenti leggi il regolamento

Permanent link to this article: http://www.mauroalfieri.it/elettronica/grove-i2c-touch.html

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.