Bezkontaktní indukční spínač TL-W5MC1

Bezkontaktní indukční spínač TL-W5MC1 je vstupní modul pro Arduino. Tento senzor dokáže bezdotykově detekovat kovové objekty v těsné blízkosti přední snímací části, kdy sepnutí probíhá cca 3-4 milimetry před čidlem. Díky robustnímu pouzdru se tento senzor vyznačuje dlouhou životností společně s velkou odolností a za pomoci dvou otvorů ho lze jednoduše připevnit 2 šrouby.
Co se týká elektrických vlastností, tak tento senzor slouží jako NO (normálně otevřený) NPN spínač, který lze napájet napětím v rozsahu 5-36 Voltů. A pokud byste s ním chtěli napřímo spínat zátěž, tak to lze až do proudu 100 mA. Rozměry tohoto indukčního čidla jsou pak 30x18x10 mm.

Pro úspěšné propojení indukčního čidla a Arduino desky je nutné zapojit celkem 3 vodiče. Propojíme hnědý vodič s +5V Arduina, černý vodič s pinem D2 a modrý vodič se zemí Arduina. Pro digitální vstup je nutné vybrat pin, který slouží jako přerušovací. Seznam těchto pinů pro jednotlivé desky si můžete prohlédnout zde, u Arduino UNO desky jsou to například piny D2 a D3.

Ukázkový kód obsahuje na svém začátku nastavení čísla propojovacího pinu a vytvoření proměnné, do které budeme ukládat čas poslední aktivace spínače.
V podprogramu setup provedeme nejprve inicializaci sériové linky s rychlostí 9600 baudů a poté nastavíme detekci přerušení na náš datový pin, kdy při nástupné hraně (RISING) bude vykonán podprogram prerus.
Nekonečná smyčka loop je v této ukázce jednoduchá, kdy vždy v prvním kroku vytiskneme informaci o času od poslední aktivace spínače. A poté už jen počkáme po nastavený čas před novým během smyčky.
V podprogramu prerus se provedou dvě jednoduché operace. Nejprve vytiskneme informaci o detekování sepnutí spínače a následně uložíme do proměnné aktuální čas, abychom mohli s touto proměnnou pracovat ve smyčce loop.

// Bezkontaktní indukční spínač
// navody.dratek.cz

// nastavení čísla propojovacího pinu
#define pinVstup 2
// proměnná pro uložení času aktivace
unsigned long casAktivace = 0;

void setup() {
  // inicializace komunikace po sériové lince
  // rychlostí 9600 baud
  Serial.begin(9600);
  // nastavení přerušení na pin 2 (int0)
  // při nástupné hraně (log0->log1) se vykoná program prerus
  attachInterrupt(digitalPinToInterrupt(pinVstup), prerus, RISING);
}

void loop() {
  // pravidelná informace o času od poslední detekce
  Serial.print("Cas od posledni aktivace spinace: ");
  Serial.print(millis() - casAktivace);
  Serial.println(" ms.");
  // pauza před novým během smyčky
  delay(1000);
}
void prerus() {
  // výpis informace při detekci
  Serial.println("Detekovano sepnuti spinace!");
  // uložení času aktivace
  casAktivace = millis();
}

Po nahrání uvedeného ukázkového kódu do Arduino desky s připojeným bezkontaktním spínačem dostaneme například tento výsledek, kde si můžete všimnout, že jsem 2x sepnul spínač přiblížením kovového objektu.

Cas od posledni aktivace spinace: 0 ms.
Cas od posledni aktivace spinace: 1000 ms.
Cas od posledni aktivace spinace: 2000 ms.
Detekovano sepnuti spinace!
Cas od posledni aktivace spinace: 865 ms.
Detekovano sepnuti spinace!
Cas od posledni aktivace spinace: 478 ms.

Bezkontaktní indukční spínač je šikovný senzor, který nám umožňuje detekovat kovové předměty v jeho těsné blízkosti. Tyto senzory se často používají v průmyslu, kde je nutné v různých krocích výroby detekovat kovové předměty. Avšak i v domácím prostředí můžeme tento spínač využít například pro detekování otevření dveří, okna či skříňky, kdy můžeme jednoduchým přidáním kovového plíšku udělat z jakékoliv plochy detekovatelnou. A za dobrou cenu dostáváme bezkontaktní snímač, které vydrží i hrubší zacházení.

Seznam použitých komponent:
https://dratek.cz/arduino/1258-klon-arduino-uno-r3-atmega328p-ch340g-usb-typ-b-kabel-1459967190.html
https://dratek.cz/arduino/1515-spinac-bezkontaktni-indukcni-tl-w5mc1-npn-dc-6-36v-1485894876.html

Další podobné články