Předpokládám že chcete použít čidlo jako je ACS712 a podobné.
Zřejmě budete zklamán, protože toto čidlo nikdy nemá nulu přesně na 2.5V, uvidíte sám.
Řeší se to tak, že se použijí dva A/D vstupy, a matematicky se zpracují až v SDS-C programu nebo někde později na serveru atd.
Máte čidlo napájené ze zdroje +5V, označíme si to napětí jako Vzdroj.
V praxi to nikdy nebude přesně +5.0000V, a to je taky ten problém - ale zde je dostatečné řešení.
První A/D vstup se zapojí na výstup čidla a měří absolutní hodnotu 0V až Vzdroj.
Druhý A/D vstup se zapojí na rezistorový dělič (dva rezistory s odporem 10 kiloOhm, kraje deliče na 0V a Vzdroj), takže na středu děliče je právě polovina Vzdroj.
Pak už je to jednoduché, například v SDS-C program si napíšete jednoduchou matematiku a máte výstup.
var AD1, AD2, spoctene_napeti_na_cidle_mV, spoctene_napeti_na_cidle_raw;
// precteme hodnoty z AD vstupu, v surovych digitalnich jednotkach
// AD1: Vout cidla
AD1 = sys[431];
// AD2: delic 1/2 z Vzdroj
AD2 = sys[432];
// spocteme
spoctene_napeti_na_cidle_raw = AD1 - AD2;
// prevedeme na miliVolt
// predpoklad:
// - rozsah AD1 a rozsah AD2 je zapojen v rozmezi 0V a z +5.000V
// - je to SDS MICRO ktere tedy ma surove digitalni data v rozsahu 0 az 1023
spoctene_napeti_na_cidle_mV = (spoctene_napeti_na_cidle_raw * 5000) / 1023;
// spoctene_napeti_na_cidle_mV muze mit hodnotu od "-2500" az po "+2500"
// print
echo('napeti na vystupu cidla je ', spoctene_napeti_na_cidle_mV ,' miliVolt ');
Vidíte jak je to jednoduche.
Pokud chcete dále hodnotu z "spoctene_napeti_na_cidle_mV" převést na jinou jednotku, klidně můžete.
Podstatné je, že teprve tímto výpočtem (viz program výše) zde máte hodnotu od konce (-2.5V) do konce (+2.5V) rozsahu, automaticky se to totiž (trikem s AD2) převede z měřeného napětí na výstupu čidla samotného (0V až 5V).
Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !