#41 8ch I/Oエキスパンダ
Tibbitの配置
Tibbit #41 と Tibbit #00-3を挿入します。
ノードの配置
各制御を行うために、functionノードを使用します。
IN/OUT切り替え
#41のGP0からGP7について、それぞれINかOUTかを設定します。
以下のようにフローを配置します。
functionノードの編集を開き編集します。
・GP0を出力にします。(v:1)
1 2 3 4 |
msg.payload = [ {act: 'io', gp: 0, v: 1} ]; return msg; |
・GP0を入力にします。(v:0)
1 2 3 4 |
msg.payload = [ {act: 'io', gp: 0, v: 0} ]; return msg; |
複数同時に設定することもできます。
・GP0を出力、GP1を入力にします。
1 2 3 4 5 |
msg.payload = [ {act: 'io', gp: 0, v: 1}, {act: 'io', gp: 1, v: 0} ]; return msg; |
・すべてのGPを出力にします。
1 2 3 4 5 6 7 8 9 10 |
msg.payload = [ {act: 'io', gp: 0, v: 1}, {act: 'io', gp: 1, v: 1}, {act: 'io', gp: 3, v: 1}, {act: 'io', gp: 4, v: 1}, {act: 'io', gp: 5, v: 1}, {act: 'io', gp: 6, v: 1}, {act: 'io', gp: 7, v: 1} ]; return msg; |
ノードの設定を開き、スロットを選択します。
Node-REDデプロイ後、injectノードをクリックするとIN/OUTを指定することができます。
サンプルフロー
1 |
[{"id":"b19e690f.29d188","type":"Tibbit-#41","z":"3c31dc44.0e66fc","name":"","tpSlot":"S04","communication":"I2C","connectedStatus":"start","host":"","x":600,"y":180,"wires":[[]]},{"id":"f778ef3b.38bfb8","type":"inject","z":"3c31dc44.0e66fc","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":281,"y":139,"wires":[["cca0580e.36764"]]},{"id":"cca0580e.36764","type":"function","z":"3c31dc44.0e66fc","name":"IN/OUT設定","func":"msg.payload = [\n {act: 'io', gp: 0, v: 0}\n];\nreturn msg;","outputs":1,"noerr":0,"x":450,"y":140,"wires":[["b19e690f.29d188"]]}] |
OUT
各GPにHIGH/LOWを設定します。
事前に各GPをOUTにする必要があります。
以下のようにフローを配置します。
functionノードの編集を開き編集します。
・GP0をLOWにします。(v:0)
1 2 3 4 |
msg.payload = [ {act: 'set', gp: 0, v: 0} ]; return msg; |
・GP0をHIGHにします。(v:1)
1 2 3 4 |
msg.payload = [ {act: 'set', gp: 0, v: 1} ]; return msg; |
複数同時に設定することもできます。
・GP0をHIGH、GP1をLOWにします。
1 2 3 4 5 |
msg.payload = [ {act: 'set', gp: 0, v: 1}, {act: 'set', gp: 1, v: 0} ]; return msg; |
ノードの設定を開き、スロットを選択します。
Node-REDデプロイ後、injectノードをクリックするとHIG/LOWを指定することができます。
サンプルフロー
1 |
[{"id":"b19e690f.29d188","type":"Tibbit-#41","z":"3c31dc44.0e66fc","name":"","tpSlot":"S04","communication":"I2C","connectedStatus":"start","host":"","x":600,"y":180,"wires":[[]]},{"id":"f778ef3b.38bfb8","type":"inject","z":"3c31dc44.0e66fc","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":281,"y":139,"wires":[["cca0580e.36764"]]},{"id":"cca0580e.36764","type":"function","z":"3c31dc44.0e66fc","name":"OUT: HIGH/LOW設定","func":"msg.payload = [\n {act: 'set', gp: 0, v: 0}\n];\nreturn msg;","outputs":1,"noerr":0,"x":480,"y":140,"wires":[["b19e690f.29d188"]]}] |
IN: プルアップ
GPがINの場合、プルアップの有効/無効を切り替えることができます。
事前に各GPをINにする必要があります。
以下のようにフローを配置します。
functionノードの編集を開き編集します。
・GP0をプルアップ有効にします。(v:1)
1 2 3 4 |
msg.payload = [ {act: 'pup', gp: 0, v: 1} ]; return msg; |
・GP0をプルアップ無効にします。(v:0)
1 2 3 4 |
msg.payload = [ {act: 'pup', gp: 0, v: 0} ]; return msg; |
複数同時に設定することもできます。
・GP0をプルアップ有効、GP1をプルアップ無効にします。
1 2 3 4 5 |
msg.payload = [ {act: 'pup', gp: 0, v: 1}, {act: 'pup', gp: 1, v: 0} ]; return msg; |
ノードの設定を開き、スロットを選択します。
Node-REDデプロイ後、injectノードをクリックすると有効/無効を指定することができます。
サンプルフロー
1 |
[{"id":"b19e690f.29d188","type":"Tibbit-#41","z":"3c31dc44.0e66fc","name":"","tpSlot":"S04","communication":"I2C","connectedStatus":"start","host":"","x":600,"y":180,"wires":[[]]},{"id":"f778ef3b.38bfb8","type":"inject","z":"3c31dc44.0e66fc","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":281,"y":139,"wires":[["cca0580e.36764"]]},{"id":"cca0580e.36764","type":"function","z":"3c31dc44.0e66fc","name":"IN: プルアップ設定","func":"msg.payload = [\n {act: 'pup', gp: 0, v: 1}\n];\nreturn msg;","outputs":1,"noerr":0,"x":470,"y":140,"wires":[["b19e690f.29d188"]]}] |
IN
各GPの値を取得できます。
事前に各GPをINにする必要があります。
以下のようにフローを配置します。
functionノードの編集を開き編集します。
・GP0の値を取得します。
1 2 3 4 |
msg.payload = [ {act: 'get', gp: 0} ]; return msg; |
複数同時に取得することもできます。
・GP0、GP1の値を取得します。
1 2 3 4 5 |
msg.payload = [ {act: 'get', gp: 0}, {act: 'get', gp: 1} ]; return msg; |
ノードの設定を開き、スロットを選択します。
Node-REDデプロイ後、injectノードをクリックすると値を取得することができます。
サンプルフロー
1 |
[{"id":"b19e690f.29d188","type":"Tibbit-#41","z":"3c31dc44.0e66fc","name":"","tpSlot":"S04","communication":"I2C","connectedStatus":"start","host":"","x":600,"y":180,"wires":[["e97ab6d9.d9d17"]]},{"id":"f778ef3b.38bfb8","type":"inject","z":"3c31dc44.0e66fc","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":281,"y":139,"wires":[["cca0580e.36764"]]},{"id":"cca0580e.36764","type":"function","z":"3c31dc44.0e66fc","name":"IN: 値取得","func":"msg.payload = [\n {act: 'get', gp: 0}\n];\nreturn msg;","outputs":1,"noerr":0,"x":440,"y":140,"wires":[["b19e690f.29d188"]]},{"id":"e97ab6d9.d9d17","type":"debug","z":"3c31dc44.0e66fc","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":770,"y":180,"wires":[]}] |