Bocsánat, itt a C program.
Az óradíjat hobbiprojektnél felejtsük el! Ez a kollégám faházába készült, gondoltam megcsinálom kis mcu-val.
Viszont mielőtt megtanítanál az 555 használatára :-D tisztázzuk a feladatot. ;)
A fürdőszoba világításával együt kapcsolódik a szellőztető ventillátor.
Ez egy tény, tehát az áramkört az 1, 2, 3 pontokon elvágjuk. Ez a default, amit ki kell egészíteni az okossággal.
A világítás lekapcsolása után...
Elvesszük a villanyt az áramkörtől. A rajzon nem szerepel, hogy a kapcsoló kétáramkörös - a másikon a lámpa, illetve 230V feszültségről megy.
...választhatóan 2 vagy 4 percig tovább működjön a szellőzés!
Ehhez csatlakoztathatjuk az 1, 2,3 ponton az új áramkört - a régi megbontása nélkül.
Az impulzus detektálásra azért van szükség, mert valahonnan meg kell tudni, hogy van-e villany. Ha nincs villany, akkor a segédáramkör sem működik. A két állapot közötti <40ms áthidalását biztosítja a 220μF-os kondenzátor. Tehát a villany megszűnését detektálja az áramkör legfeljebb 16ms múlva. Ekkor bekapcsolja az SSR-t 2 vagy 4 percre, ami után stabil kikapcsolt állapotban marad.
(Ha ez az áramkör sorozatban készülne, akkor SSR -> TRIAC - van szinkrojel, begyújtja a PIC; PIC12F609 -> PIC12HV609 - elmarad a TL431 és két ellenállás, csökken az áthidaló kondenzátor. Ekkor nem csak leugrok a boltba, így kijön az óradíj is.)
Az impulzusdetektor teljesen felesleges, ha a SSR-t öntartó módban vezéreled a kapcsolóval és a megfelelő jelszintre illesztett trigger jelet adsz a kapcsolóról az 555nek.
Ez az öntartó mód érdekelne! Meg a trigger jel előállítása is! :-D (Ugye 230V/50Hz az alap.)
A kódodba felesleges a timer használata, mehetne sima idle looppal is.
Ez alatt a szoftver hurkokkal kivitelezett időzítést érted? Aztán honnan hívjam meg, amikor még főprogram sincs? :-D
De van, mert a PIC nem ismeri a HALT utasítást, ezért
C:
Loop:
goto Loop;
asm:
Main goto Main
Ez a program egy eseményvezérelt végesállapotú gép. Ezzel a technikával egyszerűen és gyorsan atombiztos programot lehet írni.
Két eseményt dolgoz fel: timer és 100Hz-es szinkronjel.
Egyébként úriember nem használ szoftver loopokat, csak kivételes esetben: Ha a hardver műiködése miatt párszor 10ns késleltetésre van szükség akkor jöhet néhány NOP, szélsőséges esetben néhány loop, ha túl sok lenne a NOP. De ne szomorkodj, mert a számítógéped is így működik: csak álldogál, aztán jön valamilyen esemény. (Kivétel a Windows, mert ott vagy esemény vagy homokóra jön.)