Využití počítačových rozhraní k řízení a regulaci jednoduchých přístrojů (teorie)

V následujícím textu je popsáno několik velmi jednoduchých zařízení, které měli zjednodušit a zpříjemnit práci v temné komoře a při focení obecně. Jistě však najdou i řadu jiných uplatnění. K sepsání tohoto článku mě přimělo několik ohlasů z Fotofóra, kde se nedávno probíraly možnosti přesné regulace teploty při zpracování fotografií. Sám jsem nedávno řešil podobný problém. Výsledky mé snahy jsou shrnuty v následujícím textu – snad pomohou i někomu jinému.

Chtěl bych předem upozornit, že nejsem elektrotechnik a následující zapojení jsem sestavoval metodou pokus-omyl na základě průměrných znalostí fyziky a s podporou několika odborných knížek. Omluvte proto prosím případné neobratnosti ve vyjadřování. Také bych rád vyzval informované čtenáře, aby mi sdělili své připomínky a zejména, pokud mají chuť, aby se se mnou podíleli na dalším vývoji a zlepšování navržených zapojení.

Jednoduchost níže popsaných zapojení je umožněna využitím počítačových rozhraní pro sběr a vyhodnocování dat. Tak bylo možné realizovat jinak poměrně složitá zařízení – např. flashmetr. Využití počítače však vyžaduje základní znalosti programování.

Co budeme potřebovat?

Pro elektronickou část stačí pár kusů kabelů, konektory Canon 9 a 25 pinů (pro sériový a paralelní port), a podle konkrétního zapojení pár běžných elektrosoučástek a několik specifických, pracujících jako čidla (fotoodpory, termistory…).

Pro počítačovou část je zapotřebí jakýkoli počítač a programovací prostředí. Ideální je stará 386ka, která beztak už nemá žádné využití. Jako programovací prostředí je výborný Pascal. Pro jednoduchá zapojení bez rychlých čítacích smyček se dá použít MS Q-BASIC (je to součást MS DOSu). Já používám GFA BASIC, který pracuje pod Windows 3.x, sytaxe příkazů je podobná Q-BASICu, programy jsou však podstatně rychlejší a je možné kompilovat spustitelné EXE soubory. Demo GFA basicu je možné stáhnout na www.gfasoft.fga.net. Dále uvedené příklady listingů jsou pro GFA basic.

Porty

Port je rozhraní, které umožňuje komunikaci příslušného zapojení s počítačem. Následující popis portů je velmi zjednodušený a jde pouze do úrovně nezbytné pro pochopení, jak zde uvedená zapojení fungují.

Sériový port

Každí PC má minimálně 1 sériový port, označovaný jako COM1. Sériová port má některé vhodné vlastnosti, kvůli kterým je dobré ho upřednostnit:

  • je velmi odolný proti zničení
  • přístroje lze k němu připojovat při zapnutém počítači
  • napájecí napětí lze odebírat přímo z portu.
  • výstupy jsou odolné proti zkratu, v nízké resp. vysoké úrovni mají -12, resp +12 V
  • výstupy mohou dodávat proud až 10 mA, takže mohou budit LED diody a výkonové stupně

Na sériovém port jsou k dispozici dvě výstupní a čtyři vstupní linky, které je možno řídit jednoduchými příkazy.

Vstupy a výstupy sériového portu

Číslo kolíku
(na 25 pinovém konektoru)
Číslo kolíku
(na 9 pinovém konektoru)
TypOznačeníFunkce
47výstupRTSvýzva k vysílání
58vstupCTSpohotovost k vysílání
66vstupDSRpohotovost k DCE
75GNDsignálová zem
81vstupDCDdetektor přijímaného signálu
204výstupDTRpohotovost DTE
229vstupRIindikátor volání

Čísla kolíků bývají uvedena na konektorech, takže při pájení by neměl být problém.

Pro identifikaci portu se používá “bázová adresa”.

Tabulka bázových adres seriových portů:

COM1COM2COM3COM4
BA (hexadecimálně)3F82F83E82E8

Přímý výstup pomocí linek DTR nebo RTS se uskuteční pomocí příkazu OUT PORT a adresy (BA+4):
(syntaxe pro GFA BASIC)

OUT PORT (BA + 4), 2 REM:zapne RTS
OUT PORT (BA + 4), 1zapne DTR
OUT PORT (BA + 4), 3zapne obě

Výše uvedené příkazy způsobí překlopení příslušné linky z nízké úrovně na vysokou

Přímý vstup linkami CTS, DSR, RI a DCD se uskuteční pomocí příkazu INP PORT a bázové adresy (BA+6):

IF (INP (PORT(BA + 6)) AND 16) = 16 THEN… REM:dotaz na CTS, 16 = signál nahozen, 0 = shozen
IF (INP (PORT(BA + 6)) AND 32) = 32 THEN …dotaz na DSR
IF (INP (PORT(BA + 6)) AND 64) = 64 THEN …dotaz na RI
IF (INP (PORT(BA + 6)) AND 128) = 128 THEN …dotaz na DCD

Tyto příkazy plní funkci dotazu na stav vstupní linky: je-li na vstupu napění, potom…

Paralelní port

Má narozdíl od sériového portu celkem 17 linek, které je možno řídit, ale je velmi citlivý na neopatrné zacházení a je snadné jej zničit. Aby se tomu předešlo, je nutné

  • připojovat zařízení jen při vypnutém počítači
  • na vstupy se smí vkládat napětí 0 až 5 V
  • výstupy se nesmí zkratovat, nebo připojit na jiné výstupy
  • výstupy nesmí přijít do styku s cizím napětím

Použití paralelního portu přichází v úvahu tam, kde je zapotřebí větší počet linek, anebo v případě počítače, který má pouze 1 sériový port (notebooky).

Tabulka bázových adres paralelních portů

LPT 1LPT 2
BA (hexadecimálně)378278

Datové výstupní linky D0 až D7 jsou vyvedeny na kolíky 2 až 9, zem je na kolíku 25.

OUT PORT (BA), 1 REM:zapne D0
OUT PORT (BA), 2 REM:zapne D1
OUT PORT (BA), 4 REM:zapne D2
OUT PORT (BA), 8 REM:zapne D3
OUT PORT (BA), 16 REM:zapne D4

… atd.

Bližší popis portů je uveden v hardwarových příručkách.

Napsat komentář