Pro M5stick jednotky lze zakoupit různé rozšiřovací moduly, kdy pro měření analogových signálů můžeme použít například tento ADC HAT. Tento modul obsahuje obvod ADS1100, který umožňuje měřit signály o velikosti 0-12 Voltů a s rozlišením 16 bitů.
Pro jeho spojení s M5stick deskou stačí propojit 4 vodiče. Připojíme GND s GND, VCC s pinem 5V a datové piny s I2C sběrnicí. U M5stick-C modulu pak stačí použít existující pinovou lištu a jednoduše propojit modul se senzorem.
Ukázkový program najdete níže, přičemž jeho popis můžete najít na videu, které je připojeno na konci návodu. Je v něm uvedena ukázka měření napětí 0-5 Voltů díky připojenému potenciometru:
// M5 stick a jednotka ADC
// Analogově-digitální převodník
// navody.dratek.cz
// připojení potřebných knihoven
#include <M5StickC.h>
#include <Wire.h>
#include "ADS1100.h"
// vytvoření objektu ads z knihovny
ADS1100 ads;
// nastavení konstant pro měření
#define REF_VOL 3.3
#define ADC_BASE REF_VOL/32768
void setup(void) {
// zahájení komunikace s M5 stick jednotkou
M5.begin();
// zahájení komunikace po sériové lince
Serial.begin(115200);
// vymazání obsahu displeje a nastavení oranžové barvy pro text
M5.Lcd.fillScreen(BLACK);
M5.Lcd.setTextColor(ORANGE);
// nastavení I2C adresy pro ADS modul, výchozí je 0x48
ads.getAddr_ADS1100(ADS1100_DEFAULT_ADDRESS);
// nastavení zesílení
ads.setGain(GAIN_ONE); // 1x gain(default)
// ads.setGain(GAIN_TWO); // 2x gain
// ads.setGain(GAIN_FOUR); // 4x gain
// ads.setGain(GAIN_EIGHT); // 8x gain
// nastavení měřícího režimu
ads.setMode(MODE_CONTIN); // Průběžné měření (default)
// ads.setMode(MODE_SINGLE); // Mód jednorázového měření
// nastavení počtu měření za sekundu (SPS)
ads.setRate(RATE_8);
// ads.setRate(RATE_16);
// ads.setRate(RATE_32);
// ads.setRate(RATE_128);
// nastartování měření
ads.setOSMode(OSMODE_SINGLE);
ads.begin();
}
void loop(void) {
// proměnné pro kontrolu připojeného modulu
byte error;
// otestování komunikace s I2C modulem
Wire.beginTransmission(ads.ads_i2cAddress);
error = Wire.endTransmission();
// při vrácení hodnoty 0 je připojen I2C modul
if (error == 0) {
// proměnné pro uložení výsledků
int16_t result, vol;
float temp;
Serial.println("Zahajeni diferencialniho mereni s ADS1100");
Serial.println(" ");
// načtení výsledku měření
result = ads.Measure_Differential();
Serial.print("Digitalni hodnota mezi kanaly 0 a 1: ");
Serial.println(result);
M5.Lcd.fillScreen(BLACK);
// proměnná pro výpis dat na displej
char data[20] = { 0 };
// uložení výsledku ve formě celého čísla
sprintf(data, "%d", result);
// přepočet načtené hodnoty na napětí
temp = result * ADC_BASE * 4;
vol = temp * 1000;
// výpis dat na displej M5 stick
M5.Lcd.drawCentreString("Raw data ", 0, 10, 2);
M5.Lcd.drawCentreString(data, 0, 30, 4);
sprintf(data, "%d", vol);
M5.Lcd.setTextColor(GREEN);
M5.Lcd.drawCentreString("Vysledek ", 0, 90, 2);
M5.Lcd.drawCentreString(data, 0, 110, 4);
M5.Lcd.drawCentreString("mV", 70, 110, 2);
Serial.println(" ");
Serial.println(" *************************** ");
Serial.println(" ");
}
else {
Serial.println("ADS1100 neni pripojen!");
Serial.println(" ");
Serial.println(" ************ ");
Serial.println(" ");
M5.Lcd.setTextFont(4);
M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK);
M5.Lcd.drawString("Modul nenalezen.", 0, 20, 2);
}
// krátká pauza před novým měřením
delay(300);
}
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.