EXTIO[0] - EXTIO[7]


Akár 64 digitális IO láb vezérelhető PCF8574 I2C portbővítők segítségével. Lábanként állítható kimenetnek, bemenetnek. Max 8db chip használható párhuzamosan, a Setup/Peripheral/I2C menüben lehet az I2C címeket beállítani az ic A0-A2 lábainak megfelelően. PCF8574: 20H-27H, PCF8574A: 38H-3FH. Bootoláskor soros terminálban látszanak a buszon levő eszközök címei. Az ic IO lábai open drain kimenetek beépített felhúzó ellenállással. Alacsony kimenetnek programozva nem szabad Vcc-t kapcsolni rá!!! Default: összes láb bemenet.

PCF8574 Port

EXTIO[0]LLHHIIXX
P0: kimenet LOW
P1: kimenet LOW
P2: kimenet HIGH
P3: kimenet HIGH
P4: bemenet
P5: bemenet
P6: nem változik
P7: nem változik

EXTIO[0]@
A teljes port állapotát STDOUT-ra küldi adatiránytól függetlenül.
EXTIO[0]IN@
Az utoljára megváltozott bemenet(ek) állapotát küldi.

EXTIO[0]CC:STR[0]@=%EXTIO[0];LED(FLASH)
Végrehajtja a parancsot, ha bármelyik láb állapota megváltozik.
EXTIO[0]CI:EXTIO[0]IN@;LED(FLASH)
Végrehajtja a parancsot, ha valamelyik bemenetnek állított láb állapota megváltozik.

EXTIO[0-7]IIIIIIII
Minden ic minden lába bemenet. A többi parancs is használható ebben a formában.
EXTIO[0-7]@
STDOUT-ra küldi a lábak aktuális állapotát.

PCF8574 Láb

EXTIO[0](0)L
Kimenetnek, LOW szintre állítja P0 lábat.
EXTIO[0](0)H
Kimenetnek, HIGH szintre állítja P0 lábat.
EXTIO[0](0)I
Invertálja P0 lábat.
EXTIO[0](1)IN
Bemenetnek állítja P1 lábat.

EXTIO[0](1)@
STDOUT-ra küldi a láb állapotát.

EXTIO[0](1)CL:STD@LOW;LED(FLASH)
Végrehajtja a parancsot, ha a láb magas szintről alacsony vált.
EXTIO[0](1)CH:STD@HIGH;LED(FLASH)
Végrehajtja a parancsot, ha a láb alacsony szintről magasra vált.



Példák

Nyolc csatornás bemenet online.
EXTIO[0]IIIIIIII|
EXTIO[0]CC:EXTIO[0]@

<html> <body> <H1>EXTIO[0] INPUT</H1><br> <center> <span id="ins" style="pointer-events:none"></span> </center> <script type="text/javascript" src="tools.js"></script> <script> startWS(0); var i; for (i = 0; i < 8; i++) document.getElementById("ins").innerHTML += "<label>P" + i + "</label><input type='checkbox' style='width:4em;height:4em;' id='in" + i + "'/>"; function onOpen() { sendWS("EXTIO[0]@"); } function onMessage(msg) { for (i = 0; i < 8; i++) { if (msg.substring(i, i+1) === "H") document.getElementById("in" + i).checked = false; if (msg.substring(i, i+1) === "L") document.getElementById("in" + i).checked = true; } } </script> </body> </html>
Nyolc csatornás kimenet online.
EXTIO[0]HHHHHHHH|
EXTIO[0]CC:EXTIO[0]@

<html> <body> <H1>EXTIO[0] OUTPUT</H1><br> <center> <span id="ins"></span> </center> <script type="text/javascript" src="tools.js"></script> <script> startWS(3); var i; var s; for (i = 0; i < 8; i++) document.getElementById("ins").innerHTML += "<label>P" + i + "</label><input type='checkbox' onclick='send(this)' style='width:4em;height:4em;' id='in" + i + "'/>"; function onOpen() { sendWS("EXTIO[0]@"); } function onMessage(msg) { for (i = 0; i < 8; i++) { if (msg.substring(i, i+1) === "H") document.getElementById("in" + i).checked = false; if (msg.substring(i, i+1) === "L") document.getElementById("in" + i).checked = true; } } function send(pin) { if (pin.checked === true) { s = ")L"; } else { s = ")H"; } sendWS("EXTIO[0](" + pin.id.substring(2, 3) + s); } </script> </body> </html>