Citlivosť vibračného senzora SW-18020P

Zápisník experimentátora

Do jedného projektu chcem zamontovať vibračný senzor a tak experimentujem so senzorom SW-18020P. Senzor funguje tak, že v malej dutinke je drôt a okolo neho strunka. Pri otrase sa strunka dotkne drôtu a na chvíľu sa prepoja oba piny na senzore.

Z toho vyplýva, že sa senzor zapája podobne ako tlačidlo. Je potrebné na jeden koniec pripojiť pull-up alebo pull-down rezistor a na druhý koniec GND alebo Vcc. A meria sa na tej strane, kde je pripojený rezistor. Pri otrase nastane prepojenie pinov a to vie Arduino identifikovať.

Najpohodlnejší spôsob čítania senzora je jeho pripojenie na prerušenie. Pozor ale na to, že otras generuje obrovské množstvo prepojení, takže je rozumné ošetrovať zákmity, alebo v kóde rátať s tým, že v priebehu krátkeho času môže nastať aj niekoľko stoviek zákmitov. Kód môže vyzerať napríklad takto.

volatile boolean signal0=false;
volatile int32_t t0=0;

const int type=RISING;
//const int type=FALLING;
//const int type=CHANGE;

void setup() {
Serial.begin(9600); 
Serial.println("Arduino Interrupt Counter");
switch(type)
  {
  case RISING:  Serial.println("Type: RISING");break;
  case FALLING: Serial.println("Type: FALLING");break;
  case CHANGE:  Serial.println("Type: CHANGE");break;
  }

// pin 2
attachInterrupt(0,int0,type);
}

void loop() {
if(signal0)
  {
  Serial.print(millis());
  Serial.print(" ");
  Serial.println(t0);
  signal0=false;  
  }
delay(100);
}

void int0() {
t0++;
signal0=true;
}

Výsledok testovania

Pri senzore SW-18020P som mal pocit, že na získanie signálu je potrebné so senzorom pomerne silno šklbnúť. Napríklad tlesknutie rukami alebo cvrnknutie do senzora fungujú dosť spoľahlivo. Stojí ale za úvahu, či nepoužívať radšej mierne citlivejší cenzor SW-18015P.


04.05.2016


Menu