Mikrovlnný radarový senzor pohybu RCWL-0516

Mikrovlnný radarový senzor pohybu je vstupní modul pro Arduino. Tento modul s názvem RCWL-0516 obsahuje senzor RCWL-9196, který provádí veškeré zpracování dat. Na modulu se pak nachází i anténa, s kterou dokáže senzor snímat pohyb v okruhu až 7 metrů. Snímání pohybu funguje na principu Dopplerova jevu a probíhá v plném rozsahu 360 stupňů.
Pro napájení senzoru je možné použít napětí v rozsahu 4-28 Voltů, při jehož použití můžeme také získat napětí 3,3 Voltu na pinu OUT. Přes tento pin je ale také možné přímo modul napájet napětím 3,3 Voltu. Proudový odběr se pohybuje okolo maximálně 3 miliAmpér. A velikosti modulu jsou 35,9 x 17,3 milimetrů.

Pro úspěšné propojení radarového senzoru a Arduino desky je nutné zapojit celkem 3 vodiče. Propojíme 3V3 s +3V3 Arduina, GND se zemí Arduina a OUT s pinem D2. Pro datový pin OUT je také možné zvolit jiný volný datový pin, jen je nutné tuto volbu provést také na začátku programu.

Ukázkový kód obsahuje na svém začátku nastavení čísel propojovacích pinů a vytvoření proměnné, do které budeme ukládat detekci změny.
V podprogramu setup provedeme nejprve inicializaci sériové linky s rychlostí 9600 baudů a následně nastavíme pro oba piny jejich správný směr.
Nekonečná smyčka loop začíná vždy načtením stavu do lokální proměnné stav. Tuto proměnnou následně zkontrolujeme společně s neaktivní změnou, přičemž pokud platí obě podmínky, provedeme následující. Pro indikaci detekce pohybu zapneme LED diodu a také vytiskneme zprávu po sériové lince. A jako třetí krok nastavíme proměnnou zmena na hodnotu 1, abychom tak zamezili opětovnému výpisu zpráv pro jednu detekci. Druhá if podmínka obsahuje kontrolu této stavové proměnné na hodnotu 0, tedy žádnou detekci. Pokud se po předchozí detekci senzor opět nastaví na klidovou hodnotu 0, vypneme LED diodu a nastavíme proměnnou zmena zpět na hodnotu 0, abychom tak umožnili novou detekci pohybu. Na konci smyčky loop se nachází už jen krátká pauza před novým během.

// Mikrovlnný senzor pohybu
// navody.dratek.cz

// nastavení čísel propojovacích pinů
#define pinOut  2
#define pinLED 13
// proměnná pro detekci změny
bool zmena = 0;

void setup() {
  // zahájení komunikace po sériové lince
  Serial.begin(9600);
  // nastavení směrů pinů
  pinMode(pinOut, INPUT);
  pinMode(pinLED, OUTPUT);
}

void loop() {
  // načtení stavu pinu do proměnné
  int stav = digitalRead(pinOut);
  // pokud je detekován pohyb a zároveň není nastavená změna
  if ((stav == 1) && (zmena == 0)) {
    // zapneme LED diodu
    digitalWrite(pinLED, HIGH);
    // vytiskneme zprávu po sériové lince
    Serial.println("Detekovan pohyb!");
    // nastavíme proměnnou změna, abychom zamezili
    // opětovnému výpisu zpráv pro jednu detekci
    zmena = 1;
  }
  // pokud se ukončena detekce pohybu
  if (stav == 0) {
    // vypneme LED diodu
    digitalWrite(pinLED, LOW);
    // nastavíme změnu na 0 pro aktivaci nové detekce
    zmena = 0;
  }
  // krátká pauza před novým během smyčky
  delay(100);
}

Po nahrání uvedeného ukázkového kódu do Arduino desky s připojeným snímačem pohybu dostaneme například tento výsledek, kde si můžete všimnout, že jsem 3x provedl pohyb v okolí senzoru.

10:30:24.793 -> Detekovan pohyb!
10:30:37.999 -> Detekovan pohyb!
10:30:45.494 -> Detekovan pohyb!

Mikrovlnný radarový senzor pohybu je velice šikovný malý modul, který umožňuje jednoduše detekovat pohyb v okruhu až 7 metrů. Hodí se tak do různých projektů, ať už jako bezpečnostní nebo herní prvek, který nám pomůže s detekcí pohybu osob v okolí. Vedle své malé velikosti pak vyniká i svým velmi dobrým výkonem, a přitom malým proudovým odběrem. S vhodně napsaným programem ho lze tedy i doporučit do bateriově napájených zaří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/1755-mikrovlnny-radarovy-senzor-rcwl-0516.html

Další podobné články