ネットワークからリレー制御
大昔使っていた「マイ・リレー」と言う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より購入。
- 組込み完了

- 制御ソフト
Linux版のサンプルソースを編集してコンパイル。
----- swon01.c ----------------------
/*----------------------------*/
/* USB-IO Family TEST */
/*----------------------------*/
#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 0x03
sendData[3] = 0x02; //port2
sendData[4] = 0x00; //out 0x07
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