Portál AbcLinuxu, 1. května 2025 19:14
Může se stát, že se zblázní spínač ventilu a nechá ho v poloze "otevřeno".No, tohle by šlo řešit na dvou úrovních - na straně RPi a na straně ventilu. Optimlní by bylo zkombinovat obě, ale nejspíš by stačilo jen jednou. Obrana na straně RPi je watchdog, pokud se RPi zasekne, tak se restartuje a přitom se všechny GPIO nahodí do původního nastavení (bvětšinou se chovají jako vstup nebo vysoká impedance), takže pulldown k zemi zajistí nulu na výstupu hned po restartu. Výhoda je, že se tím pak obnoví i ostaní komunkace, přitom samotný watchdog je přímo součástí SoC a stačí jen nastavit, viz Auto-reboot a hung Raspberry Pi using the on-board watchdog timer. Obrana na straně ventilu je monostabilní klopný obvod v budiči výkonové součástky, co spína ventil, tedy nejspíš nějakého výkonvého MOSFETu. Protože GPIO na RPi dají jen necelé 3,3V, musel by se použít nějaký spínající už od nízkých napětí (ty běžné chtějí okolo 8-10V) , nebo se tam dá dát budič (low side, protože MOSFETy s N nanálem jsou levnější a mají menší odpor v otevřeném stavu), což je lepší, protože bude jistota, že MOSFET bude otevřený naplno. No a pokud bude tím budičem monostabilní klopný obvod udělaný řekněme z časovače 555, tak se délká sepnutí nastaví přímo hardwarově - i kdyby RPi zustalo "viset v jedničce", ventil se sám vypne po předem nastaveném intervalu. Osobně bych asi použil watchdog v RPi a ventil bych spínal rovnou, ale pro větší spolehlivost bych galvanicky oddělil obvody RPi a vetilu optočlenem. Ten pak bude na straně ventilu pouštět plných 12V přes odpor v řádu stovek ohmů do gate výkonového MOSFETu s N nanálem, mimo toho tam ještě musí být jeden odpor mezi GPIO RPi a optočlenem (ten se vůči RPI bude chovat jako IR LED), druhý mezi gate a zemí (ten by měl být větší, v řádu desítek kiloohmů), no a nakonec antiparalelní dioda (nejlépě nejaká rychlá) zapojená přes vstupy ventilu, poněvač ten je z elektrického hlediska cívka (na vnitnří diodu v MOSFEtu v tomto případě nedoporučuju sázet).
Monostabilní 555 s resetem (PNP tranzistor paralelně ke kondenzátoru) a derivačním článkem na vstupu -> signál pro spínání 555 bude muset být střídavý, kdyby se malina hryzla s GPIO nastaveným na log.1 či log.0, tak se obvod po vteřině zastaví. Samozřejmě potom platí, že se signál musí generovat nějakým programem softwarově a ne jen nastavit PWM výstup, který by mohl běžet i v případe zátuhu zbytku systému.
Radši se zeptám, co přesně je cílem? Má malina řídit kompletně všechno, nebo se má o zalívání raději postarat nějaká elektronika s tím, že malina bude jen logovat kdy k události došlo a bude mít možnost ovládat ventil? Jak by to autorovi nejvíce vyhovovalo?
Tak potom ta 555 fakt nemá důvod v květináči být, opravdu bude lepší to Attiny a tahat data po sběrnici
Taky mě to napadlo, s I2C komunikací to navíc může všechno viset na čtyřech drátech (klidně UTP kabel) - jedno ATtiny má čtyři 10-bit A/D převodníky, I2C čidla taky nestojí svět a malina s I2C komunikovat umí sama o sobě. Pak stačí jen spatlat program pro malinu, naučit ATtiny tvářit se jako I2C slave a zpracovávat data dle libosti. Mimochodem u první maliny pozor na hardwarový bug v I2C části.
Hádám že autor komentáře spíš navrhoval přímo nahradit 555 tím Attiny - pořád používat desky v květináči jako kondenzátor a podobně měřit, ale výstup tahat digitálně (třeba po tom I2C) do maliny, která si to bude řídit. Případně to může řídit samo Attiny s tím, že mu malina může upravovat chování.
Za sebe bych byl taky pro tu 555.
Jop, je to on. Mám jeden kousek z Číny, na programování jsem si zbastlil tohle a když mě jednou za čas přepadne nutkání něco tvořit, tak si programuju. Mimochodem, než Attiny13 budeš mít možná lepší Attiny25/45/85, první číslo značí velikosti vnitřních pamětí. Součástky můžeš nakupovat v TME.eu, pokud to nepotřebuješ do dalšího dne, tak máš dopravu za lidových 40Kč a výběr mají na můj vkus opravdu monstrózní. Jen pozor na násobnost, někdy je tam jedna součástka víckrát s tím, že jednou ji můžeš koupit po jednotlivých kusech a jindy balení po 1000ks.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.