Fotoelektrický snímač otáček je vstupní modul pro Arduino. Tento snímač je původně používaný v tiskárnách od firmy Hewlett Packard, kde slouží pro detekci polohy tiskové hlavy. Uvnitř snímače najdeme optickou bránu, která díky dvěma snímačům dokáže detekovat nejen průchod předmětu, ale i směr průchodu. Součástí balení je kromě senzoru i nerezové kolečko, které slouží jako otočný čtený element. Je ale nutné ho správně upevnit s ohledem na průchod senzorem. Pro napájení je možné použít 3,3 nebo 5 Voltů z Arduina.
Pro úspěšné propojení senzoru proudu a Arduino desky propojíme celkem 4 vodiče. Připojíme „+“ na 5V Arduina, „-„ na GND, O1 na pin D2 a O2 na pin D3. Pro datové piny je nutné použít piny, které umí funkci přerušení (anglicky interrupt), kdy u Arduino UNO jsou to piny D2 a D3. Více informací najdete zde https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/.
Ukázkový kód obsahuje na svém začátku nastavení čísel propojovacích pinů a vytvoření proměnných pro běh programu. Ve funkci setup zahájíme komunikaci po sériové lince a poté nastavíme oba datové piny jako vstupní. V posledním kroku nastavíme přerušovací piny tak, aby každý reagoval na správnou změnu a zavolal příslušnou funkci. Nekonečná smyčka loop v prvním kroku vždy nahraje poslední přečtený stavu pinu O1 do proměnné předchozí stav a poté porovná starou hodnotu a aktuální pozici. Pokud došlo ke změně pozice, vypíšeme novou pozici po sériové lince a uložíme si aktuální pozici jako starou hodnotu, aby nedocházelo k tištění pozice každý běh smyčky. Funkce nactiO1 je zavolána vždy při přerušení pinu O2. V této funkci načteme stav pinu O1 a poté kontrolujeme, jestli nedošlo ke změně stavu oproti předchozí uložené hodnotě. Pokud ke změně došlo, tak podle stavu pinu O2 buď přičteme nebo odečteme jedničku z proměnné pozice. Funkce nactiO2 je zavolána vždy při přerušení pinu O1. V této funkci pouze načteme stav pinu O2 do proměnné.
// Fotoelektrický snímač otáček HP
// navody.dratek.cz
// nastavení čísel propojovacích pinů
#define pinO1 2
#define pinO2 3
// proměnné pro běh programu
int pozice = 0;
int predchoziStav = LOW;
int staraHodnota = 0;
int stavO1 = LOW;
int stavO2 = LOW;
void setup() {
// zahájení komunikace po sériové lince
Serial.begin(9600);
// nastavení vstupních pinů
pinMode(pinO1, INPUT);
pinMode(pinO2, INPUT);
// nastavení přerušovacích rutin pro oba piny
attachInterrupt(digitalPinToInterrupt(pinO1), nactiO2, FALLING);
attachInterrupt(digitalPinToInterrupt(pinO2), nactiO1, CHANGE);
}
void loop() {
// uložení stavu pinu 01 jako předchozí hodnoty
predchoziStav = stavO1;
// porovnání staré hodnoty a aktuální pozice,
// pokud se liší, vytiskneme aktuální pozici
if (pozice != staraHodnota) {
Serial.println(pozice, DEC);
// uložení aktuální pozice do proměnné,
// aby docházelo k tištění pouze při změně
staraHodnota = pozice;
}
}
void nactiO1() {
// načtení stavu pinu O1
stavO1 = digitalRead(pinO1);
// kontrola stavu oproti předchozímu měření
if ((predchoziStav == LOW) & (stavO1 == HIGH)) {
// pokud došlo ke změně, tak podle stavu O2
// přičteme nebo odečteme pozici
if (stavO2 == LOW) {
pozice--;
}
else {
pozice++;
}
}
}
void nactiO2() {
// načtení stavu pinu O2 do proměnné
stavO2 = digitalRead(pinO2);
}
Po nahrání ukázkového kódu do Arduino desky s připojeným snímačem otáček si můžete vyzkoušet pohyb předmětu z jedné či druhé strany snímače a dostanete například tento výsledek:
-3
-2
-1
0
-1
-2
-3
Fotoelektrický snímač otáček je zajímavá ukázka, jak lze snímat otáčky včetně informace o směru pomocí jednoduché kombinace dvou snímačů. Uvedený ukázkový program slouží hlavně pro otestování samotného senzoru, protože například následná kalibrace v zařízení či měření rychlosti už záleží na umístění a provedení otočného elementu. Tento snímač pak lze použít v různých zařízeních, kde potřebujeme snímat otáčky pomocí foto elementů bez ovlivňování samotného zařízení.
Motorizovaný kulový ventil. Má široké uplatnění v různých průmyslových a obytných instalacích. Může být integrován do automatických systémů řízení, kde je možné ovládat průtok dálkově nebo automatizovaně podle předem nastavených podmínek.
Motorizované kulové vently s obvodem CR01, CR02, CR03 nebo CR04 je poměrně jednoduché po elektrické stránce správně zapojit. U ventilu s obvodem CR05 je tomu ale trochu jinak - ventil si sám nehlídá krajní polohy otevření, nebo zavření. Z toho důvodu vznikl tento článek, ukazující některé výhody, použití a především správné zapojení ventilu s obvodem CR05.