Programovatelný modul SW24x3
S jeho pomocí můžeme snadno a rychle vyřešit právě to, co potřebujeme. Zatímco se v létě dá využít jako automatický spínač klimatizace, o dlouhých zimních večerech může dobře posloužit jako soumrakový spínač a pod.
Rychlé naprogramování textovými soubory, které je možné psát v libovolném textovém editoru a pak nahrát do modulu pomocí terminálového programu funkcí File Send se přímo nabízí. Program můžeme také sestavovat t.zv. on-line v okně terminálu.
Modul je vhodný jak pro pokročilé programátory, tak i pro úplné začátečníky, kteří se s programováním teprve seznamují. Jednoduché a přehledné programy také prohlubují analytické myšlení. Zde uvedené konstrukce jsou vybrány jak z hlediska užitečnosti, praktičnosti, tak i pro zábavu a radost.
Parametry SW24x3:
Napájení 24V DC, 3 externí vstupy, 3 tlačítka, 2 relé pro spínání 230VAC/5A ( celkem 4 přepínací kontakty ), 4 analogové vstupy, 2xUART. Na modulu jsou 4 konektory, ke kterým lze připojit fotoodpory, fotodiody, teplotní čidla, IR detektory, sedmisegmentové nebo LCD displeje a další.
Více informací ...
Popis funkce spínače ( programu ):
Stiskem tlačítka IN4 sepne relé Re1, které zapne UV lampu pro osvit fotocitlivých DPS. Současně se spustí časování, které je dané napevno na 330 vteřin ( 5.5minuty ).
Tato doba je optimální k osvitu a není třeba ji upravovat/měnit otočným ovladačem ( trimrem zapojeným do AN0 a pod. ).
Po uplynutí 330 vteřin relé Re1 vypne a UV lampa zhasne. Modrá LED LD6 začne blikat, čímž víme, že v průběhu osvitu nedošlo k výpadku napájení ( po zapnutí modulu LD6 nebliká ). Dalším stiskem tlačítka IN4 spustíme nový cyklus.
POZN: řádek 90 slouží k vynulování události R pro tlačítko IN4 ihned s vypnutím relé Re1, čímž je zabráněno spuštění dalšího cyklu, pokud bychom tlašítko IN4 stiskli znovu v průběhu časování než relé Re1 vypne.
Podmínky @D=R můžeme také nahradit @D=1 a tím pádem je řádek 90 zbytečný. Ovšem podmínka @D=1 má jednu citelnou vadu, pokud by došlo k zablokování spouštěcího tlačítka, UV lampa by svítila nepřetržitě.
Popis funkce resetátoru ( programu ):
Dokud počítač odesílá znaky "w" ( 119 ), po každém přijetí znaku "w" blikne na modulu SW24x3 na půl vteřiny modrá LED LD6.
Pokud počítač přestane znaky posílat, po uplynutí timeoutu 10 minut po posledním znaku "w" sepne na 20 vteřin relé Re1. Následuje bliknutí modré LD6 a opět celý cyklus od začátku.
10 P1=60000
20 P2=119
30 P3=0
100 P0=50
110 P9=P1
120 R2=1
130 P4=%1
140 IF P4=P2 THEN 100
150 IF P9=P3 THEN 200
160 IF P0>P3 THEN 130
170 R2=0
180 GOTO 130
200 R1=1
210 R2=0
220 P9=2000
230 P4=%1
240 IF P9>P3 THEN 230
250 R1=0
260 GOTO 100
|
Řádek 10 slouží k nastavení proměnné P1 na 600 vteřin ( časování je po setinách směrem k nule ).
Řádek 20 k nastavení P2="w", příkaz P3=0 na řádku 30 nuluje pomocnou proměnnou P3, která se používá v relačních operátorech v testech podmínek IF ... THEN ( tento řádek lze vynechat, neboť před spuštěním programu jsou všechny proměnné vynulovány ).
Na řádku 100 nastavíme 50 setin do časovače P0 pro bliknutí LD6 ( výstup R2 ).
Na řádku 110 nastavíme timeout, časovač P9 na 10 minut ( P9 lze také nastavit přímo immediate konstantou P9=60000 ).
Na řádku 120 rozsvítíme modrou LD6.
Na řádku 130 do proměnné P4 načteme znak z USB ( portu UART1 ).
Na řádku 140 testujeme, zda je načtený znak "w" ( 119 v proměnné P2 ) a pokud ano, skočíme na řádek 100 k nové inicializaci resetátoru ( naplnění časovače P0, P9 a rozsvícení LD6 ) a zahájení nového odpočtu timeoutu.
Je-li splněna podmínka na řádku 150, víme, že vypršel timeout 10 minut a skočíme na rutinu pro sepnutí relé na 20 vteřin ( od řádku 200 ).
Je-li splněna podmínka na řádku 160, skočíme zpět na řádek 130. Pokud již časovač P0 doběhl na 0, zhasneme LD6 ( konec půlvteřinového bliknutí, řádek 170 ).
Na řádku 180 je nepodmíněný skok uzavírající hlavní smyčku.
Rutina od řádku 200 do 260 sepne na 20 vteřin relé Re1 ( resetovací čas ) a vrátí řízení zpět do hlavní smyčky na inicializaci obou časovačů, čímž se bude celý cyklus opakovat.
POZN: Řádek 230 slouží ke zneplatnění všech přijímaných znaků během resetování, aby se neakumulovaly a neovlivňovaly později hlavní smyčku, neboť požadujeme okamžitou odezvu na "w" v reálném čase.

Popis funkce USB relé:
Pomocí modulu SW24x3 připojeného k USB portu libovolného počítače jednoduše řídíme relé Re1, kterým můžeme například zapínat/vypínat světla nebo jiné spotřebiče.
Odesláním znaku "1" ( 49 ) relé Re1 sepneme, odesláním znaku "0" relé Re1 vypneme. Odesláním znaku "2" až "9" relé na 20 až 90 vteřin sepneme s možností udržování relé Re1 v sepnutém stavu periodickým/opakovaným odesílám daného znaku, přičemž interval odesílání musí být kratší než doba sepnutí relé.
10 P1=48
20 P2=49
30 P3=57
40 P4=1000
50 P5=0
100 P6=%1
110 IF P6< P1 THEN 100
120 IF P6=P1 THEN 300
130 IF P6=P2 THEN 400
140 IF P6>P3 THEN 100
150 R1=1
160 P6-48
170 P6=P4*P6
180 P0=P6
200 IF P0=P5 THEN 300
210 P6=%1
220 IF P6< P1 THEN 200
230 IF P6=P1 THEN 300
240 IF P6=P2 THEN 400
250 IF P6>P3 THEN 200
260 GOTO 160
300 R1=0
310 GOTO 100
400 R1=1
410 GOTO 100
|
Popis funkce RF relé:
Předchozí program USB relé jednoduše upravíme doplněním řádku 5 pro inicializaci bezdrátové komunikace a do konektoru JP3 připojíme bezdrátový přijímač RF433.
Na řádcích 100 a 210 zaměníme UART1 za UART2, ke kterému je RF433 připojen. Na straně vysílače musíme nastavit pro TX stejný kanál jako zde pro RX ( příjem dat ), viz příkaz SET na pátém řádku. Číslo přijímacího ( RX ) a vysílacího ( TX ) kanálu musí být rozdílné, jinak se budou navzájem rušit.
Vysílačem může být jak jiný modul SW24x3, k jehož portu UART2 je připojen externí vysílač TX433 nebo tranceiverem TCX433, kterým lze jednak vysílat, ale i přijímat. Data lze přenášet také z RF ovladačů DOK2 a pod.
Na řádku 40 provedeme zkrácení intervalu sepnutí relé v desetinách vteřiny ( P4=10 , P4 použita v násobení na ř. 170 ).
5 SET(%2,"RF:RX=10,TX=12")
10 P1=48
20 P2=49
30 P3=57
40 P4=10
50 P5=0
100 P6=%2
110 IF P6< P1 THEN 100
120 IF P6=P1 THEN 300
130 IF P6=P2 THEN 400
140 IF P6>P3 THEN 100
150 R1=1
160 P6-48
170 P6=P4*P6
180 P0=P6
200 IF P0=P5 THEN 300
210 P6=%2
220 IF P6< P1 THEN 200
230 IF P6=P1 THEN 300
240 IF P6=P2 THEN 400
250 IF P6>P3 THEN 200
260 GOTO 160
300 R1=0
310 GOTO 100
400 R1=1
410 GOTO 100
|
A ještě program pro vysílací část. Tlačítkem IN4 pošleme znak "1" ( proměnná P3 ) pro sepnutí relé Re1, stiskem tlačítka IN5 odešleme znak "0" ( P2 ) pro rozepnutí relé Re1. Vstupem IN1, dokud bude aktivní ( svítí LD1 ), budeme periodicky odesílat "5", po uvolnění vstupu IN1 se "5" přestane odesílat a relé Re1 na straně přijímače do půl vteřiny vypne. Kratší prodlevu získáme nahrazením znaku "5" za "4", "3" nebo "2", delší prodlevu za "6" až "9" ( 0.6 až 0.9 vteřiny ) v proměnné P4 nebo úpravou programu v přijímací části.
Na řádku 10 nastavíme proměnnou P1 na rychlost 10 znaků za vteřinu ( odeslání znaku "5" v proměnné P4 každých 10 setin vteřiny, pokud je aktivní vstup IN1 ).
5 SET(%2,"RF:RX=12,TX=10")
10 P1=10
20 P2=48
30 P3=49
40 P4=53
50 P5=0
100 IF @D=R THEN 200
110 IF @E=R THEN 300
120 IF @A=0 THEN 100
130 PRINT2(P4)
140 P0=P1
150 IF @D=R THEN 160
160 IF @E=R THEN 170
170 IF P0>P5 THEN 150
180 GOTO 120
200 PRINT2(P3)
210 GOTO 100
300 PRINT2(P2)
310 GOTO 100
|
|