|
ネットワークからリレー制御
大昔使っていた「マイ・リレー」と言う8回路リレー制御I/Fを引っ張りだし、USB-IO2.0(→ http://km2net.com/usb-io2.0/index.shtml ) を接続して、動作テストをしてみた。
- 取り付けと配線
・「マイ・リレー」のリレーは、松下電工 HB1-DC5V 接点容量 AC125V 1A が8個使用され、
2接点1回路が8チャンネル分実装してある。リレーは5Vで45mA/1個消費する。
・USB-IO2.0は機能を見て、秋月ではなく、汎用性のある方をKm2Netより購入した。
- 組込み完了

USB-IO2.0を樹脂ビスで4箇所止め 外観(アクリル板で挟み込み)
- 制御ソフト
Linux版のサンプルソースを(上記サイトからD/L)編集してコンパイル。
----- swon01.c ----------------------
#include <stdio.h>
#include <string.h>
#include <usb.h>
#include "usbiofamily.h"
int main(int argc, char **argv)
{
int ret;
int dat;
struct usb_bus *bus;
struct usb_device *dev;
usb_dev_handle *udev;
unsigned char sendData[64];
unsigned char recvData[64];
/*-------------*/
/* Device Open */
/*-------------*/
bus=io_init();
dev=io_find(bus,dev);
if( dev==NULL ){
puts("io_find NG");
exit(1);
}
udev=io_open(dev);
if( udev==NULL ){
puts("io_open NG");
exit(2);
}
/*------------------------*/
/* Port 1,2 in_out */
/*------------------------*/
memset(sendData, 0, sizeof(sendData));
sendData[0] = 0x20; //in out
sendData[1] = 0x01; //port1
sendData[2] = 0x01; //out 0x01
sendData[3] = 0x02; //port2
sendData[4] = 0x00; //out 0x00
io_send_recv(udev,sendData,recvData);
printf("in:P1(%x),P2(%x) out:P1(%x),P2(%x)\n"
,recvData[1],recvData[2], sendData[2],sendData[4]);
/*---------------------*/
/* Device Close & Exit */
/*---------------------*/
io_close(udev);
exit(0);
}
# gcc -lusb -oswon01 swon01.c
以下作成中 
|