Další Arduino termostat, ale s OpenTherm. Ventilátor využívající Arduino, který závisí na teplotě Vlastní termostat pro vytápění pomocí Arduina.

Další Arduino termostat, ale s OpenTherm. Ventilátor využívající Arduino, který závisí na teplotě Vlastní termostat pro vytápění pomocí Arduina.

Hlavním úkolem ovladače chladničky je udržovat nastavenou teplotu v komoře. Regulátor teploty to provede změnou elektrického napájení na Peltierově modulu.

V předchozí lekci jsme vyvinuli regulátor výkonu. Spojení mezi regulátory výkonu a teploty vypadá takto.

  • Regulátor teploty přijímá naměřenou teplotu, porovnává ji s nastavenou teplotou a vypočítává nastavenou hodnotu výkonu pro regulátor výkonu.
  • Regulátor výkonu generuje PWM odpovídající zadanému výkonu.

Regulátor výkonu jsme postavili podle integrálního regulačního zákona. Ke stabilizaci teploty použijeme složitější regulační algoritmus - proporcionálně-integrálně-derivační (PID) regulátor.

PID regulátor.

V předchozí lekci jsem podrobně hovořil o . Zdůraznil jeho výhody i nevýhody.

Regulátor pracující na tomto principu má vysokou přesnost. Zbývající kritéria kvality regulace – rychlost a stabilita – nejsou na úrovni.

Pro dosažení vysokého výkonu pro všechna kritéria je nutné použít regulátor, který kombinuje různé regulační zákony.

Proporcionálně-integrálně-derivační (PID) regulátor je právě takovým zařízením. Generuje výstupní signál, který je součtem tří složek s různými přenosovými charakteristikami. Díky tomu PID regulátor poskytuje vysoce kvalitní řízení a umožňuje optimalizovat řízení podle individuálních kritérií.

Na generování výstupního signálu PID regulátoru se podílí následující:

  • Proporcionální složka– hodnota je úměrná chybě neshody (rozdíl mezi zadanou a skutečnou hodnotou řízeného parametru).
  • Integrační komponenta– integrál chyby neshody.
  • Diferenciační složka– derivace chyby neshody.

Matematická forma zápisu zákona PID regulátoru je:

o(t) = P + I + D = K p e(t) + K i ∫e(t)dt + K d de(t)/dt

  • o(t) – výstupní signál;
  • P – poměrná složka;
  • I – integrační složka;
  • D – rozlišovací složka;
  • Kp, Ki, Kd – koeficienty proporcionálních, integračních, derivačních vazeb;
  • e(t) – chyba neshody.

Ve schematické formě může být PID regulátor znázorněn následovně.

Blokové schéma PID regulátoru napětí U vypadá takto.

  • Naměřené napětí Ureal(t) se odečte od daného Uset.
  • Výsledná chyba neshody e(t) je přiváděna do proporcionálních, integračních a diferenciačních spojů.
  • Jako výsledek součtu složek se získá regulační akce o(t), která se aplikuje na regulační prvek.

Při implementaci PID regulátoru do softwaru probíhají výpočty výstupního signálu v pravidelných intervalech. Tito. Ovladač je diskrétní v čase. Proto dále budu používat výrazy: předchozí stav signálu, předchozí hodnota atd. Hovoříme o stavu systému v předchozím časovém odběrovém místě.

Komponenty PID regulátoru.

Znovu. Výstupní signál PID regulátoru je součtem tří složek:

  • úměrný;
  • integrující;
  • rozlišování.

Proporcionální složka.

P(t) = Kp * e(t)

Nemá paměť, tzn. hodnota výstupního signálu nezávisí na předchozím stavu systému. Jednoduše se na výstup přenese následující chyba vynásobená faktorem. Výstupní signál kompenzuje odchylku řízeného parametru. Čím větší je chyba neshody, tím větší je signál. Pokud je chyba 0, výstupní signál je také 0.

Proporcionální složka není schopna chybu zcela kompenzovat. To je vidět ze vzorce. Výstupní signál je Kp krát chyba. Pokud je chyba nesouladu 0, pak je výstupní signál regulátoru 0. A pak není čím kompenzovat.

Proto u proporcionálních regulátorů vždy dochází k tzv. statické chybě. Lze ji snížit zvýšením koeficientu Kp, ale to může vést ke snížení stability systému a dokonce k vlastním oscilacím.

Nevýhody proporcionálních regulátorů zahrnují:

  • přítomnost chyby statické regulace;
  • nízká stabilita s rostoucím koeficientem.

Existuje významná výhoda:

  • Vysokorychlostní regulace. Odezva proporcionálního regulátoru na následující chybu je omezena pouze dobou vzorkování systému.

Regulátory fungující pouze podle proporčního zákona se používají zřídka.

Hlavním úkolem proporcionální složky v PID regulátoru je zvýšení výkonu.

Integrační komponenta.

I(t) = K i ∫e(t)dt

Proporcionální k integrálu chyby neshody. S ohledem na časovou diskrétnost regulátoru můžeme napsat toto:

I(t) = I(t-1) + K i * e(t)

  • I(t-1) – hodnota I v předchozím časovém odběrovém místě.

Chyba nesouladu se vynásobí koeficientem a přičte k předchozí hodnotě integračního spoje. Tito. výstupní signál se neustále akumuluje a v průběhu času zvyšuje svůj dopad na objekt. Chyba neshody je tedy plně kompenzována i pro malé hodnoty chyby a koeficientu Ki. V ustáleném stavu je výstupní signál regulátoru kompletně zajišťován integrační komponentou.

Nevýhody integrovaného regulátoru zahrnují:

  • nízký výkon;
  • průměrná stabilita.

Důstojnost:

  • Schopnost plně kompenzovat chybu nesouladu při jakémkoli zisku.

V praxi se často používají integrační regulátory (pouze integrační komponenta) a proporcionálně integrační regulátory (integrační a proporcionální komponenty).

Hlavním úkolem integračního článku v PID regulátoru je kompenzovat statickou chybu a zajistit vysokou přesnost regulace.

Diferenciační složka.

D(t) = Kd de(t)/dt

Úměrné rychlosti změny následující chyby. Jakýsi indikátor zrychlení chyby nesouladu. Diferenciační složka předpovídá odchylky řízeného parametru v budoucnu a působí proti této odchylce. Zpravidla kompenzuje zpoždění vlivu regulátoru na objekt a zvyšuje stabilitu systému.

S ohledem na časovou diskrétnost regulátoru lze derivační složku vypočítat následovně:

D(t) = Kd * (e(t) - e(t-1))

Ukazuje, jak moc se změnila hodnota chyby nesouladu za jednu časovou jednotku diskrétnosti regulátoru.

Neexistují žádné regulátory skládající se z jediného rozlišovacího článku.

Hlavním úkolem diferenciační vazby v PID regulátoru je zvýšení stability.

Nastavení PID regulátoru.

Kvalita řízení PID regulátorů do značné míry závisí na tom, jak optimálně jsou zvoleny koeficienty. Koeficienty PID regulátoru se v praxi určují v systému s reálným objektem výběrem. Existují různé způsoby nastavení. Budu mluvit pouze o obecných principech.

Kvalita regulace se posuzuje podle přechodové odezvy regulátoru. Tito. podle grafu změn řízeného parametru v čase.

K tradičním bodům sekvence ladění PID regulátoru bych dodal, že v první řadě je nutné rozhodnout, která kritéria kvality regulace jsou preferována.

V minulé lekci nás při návrhu regulátoru výkonu zajímala především přesnost a stabilita. A dokonce jsme uměle snižovali výkon. Některé regulátory pracují v podmínkách výrazného hluku a stabilita je pro ně důležitější, jiné vyžadují vysoký výkon i na úkor přesnosti. Kritéria optimalizace se mohou lišit. Obecně jsou PID regulátory konfigurovány tak, aby zajistily, že všechna kritéria kvality regulace jsou na vysoké úrovni.

Komponenty PID regulátoru se konfigurují samostatně.

  • Integrační a diferenciační vazby jsou vypnuty a je zvolen koeficient proporcionální vazby. Pokud je regulátor proporcionálně integrační (neexistuje žádná diferenciační vazba), je dosaženo úplné absence oscilací v přechodové odezvě. Při nastavení regulátoru na vysokou rychlost mohou oscilace zůstat. Rozlišovací článek se je pokusí kompenzovat.
  • Rozlišovací článek je připojen. Jeho koeficient má za cíl eliminovat výkyvy v regulačním parametru. Pokud se to nepodaří, snižte proporcionální koeficient.
  • Díky integračnímu propojení je odstraněna zbytková chyba nesouladu.

Ladění PID regulátoru je iterativní povahy. Tito. body pro výběr koeficientů lze mnohokrát opakovat, dokud není dosaženo přijatelného výsledku.

Díky svému vysokému výkonu a všestrannosti jsou PID regulátory široce používány v systémech průmyslové automatizace.

V další lekci vyvineme PID regulátor teploty.

Při čtení první části nadpisu si mnozí z vás pravděpodobně pomysleli – další termostat na strádajícím Arduinu. A... Je pravda - ano, to je další termostat pro jiný kotel, jiný dům, ale to je pravda jen částečně - v článku se nechci soustředit na samotné zařízení - je jich opravdu dost (články ). Termostat samozřejmě popíšu, ale rád bych mluvil více o tom, jak jsem ke kotli připojil samotný mikrokontrolér. Takže pro případné zájemce prosím...

Jak to všechno začalo

Nejprve chci říci, že nejsem vůbec programátor a nikdy předtím jsem se nezabýval skutečným mikrokontrolérem. Moje první seznámení s AVR MK (a s MK obecně) bylo ještě na střední škole, kdy jsem chtěl vědět, jak tato záhadná věc vlastně funguje. Přečetl jsem několik článků a od té doby mám v paměti jen útržky, které by se daly popsat jen dvěma slovy - DDR a PORT - a tím mé znalosti skončily. Pak byla vysoká škola, 5. ročník – „Programování mikrokontrolérů“, kde jsme se všichni seznámili s MSC51 ve virtuálním prostředí. Už tam byla přerušení, časovače a všechno ostatní. No, s tímto množstvím znalostí jsem přišel k problému. Skončeme u této autobiografické poznámky a přejděme k zajímavější části.

Takže, kde vlastně začala tvorba termostatu?Po instalaci autonomního topného systému s plynovým kotlem jsem jako mnozí narazil na obvyklé problémy - teplota v domě byla velmi závislá na počasí venku - mráz - je to zima v bytě, musíte zvýšit teplotu chladicí kapaliny v bateriích, oteplilo se - naopak. Takové tance s tamburínou mi moc neseděly, protože... seřízení kotle bylo komplikované tím, že byl instalován za dvířky a dvířka byla podepřena mikrovlnnou troubou, na které ležela hromada odpadků. No, dostanete představu - jehla ve vejci, vejce v kachně atd.

Tento problém byl vyřešen velmi jednoduše – pomocí OTC (Outside Temperature Compensation) čidla, které je připojeno ke kotli a umožňuje mu automaticky upravovat teplotu chladicí kapaliny v závislosti na venkovní teplotě. Problém se zdál být vyřešen, ale přečtení servisního návodu kotle (Ferolli Domiproject C24D) rychle pošlapalo mé naděje - připojení externího teplotního čidla není u tohoto modelu zahrnuto. Všechno? Všechno. A teď už jsme to asi mohli dokončit, ale v létě při bouřce mi stále nejasným způsobem dohoří ovládací deska v kotli a při rozhovoru se servisem (ta deska byla později opraveno), zeptal jsem se, zda je možné připojit OTC k mému kotli? Odpověděl, že se připojují pomocí externích termostatů. To mi utkvělo v paměti, ale pořádně jsem se na to nesoustředil, dokud nenastalo chladné počasí, a pak to byl stále stejný problém.

Při listování ve stejných servisních pokynech, ale s cílem vidět, jak je zapojen termostat, jsem si všiml, že „regulátor OpenTherm“ je připojen ke stejným svorkám. Tehdy jsem si uvědomil – to je ONO! Vyhledávání Google pro „OpenTherm Arduino“ mě opět zklamalo – nic zvlášť rozumného. Byl tam monitor zpráv, ale to není ono – nemám co poslouchat – potřebuji jen termostat.

Automatický ventilátor Arduino, který se sám zapne, když teplota v místnosti dosáhne určité hodnoty.

V tomto tutoriálu se dozvíte o ventilátorech Arduino řízených teplotou pomocí senzoru a relé DHT22. Pomocí senzoru DHT22 získáme hodnotu teploty a zobrazíme tuto hodnotu teploty na LCD displeji. Poté zkontrolujeme, zda je hodnota teploty vyšší než 35 nebo ne, pokud je teplota vyšší než 35, sepne se relé a ventilátor se začne otáčet.

Příslušenství

Pro náš projekt budeme potřebovat následující díly:

Schéma zapojení ventilátoru Arduino

Schéma našeho ventilátoru vypadá takto:

Pojďme zjistit, jak spojit všechny části. Nejprve proveďte připojení LCD displeje k Arduinu následovně:

  • Připojte pin VSS na LCD k zemi Arduino.
  • Připojte pin VDD k 5V Arduinu.
  • Připojte kolík V0 ke středovému kolíku potenciometru 10K. Další dva piny potenciometru připojte na 5V a na kostru.
  • Připojte kolík RS ke kolíku 2 Arduina.
  • Připojte R/W pin k zemi Arduino. Tím se LCD přepne do režimu čtení.
  • Připojte pin E (Enable) ke kolíku 3 Arduina.
  • Připojte piny D4-D7 k pinům 4, 5, 6, 7 Arduina.
  • Připojte kolík 15, což je kladný vodič podsvícení LED, k 5kolíkovému kolíku přes odpor 220 ohmů.
  • Připojte kolík 16, což je záporný kolík podsvícení LED, k zemi Arduino.

Poté připojte reléový modul k Arduinu. Na vstupní straně reléového modulu proveďte připojení následovně:

  • Připojte pin VCC reléového modulu k 5V pinu Arduina.
  • Připojte pin IN reléového modulu ke kolíku 9 Arduina.
  • Připojte GND pin reléového modulu k GND Arduina.

Na výstupní straně reléového modulu připojte záporný pól 9V baterie na společný (C) reléového modulu a připojte NC reléového modulu k zápornému pólu ventilátoru. Poté připojte kladný pól baterie ke kladnému pólu ventilátoru.

Nakonec proveďte připojení pro snímač teploty a vlhkosti DHT22.

  • Připojte kolík 1 DHT22, což je kolík VCC, k 5V Arduina.
  • Připojte kolík 2 DHT22, což je datový kolík, k kolíku 8 Arduina.
  • Připojte kolík 4 z DHT22, což je zemnící kolík, k zemi Arduino.

Skica pro Arduino

Níže si můžete zkopírovat a stáhnout kód do svého Arduino Uno.

#include "DHT.h" #include "LiquidCrystal.h" LiquidCrystal lcd(7, 8, 9, 10, 11 ,12); #define DHTPIN 6 #define DHTTYPE DHT22 DHT senzor(DHTPIN, DHTTYPE); int relé_pin = 9; void setup() ( lcd.begin(16,2); sensor.begin(); pinMode(relay_pin, OUTPUT); digitalWrite(relay_pin, HIGH); ) void loop() ( lcd.clear(); float t = senzor .readTemperature(); //čtení teploty ze senzoru // Kontrola, zda senzor odesílá hodnoty nebo ne if (isnan(t)) ( lcd.print("Failed"); delay(1000); return; ) lcd.setCursor( 0,0); lcd.print("Teplota: "); lcd.print(t); lcd.print(" C"); if (t > 35)( digitalWrite(relay_pin, LOW); lcd.setCursor(0 ,1); lcd.print("Ventilátor je zapnutý"); delay(10); ) else( digitalWrite(relay_pin, HIGH); lcd.setCursor(0,1); lcd.print("Ventilátor je VYPNUTO "); ) zpoždění (2000); )

Vysvětlení kódu

Nejprve jsme zahrnuli knihovny pro snímač DHT22 a pro LCD displej. Knihovny vám mohou pomoci zjednodušit váš kód.

Všechny potřebné knihovny pro vaše projekty si můžete stáhnout na našem webu v sekci -.

#include "DHT.h" #include "LiquidCrystal.h"

Následně jsme inicializovali piny, na které jsme připojili LCD a DHT22 senzor. Poté jsme určili typ DHT senzoru, který se používá. Existuje mnoho dalších typů DHT senzorů, jako je DHT11, takže identifikace typu je zde důležitá.

LiquidCrystal lcd(2, 3, 4, 5, 6, 7); #define DHTPIN 8 #define DHTTYPE DHT22 DHT senzor(DHTPIN, DHTTYPE);

Ve funkci nastavení jsme dali příkaz DHT22 a LCD, aby začaly komunikovat s Arduinem. Potom jsme deklarovali pin relé jako výstupní pin, protože do relé dáme napětí z Arduina, aby se relé aktivovalo. Relé pracuje obráceně (High znamená pro relé nízké).

Lcd.begin(16,2); sensor.begin(); pinMode(relay_pin, OUTPUT); digitalWrite(relay_pin, HIGH);

Ve funkci cyklu vymažeme LCD obrazovku a poté odečteme hodnotu teploty ze senzoru.

Lcd.clear(); float t = sensor.readTemperature(); if (isnan(t)) ( lcd.print("Failed"); delay(1000); return; )

Poté vytiskneme hodnotu teploty na LCD a pokud je hodnota teploty větší než 35, sepne se relé a ventilátor se začne točit.

Lcd.setCursor(0,0); lcd.print("Teplota: "); lcd.print(t); lcd.print("C"); if (t > 35)( digitalWrite(relay_pin, LOW); lcd.setCursor(0,1); lcd.print("Ventilátor je zapnutý"); zpoždění(10); )

To je vše. Mějte skvělý projekt!

Podělí se s vámi o své zkušenosti s tvorbou chytrého regulátoru otáčení ventilátoru, pomocí tepelného senzoru, LCD displeje a samozřejmě Arduina.

Před několika měsíci jsem četl řadu článků o Arduinu a velmi mě toto zařízení zaujalo a brzy jsem se rozhodl si ho koupit. Nutno podotknout, že do mikroelektroniky mám daleko, a tak jsem si desku oblíbil především pro její relativní jednoduchost ovládání. Po fušování do LED a systémů „Hello world“ jsem chtěl udělat něco praktického a zároveň se blíže seznámit s možnostmi Arduina. S ohledem na abnormálně horké léto roku 2010 vznikl nápad sestavit chladič rychlosti v závislosti na teplotě se všemi souvisejícími charakteristikami zobrazenými na LCD. Doufám, že se toto schéma nebo jeho variace budou někomu hodit, a tak jsem se rozhodl své náčrty zveřejnit.

Pro toto schéma budeme potřebovat:

  • Vlastně samotná deska Arduino nebo podobné;
  • Prkénko na chleba pro montáž součástí obvodů;
  • Displej WH1601A-NGG-CT se zapnutým trimovacím odporem 20 kOhm nebo podobné;
  • Rezistory - 220 ohmů, 10 kOhm, 4,7 kOhm;
  • Bipolární tranzistor SS8050D nebo podobné;
  • Digitální teplotní senzor DS18B20;
  • Dioda 1N4148 nebo ekvivalent;
  • Fanoušek axiální třívodičový (12V), například - počítač;
  • Jack konektor výživa 2,1/5,5 mm.

Chladič počítače má tři dráty, z nichž dva - červený (+12V) a černý (GND) slouží k napájení a třetí (žlutý) je připojen k tachometru postavenému na Hallově prvku. Bohužel nám 5V z desky zjevně nestačí, ale 6 digitálních výstupů Arduino umí pracovat v režimu PWM (na samotné desce jsou označeny bílými čtverečky nebo písmeny PWM), takže můžeme regulovat přívod signálu z desky k relé, které bude zodpovídat za změnu napětí dodávaného do ventilátoru.

Informaci o otáčkách získáme ze třetího drátu z otáčkoměru, a to upravenou metodou na základě implementace přeruší, který u většiny Arduin může přijít na digitální piny 2 (přerušení 0) a 3 (přerušení 1). Mimochodem, Arduino Mega má 4 další piny se schopností přijímat přerušení.

Nyní je třeba umístit digitální teplotní senzor, jehož údaje použijeme k regulaci napětí přiváděného na digitální výstup s PWM, a tedy k „otevření“ napěťového kanálu ventilátoru. Senzory Dallas mají vlastní knihovnu Arduino – DallasTemperature, kterou později propojíme ve skice. Knihovnu je nutné rozbalit do adresáře arduino-0018/libraries/.

Zbývá poslední věc připojit LCD, kde zobrazíme všechny aktuální informace o teplotě a otáčkách ventilátoru. Vzhledem k tomu, že jsem pro sestavení použil obrazovku WH1601A, mohou být známé problémy se zobrazováním čar. K jejich odstranění použijeme knihovnu LiquidCrystalRus, kterou je také nutné rozbalit do adresáře arduino-0018/libraries/.

//Připojte knihovnu pro teplotní senzor#zahrnout //Připojení knihovny pro LCD#zahrnout #define PowerPin 9 // pin pro ovládání výkonu ventilátoru#define HallSensor 2 // kolík pro snímač otáček ventilátoru (přerušení)#define TempPin 7 // kolík pro teplotní čidlo LiquidCrystalRus lcd(12, 11, 10, 6, 5, 4, 3); //Připojení LCD DallasTemperature tempSensor; int NbTopsFan, Calc, fadeValue; //celočíselné proměnné pro výpočty plovoucí teplota; //skutečná proměnná pro uložení teploty typedef struct( // Zavedení nového typu proměnných pro fanoušky char fantype; nesignováno int fandiv; )fanspec; //Pole proměnných nového typu fanspec fanspace=((0,1),(1,2),(2,8)); //Proměnná zodpovědná za výběr typu senzoru ventilátoru (1 – unipolární Hallův senzor, 2 – bipolární Hallův senzor) char fan = 2; //Tato funkce bude volána při každém přerušení void rpm() (NbTopsFan++;) // Funkce pro výpočet přivedeného napětí na digitální pin s PWM void temp() ( fadeValue = min(int(temper*7),255); // Vynásobte teplotu koeficientem, // vzít celé číslo ze součinu } // Protože maximální hodnota PWM je 255, pak nemá smysl dodávat více - berte minimálně dva prázdnota založit() (tempSensor.begin(TempPin); //Spusťte teplotní senzor lcd.begin(16, 2); //Nastavení vlastností LCD lcd.setDRAMModel(LCD_DRAM_WH1601); //A typ zobrazení pinMode (HallSensor, INPUT ); // Nakonfigurujte pin pro příjem přerušení připojitInterrupt(0, otáčky za minutu, RISING); //Spojíme přerušení číslo 0 s naší funkcí a bude vypočítáno pokaždé, když se signál změní) neplatný smyčka() ( temper = tempSensor.getTemperature(); // Zjistěte teplotu temp(); // Vypočítejte přiváděné napětí do PWM analogWrite(PowerPin, fadeValue); // Nakrm to NbTopsFan = 0; // Resetujte proměnnou obsahující otáčky na nulu zpoždění(1000); //Počkejte 1 sekundu Calc = ((NbTopsFan * 60)/fanspace.fandiv); //Vypočítejte hodnotu otáček za 60 sekund dělenou násobičem ventilátoru lcd.print(Calc, DEC); //Vypíše vypočítanou hodnotu v desítkovém tvaru lcd.print(" rpm - "); lcd.print(temper); //Výstupní teplota lcd.home(); )

Pojďme nejprve postavit něco jednoduchého na Arduinu. V kapitola 12 jsme již vynalezli termostaty využívající čistě analogové komponenty. Nyní se podívejme, jak můžeme zapojit digitální technologie do tohoto užitečného podnikání.

Již jsme se zmínili (viz kapitola 18), že řadiče AVR obsahují 10bitový vícekanálový ADC. Na deskách Arduino jsou jeho piny speciálně označeny jako analogové vstupy (písm A s čísly od nuly do pěti). Upozorňujeme, že je lze použít i jako běžné digitální s čísly od 14 do 18 a v této kapacitě je budeme používat. Jeden z těchto vstupů použijeme pro měření teploty a z jednoho z digitálních výstupů budeme ovládat připojení zátěže.

Celkem budeme potřebovat:

□ Deska Arduino Uno (kterákoli jiná bude stačit);

Jako čidlo teploty mám termistor. Vhodné např. stávající

□ „Amperke“ В57164‑К 103‑J se jmenovitým odporem 10 kOhm při 25 °C – jeho charakteristiky jsou uvedeny v kapitola 13 jako ilustrace vlastností termistorů;

□ proměnný odpor 10 kOhm, pevný odpor 620 Ohm;

□ výkonné relé – elektromagnetické (nutně se zesilovacím tranzistorovým spínačem, viz níže) nebo polovodičové.

K prodeji jsou k dispozici moduly založené na 5voltových elektromagnetických relé, speciálně přizpůsobené pro ovládání z výstupů Arduino. Elektromagnetická relé sama o sobě vyžadují dosti velký řídicí proud (a čím výkonnější relé, tím je výkonnější; přímo z logiky mohou pracovat pouze jazýčková relé s nejnižším výkonem), proto všechny takové reléové moduly musí mít přepínač tranzistorového zesilovače. Například Amperka prodává takový modul na bázi relé HLS8L‑DC5V‑S‑C. Pokud se nespokojíte s elektromagnetickým relé a snažíte se o extrémní jednoduchost zapojení, pak se můžete poohlédnout po polovodičových relé - vhodné jsou například CX240D5R od Crydom nebo podobné s provozním napětím 3-15 V Jejich řídicí proud je asi 15 mA při 5 voltech na vstupu, což je přijatelné pro AVR, protože jejich řídicí vstup lze připojit přímo k digitálnímu výstupu Arduino. Je pravda, že při napětí 220 voltů nemůže CX240D5R přepínat zátěž s výkonem větším než kilowatt, ale pro tento úkol nepotřebujeme více.

Obvod termostatu na Arduino Uno je znázorněn na Obr. 21.2.

Rýže. 21.2. Schéma termostatu zapnuto Arduino Uno

Ve schématu je vinutí relé K1 (s normálně otevřenými kontakty) konvenčně připojeno přímo k digitálnímu výstupu Arduina - předpokládá se, že se jedná buď o dříve zmíněné polovodičové relé s požadovanými charakteristikami, nebo jednoduše o řídicí vstup hotová deska reléového modulu. Pro sledování stavu okruhu se současně s ohřívačem aktivuje LED. Program termostatu podle tohoto schématu je velmi jednoduchý:

Hodnoty rezistoru jsou nastaveny na specifikovaný termistor B57164‑K s nominálním odporem 10 kOhm při 25 °C (103‑J). V souladu s programem bude relé pracovat poblíž výstupní hodnoty ADC 500. To je přibližně uprostřed 10bitového rozsahu (celá stupnice je 1024 gradací), tj. tato hodnota bude stanovena, když horní a dolní odpory jsou přibližně stejné vzhledem ke vstupu AO (napětí na tomto vstupu pak bude přibližně 2,5 voltu).

Vezměte prosím na vědomí, že obě funkce -li nekončí s obvyklým jiný. Aby se zabránilo chvění, byla do programu zavedena hystereze: relé sepne, když hodnota kódu překročí 510, a vypne, když klesne na 490. Mezitím bude udržovat předchozí stav. Dvacet jednotek kódu (co je in kapitola 12 zavolali jsme mrtvá zóna) odpovídají přibližně 10 milivoltům, tj. hystereze při teplotě v rozmezí 30–40 stupňů bude o něco menší než jedna desetina stupně (sami si to ověřte pomocí tabulky 13.1 z kapitola 13).

Nastavení teploty odezvy pomocí rezistoru R2 s těmito parametry je možné v rozsahu přibližně od 22 do 96 °C. V praxi samozřejmě není vyžadován tak široký rozsah nastavení, proto je vhodné snížit hodnotu R2. Hodnota R1 je zvolena tak, že R1 a jmenovitá hodnota R2 se sčítají s odporem termistoru při nižší hodnotě požadovaného teplotního rozsahu (podle tabulky 13.1). Pro přesnější přizpůsobení můžete kalibrovat a měnit prahové hodnoty v programu měřením stanovené teploty běžným teploměrem.

Pokud v tomto obvodu použijete jiná čidla, nezapomeňte na znaménko teplotního koeficientu. Obyčejná dioda nebo tranzistor v diodovém zapojení (jako v obvodech z kapitola 13) mají také negativní sklon charakteristiky, proto pro ně v programu budete muset změnit pouze číselné hodnoty prahu odezvy. Ale polovodičové senzory jako TMP35 (viz. kapitola 13) nebo jednoduše kovové odporové teploměry (jako v provedení vyrobeném z kapitola 17) mají kladný teplotní koeficient, takže provozní podmínky budou muset být obráceny. A nejen změnit „více“ na „méně“ a naopak, ale také změnit poměr prahových hodnot pro hysterezi – v nové situaci se bude muset ohřívač zapnout, pokud je hodnota nižší než menší prahová hodnota, a otočit vypnuto, pokud je více než větší.

© 2023 steadicams.ru - Cihla. Design a dekorace. Fasáda. Tváří v tvář. Fasádní panely