Regulátor solárního ohřevu

Pokud si člověk pořídí bazén, určitě po nějaké době začne pokukovat po solárním ohřevu. A když už má i solární ohřev, začne uvažovat jak nejefektivněji řídit čerpadlo pro co nejlepší vytápění.

A tak jsem vyrobil tento regulátor s jednoduchou funkcí:
-čte teploty z čidel umístěných v bazénu a v solárním panelu
-zobrazuje aktuální teplotu na LCD displeji
-spíná čerpadlo pokud je teplota v panelu vyšší než teplota v bazénu, o nastavený rozdíl nebo více
-vypíná čerpadlo pokud je teplota panelu stejná nebo nižší než teplota bazénu

Zapojení je velmi jednoduché a nepotřebuje schéma, vše lze vyčíst z kódu. Jako „mozek“ celého regulátoru je použito Arduino UNO. LCD displej jsem použil 2×16 znaků ale je možné použít jakýkoliv se standardním řadičem HD44780, jen se musí provést úprava programu. Pokud má displej podsvícení, lze ho zapojit také. LED dioda signalizuje spuštění čerpadla programem. Pokud je potřeba spustit čerpadlo manuálně, stačí přepnout přepínač AUT/MAN do polohy MANuál a následně spouštět čerpadlo vypínačem MAN. Přepínač na manuální ovládání spíná přímo výkonné relé. Napájecí zdroj je použitý hotový z USB nabíječky. Teplotní čidla DS18B20 jsou použitá ve vodotěsném provedení, kabel nastavený dle potřeby a připojena konektorem CAN9.

Celkové napájení regulátoru a tím i čerpadla je vhodné provést přes proudový chránič.


Snažil jsem se o řádné okomentování takže by neměl být problém s přehledností. Nastavení rozdílové teploty (int rozdil = xx) bude nejspíš třeba upravit dle konkrétní funkčnosti a adresy čidel musíte změnit podle vlastních čidel.

Regulátor bezproblému funguje od roku 2015. Letos došlo ke stěhování k novému majiteli tak jsem provedl nové zdokumentování

2 komentáře u „Regulátor solárního ohřevu“

  1. 1) proměnou pocitadlo by bylo vhodné v setup() nastavit na 0, je to taková programátorská slušnost. Kompiler nemusí inicializaci udělat a pokud bude mít počítadlo na začátku zápornou hodnotu, tak pgm nebude chodit správně.
    2) obecně není dobré dělat v loop časové prodlevy pomocí delay()
    3) není dobrý nápad mít adresy čidel nastavené napevno při kompilaci. Když čidlo odejde, tak musíte znovu kompilovat a nahrávat . Nejjednodušší řešení je adresy a rozdíl teplot ukládat do EEPROM. Pokud program při spuštění nenajde v EEPROM záznamy ani pro jedno čidlo a na sběrnici nějaká najde, nebo nalezená čidla neodpovídají čidlům v EEPROM, tak požádá o jejich odpojení a následně o připojení bazénového. Prohledává sběrnici a po nalezení čidla ho zapíše do EEPROM jako bazenové. Následně si řekne o připojení kolektorového čidla. Prohledává sběrnici a po nalezení dalšího čidla ho zapíše jako kolektorové. Pokud by se měnilo jen jedno čidlo, tak nové čidlo zapíše místo chybějícího….
    Pokud

    1. Regulátor funguje bezchybně už 11 let, ale dneska bych ho stavěl jinak. Ale funguje..
      1)dneska už bych to tak taky udělal
      2)obecně ne, ale tady to ničemu nevadí
      3)funguje to a čidlo jsem ještě měnit nemusel. Ono je to o rozhodnutí jestli udělat jednoduchý program nebo přidat zlepšováky které se nakonec třeba ani nevyužijí..

      Jinak díky za zájem 😉

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *