Homyl 2チャネルUSBリレーモジュール

新たに入荷したリレーの制御チップはCH552Gで、


前のリレーの制御チップはTINY45で、やはり違っていた。
ARCELI SRD-05VDC-SL-C 2ウェイ5Vリレーモジュール

違ってるのは予定通りだが、TINY45のチェックプログラムを修正しても、CH552Gでは動作しない。

調べてみてもUSBリレーのHIDモードの規定は見つからない。

monicaで質問し、CH552Gで動くプログラムができたが、TINY45はそのプログラムで動作しない。


試行錯誤を繰り返し、2種類のリレーを似たような表現で動作させるプログラムができた。

各リレーモジュールのレビューに記載したが、コメントを追加したコードを記す。

import hid # HIDAPIライブラリ使用/HIDライブラリ使用不可(インストールしてはダメ)
import time

# リレーモジュールのVIDとPID
VID1 = 0x16c0 #制御チップTINY45
PID1 = 0x05df
VID2 = 0x0519 #制御チップCH552G
PID2 = 0x2018

# リレーモジュール2を1よりもWin11に先に認識させると、正常に認識しないことがあり
# 制御チップTINY45とCH552Gでは、左右が逆になるので注意
# リレーモジュール1の制御コマンド
RELAY_ON_CMD11 = [0x00, 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00] #制御チップTINY45 右
RELAY_OFF_CMD11 = [0x00, 0xfd, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00]
RELAY_ON_CMD12 = [0x00, 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00] #制御チップTINY45 左
RELAY_OFF_CMD12 = [0x00, 0xfd, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00]
# リレーモジュール2の制御コマンド
RELAY_ON_CMD21 = [0x00, 0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] #制御チップCH552G 左
RELAY_OFF_CMD21 = [0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
RELAY_ON_CMD22 = [0x00, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00] #制御チップCH552G 右
RELAY_OFF_CMD22 = [0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

# HIDデバイス1を開く
device1 = hid.device() #制御チップTINY45
device1.open(VID1, PID1)
# HIDデバイス2を開く
device2 = hid.device() #制御チップCH552G
device2.open(VID2, PID2)

# リレー1をONにする
device1.send_feature_report(RELAY_ON_CMD11) #制御チップTINY45
device2.write(RELAY_ON_CMD21) #制御チップCH552G
time.sleep(2) # 一時停止2秒
# リレー2をONにする
device1.send_feature_report(RELAY_ON_CMD12) #制御チップTINY45
device2.write(RELAY_ON_CMD22) #制御チップCH552G
time.sleep(2) # 一時停止2秒
# リレー1をOFFにする
device1.send_feature_report(RELAY_OFF_CMD11) #制御チップTINY45
device2.write(RELAY_OFF_CMD21) #制御チップCH552G
time.sleep(2) # 一時停止2秒
# リレー2をOFFにする
device1.send_feature_report(RELAY_OFF_CMD12) #制御チップTINY45
device2.write(RELAY_OFF_CMD22) #制御チップCH552G
time.sleep(2) # 一時停止2秒

# HIDデバイスを閉じる
device1.close()
device2.close()


ON/OFFの所がどうしても統一できなかった。

初心者の私には、なぜこうなるのかは、わからない。

左右が逆になっているのは、実際に設置する場合にややこしい。

リレーモジュールの認識の問題は、自分の環境のみの問題かもしれない。

コメント

このブログの人気の投稿