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)
Typ Označení Funkce
4 7 výstup RTS výzva k vysílání
5 8 vstup CTS pohotovost k vysílání
6 6 vstup DSR pohotovost k DCE
7 5 GND signálová zem
8 1 vstup DCD detektor přijímaného signálu
20 4 výstup DTR pohotovost DTE
22 9 vstup RI indiká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ů:

  COM1 COM2 COM3 COM4
BA (hexadecimálně) 3F8 2F8 3E8 2E8

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), 1   zapne DTR
OUT PORT (BA + 4), 3   zapne 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 1 LPT 2
BA (hexadecimálně) 378 278

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ář