Dőlés érzékelő

Ezekkel az érzékelőkkel lehet az elmozdulást, kitérést legegyszerűbben detektálni.
A mechanikus kivitelben általában egy tömeg mozdul el egy henger belsejében és zár rövidre érintkezőket, ilyen tömeg lehet higany csepp: mercury switches, vagy fém golyó:rolling ball sensor.
Persze teljesen elektronikus érzékelők is készülnek, de erre most nem térünk ki.
Nem olyan pontos és rugalmas mint egy digitális gyorsulás mérő de kezdetben ez is megteszi.

adatok:
érzékenységi tartomány: +/- 15fok
élettartam: 50000 ciklus (kapcsolás)
tápfeszültség: max24V
áramfelvétel: 5mA


Szenzor tesztelése:

Multiméter folytonosság vizsgálójával próbálhatjuk ki legegyszerűbben a szenzor dőléskapcsolását.
Egyensúlyi helyzetben az érzékelő (felfelé áll) zárt állapotban van a multiméter jelez, lefelé fordítva nyitott állapotba kerül.


A tilt szenzort csatlakoztathatjuk próbapanelon vagy éppen ráforrasztott vezetékek segítségével is.
Egyre kell vigyázni nehogy letörjük az érzékelő kivezetéseit a forrasztással.

Az áramkör egyszerű:

A kód se túl bonyolult:

// http://www.ladyada.net/learn/sensor/tilt.html

int inPin = 2; // input pin 2 láb
int outPin = 13; // kimenet 13 láb és beépített led

int LEDstate = HIGH; // kimeneti láb magas szintre állítva
int reading; //az aktuális érték tárolására
int previous = LOW; // előző érték tárolására kezdő érték alacsony szinten


//long változó az idő tárolására másodpercben.
long time = 0; // az utolsó aktív kimenet óta eltelt idő
long debounce = 50; // pergésmentesítési idő


void setup()
{
pinMode(inPin, INPUT);
digitalWrite(inPin, HIGH); // felhúzó ellenállás bekapcsolása a bemeneten
pinMode(outPin, OUTPUT);
}


void loop()
{
int switchstate;//lokális változó

reading = digitalRead(inPin);//bemenet kiolvasása

//ha a kapcsoló beolvasott értéke nem egyenlő az előző értékkel...
if (reading != previous) {
// akkor betőlti az indulás óta eltelt időt a time változóba
time = millis();
}

if ((millis() - time) > debounce) {
// ha a bekapcsolási idő és a tárolt idő közt különbség van és ez nagyobb mint a pergési idő akkor
// eltárolja a beolvasott értéket a kapcsoló állapotát jelző változóba
switchstate = reading;

// megforditja a kapcsoló állapotát ha magas akkor a led nem világít
if (switchstate == HIGH)
LEDstate = LOW;
else
LEDstate = HIGH;// ha alacsony a kapcsoló szint akkor bekapcsol a led
}
digitalWrite(outPin, LEDstate);// kiíratjuk a ledre

// elmentjük a beolvasott kapcsoló értéket a previous változóba
previous = reading;
}


Ez a kis program stabilan kiküszöböli az érzékelőnél felmerülő pergés mellékhatásait.
Az érzékelő dőlésénél jelezni fog a beépített ledünk, ez a leg egyszerűbb módja a szint
változás kimutatásának. További jó szórakozást!