Proudový snímač INA219 je vstupní modul, který umožňuje s pomocí Arduina měřit stejnosměrný proud. Tento senzor od firmy Texas Instruments dokáže měřit průchozí stejnosměrný proud o velikosti až 3,2 Ampérů a to v obou směrech, tedy kladný i záporný proud. Co se týká vstupního napětí měřeného obvodu, tak je možné použít až +- 26 Voltů. Měření proudu u tohoto modulu funguje na principu měření úbytku napětí na bočníku, který má zde velikost 0,1 ohmu. Obvod INA219 pak umožňuje měřit napětí a proud v několika módech, které se liší v maximálním napětí a proudu, kdy s nižšími hodnotami obou veličin zlepšujeme rozlišení výsledků. V programu je uvedena ukázka pro nejvyšší rozsahy (označena jako 32V/2A – platí maxima obvodu 26V/3,2A!, rozlišení proudu je 0,8 mA), dále menší proudový rozsah (označení 32V/1A - lepší rozlišení proudu) a jako poslední konfigurace 16V/400mA, která má nejlepší rozlišení pro napětí i proud (0,1 mA). Na modulu se také nachází pájecí plošky označené jako A0 a A1, kterými lze měnit I2C adresu. Po jejich změně tedy můžeme připojit až čtyři snímače INA219 na jednu sběrnici I2C (při zapájení A0 přičteme jedničku k adrese 0x40, s A1 přičteme čtyřku – při zapájení obou plošek tedy dostáváme adresu 0x45).
Pro úspěšné propojení snímače INA219 s Arduinem stačí propojit celkem čtyři vodiče. Propojíme VCC s 3,3 nebo 5 V Arduina, GND se zemí Arduina, SCL s pinem A5 a SDA s pinem A4. Jak již bylo zmíněno, komunikace mezi Arduinem a senzorem probíhá po sběrnici I2C, takže je nutné využít pro datové piny SCL a SDA odpovídající I2C piny na Arduino desce. Zátěž pak zapojíme na svorky Vin+ a Vin- do série v měřeném obvodu, kdy pro správně měření průchozího napětí je nutné zapojit kladný pól na svorku Vin+.
Pro správné přeložení a nahrání uvedeného ukázkového kódu je nutné stáhnout a naimportovat knihovnu INA219, návod jak na to je uveden zde. Ukázkový kód obsahuje na začátku připojení potřebných knihoven, definování adresy senzoru a inicializaci senzoru z knihovny. V podprogramu setup nejprve zahájíme komunikaci po sériové lince, poté zahájíme komunikaci senzoru s Arduinem a následně můžeme nastavit kalibraci, jak bylo zmíněno v úvodu návodu. V nekonečné smyčce loop jako první vytvoříme proměnné pro ukládání všech výsledků měření a následně do nich načteme pomocí knihovny všechny dostupné údaje. Mezi tyto údaje patří vstupní napětí, napětí naměřené na bočníku a průchozí proud. Jako doplněk je zde ještě výpočet napětí na zátěži, které se skládá z naměřeného vstupního napětí a jedné tisíciny napětí na bočníku. V dalším kroku vytiskneme všechny dostupné údaje po sériové lince a po pauze dvou vteřin opakujeme nekonečnou smyčku.
// Senzor proudu INA219
// připojení potřebných knihoven
#include <Wire.h>
#include <Adafruit_INA219.h>
// definování adresy senzoru
#define ADDR 0x40
// inicializace senzoru s nastavenou adresou z knihovny
Adafruit_INA219 ina219(ADDR);
void setup(void) {
// komunikace po sériové lince rychlostí 9600 baud
Serial.begin(9600);
// zahájení komunikace se senzorem INA219
ina219.begin();
// nastavení kalibrace, k dispozici jsou 3 režimy
// režim 32V a 2A má největší rozsahy, ale nejmenší přesnost
ina219.setCalibration_32V_2A();
// režim 32V a 1A má lepší rozlišení průchozího proudu
// ina219.setCalibration_32V_1A();
// režim 16V a 400mA má nejlepší rozlišení proudu i napětí
// ina219.setCalibration_16V_400mA();
}
void loop(void) {
// vytvoření proměnných pro uložení výsledků měření
float napetiVstup = 0;
float napetiBocnik = 0;
float napetiZatez = 0;
float proud = 0;
// načtení všech dostupných údajů do proměnných
napetiVstup = ina219.getBusVoltage_V();
napetiBocnik = ina219.getShuntVoltage_mV();
napetiZatez = napetiVstup + (napetiBocnik / 1000);
proud = ina219.getCurrent_mA();
// vytištění všech dostupných údajů po sériové lince
Serial.print("Vstupni napeti: ");
Serial.print(napetiVstup);
Serial.println(" V");
Serial.print("Napeti na bocniku: ");
Serial.print(napetiBocnik);
Serial.println(" mV");
Serial.print("Napeti zateze: ");
Serial.print(napetiZatez);
Serial.println(" V");
Serial.print("Pruchozi proud: ");
Serial.print(proud);
Serial.println(" mA");
Serial.println("");
// pauza před dalším měřením
delay(2000);
}
Po nahrání programu do Arduino desky s připojeným senzorem INA219 dostaneme například tento výsledek:
Vstupni napeti: 3.28 V
Napeti na bocniku: 0.53 mV
Napeti zateze: 3.28 V
Pruchozi proud: 5.20 mA
Vstupni napeti: 3.28 V
Napeti na bocniku: 0.56 mV
Napeti zateze: 3.28 V
Pruchozi proud: 5.10 mA
Proudový snímač INA219 je zajímavý vstupní modul, s kterým můžeme pomocí Arduina měřit stejnosměrný proud v různých obvodech. Velkou výhodou tohoto senzoru je jeho rozlišení 12 bitů, kdy můžeme dokonce přepínat mezi více módy a tím si zpřesnit naměřené výsledky. Tento modul by tedy mohl sloužit například při stavbě vlastního Arduino měřiče stejnosměrného proudu či přímo multimetru.
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.