Plovákový senzor vodní hladiny je vstupní modul pro Arduino. Tento senzor dokáže jednoduchým způsobem detekovat dosažení vysoké nebo naopak nízké hladiny v nádobě s kapalinou. Pracuje na principu magnetického spínače, kdy pohyblivá část má v sobě zabudovaný magnet a v pevné části je umístěn jazýčkový kontakt citlivý na mag. pole (reed switch).
Pro uchycení v nádrží je na pevné části připravená 10 mm závitová tyčka s těsnícím kroužkem a matkou. Propojovací kabel měří 36 centimetrů. Senzorem lze spínat napětí o velikosti až 250 Voltů a proud maximálně 0,5 Ampér, přičemž celkové zatížení nesmí přesáhnout 50 Wattů.

Plovákový senzor vodní hladiny

Pro úspěšné propojení plovákového senzoru a Arduino desky je nutné zapojit celkem 2 vodiče a jeden volitelný rezistor. Propojíme jeden vodič s +5V Arduina a druhý vodič s pinem D2. Rezistor o velikosti 1k-10k pak zapojíme mezi piny D2 a GND, přičemž se jedná zapojení pull-down. Odpor není nutný, ale doporučuji ho použít kvůli zamezení rušení.
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.

Plovákový senzor vodní hladiny schéma

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 senzoru.
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 senzoru. 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í senzoru a následně uložíme do proměnné aktuální čas, abychom mohli s touto proměnnou pracovat ve smyčce loop.

// Plovákový senzor vodní hladiny
// 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 plovakoveho senzoru: ");
  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 plovakoveho senzoru!");
  // uložení času aktivace
  casAktivace = millis();
}

Po nahrání uvedeného ukázkového kódu do Arduino desky s připojeným plovákovým senzorem dostaneme například tento výsledek, kde si můžete všimnout, že jsem 2x sepnul senzor posunem pohyblivého válce na senzoru.

Cas od posledni aktivace plovakoveho senzoru: 0 ms.
Cas od posledni aktivace plovakoveho senzoru: 1000 ms.
Cas od posledni aktivace plovakoveho senzoru: 2000 ms.
Detekovano sepnuti plovakoveho senzoru!
Detekovano sepnuti plovakoveho senzoru!
Cas od posledni aktivace plovakoveho senzoru: 531 ms.
Cas od posledni aktivace plovakoveho senzoru: 1531 ms.
Cas od posledni aktivace plovakoveho senzoru: 2532 ms.

Plovákový senzor vodní hladiny je šikovný modul, který nám rozšiřuje možnosti při práci s nádobami na vodu. Můžeme s ním realizovat například automatické dopouštění vody do nádrže při nízké hladině nebo naopak alarmovat uživatele o příliš vysoké hladině. Díky tomu, že senzor neobsahuje rtuť, tak se nemusíme bát jeho použití v kontaktu s vodou.
Senzor lze také použít bez Arduina jako jednoduchý spínač, přičemž pokud nám nevyhovuje aktuální chování kontaktu spínacího (NO – Normal Open) nebo rozpínacího (NC – Normal Connected), stačí obrátit pohyblivý válec na senzoru.

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/1160-plovakovy-senzor-vodni-hladiny-1449950044.html

FB tw

Další podobné články