Několik příkladů o tom, jak lze prakticky využít počítače pro řízení a regulaci jednoduchých přístrojů.
Jednoduché příklady
Na následujících příkladech nejlépe pochopíte, jak funguje to, o čem jsem psal v minulém dílu.
Blikač
Obrázek č. 1: Schéma blikače |
ba = &H3F8 | // bázová adresa pro COM1 |
zacatek: | |
OUT PORT (ba + 4), 1 | // nahodí DTR – rozsvítí LED |
PRINT “blik” | |
DELAY 2 | // pauza 2s |
OUT PORT (ba + 4), 0 | // vypne DTR |
DELAY 2 | |
stop$ = INKEY$ | |
IF ASC(stop$) = 27 THEN END | |
GOTO zacatek |
Program pracuje v nekonečné smyčce a střídavě zapíná a zhasíná LED diodu zapojenou mezi linkami DTR a GND. Při připojování LED diod pozor na polaritu – pokud diodu připojíte opačně, bude v poloze “vypnuto” svítit a v poloze “zapnuto” nikoli!
Dotaz na stav spínače
Obrázek č. 2: Schéma spínače |
ba = &H3F8 | |
zacatek: | |
OUT PORT (ba + 4), 2 | // nahodí RTS |
IF (INP (PORT(BA + 6)) AND 16) = 16 THEN PRINT “SEPNUTO” | |
IF (INP (PORT(BA + 6)) AND 16) = 0 THEN PRINT “ROZEPNUTO” | |
stop$ = INKEY$ | |
IF ASC(stop$) = 27 THEN END | // ESC ukončí program |
GOTO zacatek |
Měření odporu
Obrázek č. 3: Měření odporu |
Princip tohoto zapojení je malinko složitější. Na začátku je bezproudový stav a vybitý kondenzátor. Po nahození linky DTR se začíná kondenzátor nabíjet a linka CTS se v cyklu testuje na její stav. Při každém dotazu se zvýší hodnota proměnné “citac” o 1. V okamžiku, kdy je napětí na kondenzátoru dostatečně vysoké a dotaz vrátí kladnou hodnotu, se cyklus přeruší a vypíše se hodnota “citace”. Po 1 s pauze na vybití kondenzátoru se měření opakuje. Toto zapojení také vyžaduje rychlý počítač, protože měření doby nabíjení jsou řádově mikrosekundy.
Velikost proměnné “citac” je úměrná délce zpoždění a ta je úměrná kapacitě kondenzátoru a velikosti odporu.
ba = &H3F8 | // COM1 |
DO | // 1 vteřinová smyčka – pauza pro vybití kondenzátoru |
GOSUB mereni | |
DELAY 1 | |
LOOP UNTIL INKEY$ <> “” | |
END | |
PROCEDURE mereni | |
citac = 0 | |
OUT PORT (ba + 4), 1 | // nahodí DTR |
DO | |
citac = citac + 1 | |
EXIT IF citac = 10000 | // ukončí měřící smyčku v případě poruchy |
LOOP UNTIL (INP(PORT(ba + 6)) AND 16) = 16 | // měřící smyčka běží, dokud není na CTS dostatečné napětí |
OUT PORT(ba + 4), 0 | // vypne DTR |
PRINT “citac=”; citac | |
PRINT “” | |
PRINT “” | |
RETURN |
Pomocí těchto tří zapojení a jejich kombinací lze vyvinout velmi jednoduché užitečné přístroje. Pro fotografickou praxi má zejména význam nahrazení pevného odporu specifickými čidly. Pro připojení fotoodporu tak získáme velmi přesný expozimetr, bohužel s malou citlivostí, takže jej nelze použít např. při zvětšování. Po připojení termistoru nebo křemíkového termočlánku získáme velmi přesný termostat. Závislost odporu křemíkového článku je (téměř) lineární, u termistoru exponenciální, což může způsobovat problémy při kalibraci. Na základě “blikače” lze postavit velmi přesné spínací hodiny.
Spínaní výkonových zátěží
Nakonec se letmo zmíním o možnostech spínání reálných spotřebičů – blikající dioda toho sama o sobě moc nezmůže.
Výstupní linky portů ovládané příslušnými programy mohou dát proud maximálně 10 mA. To stačí právě tak na buzení LED diod. Pokud chceme takto ovládat větší zátěže (osvětlení, topení, motory atd.), je potřeba LED diody spřáhnout s čidlem, které potom ovládá daný spotřebič.
Nejjednodušší variantou, i když poněkud dražší, je polovodičové relé. Je to součástka, která má v sobě LED diodu a fotocitlivý prvek. Diodu budíme přímo signály z počítače a na kontakty fotocitlivého prvku je přivedeno spínané napětí (220V). Při průchodu řídícího proudu se LED rozsvítí a fotocitlivý prvek sepne síťové napětí. Je třeba dbát na maximální zátěžový proud.
Obrázek č. 4: Spínaní výkonových zátěží pomocí polovodičového relé |
Další možností je využití LED diody a fotoodporu. Následující zapojení může spínat např. malé motorky 12 V, nebo ovládat magnetické relé.
Obrázek č. 5: Spínaní výkonových zátěží pomocí LED diody a fotoodporu |
Přeji mnoho úspěchů při stavbě a těším se nápady a připomínky.