USB relay not working

10 次查看(过去 30 天)
Jessica Yorzinski
Jessica Yorzinski 2022-8-27
I am using this USB relay:
SMAKN LCUS-1 type USB relay module USB intelligent control switch USB switch
To power a dosing pump:
Gikfun 12V DC Dosing Pump Peristaltic Dosing Head with Connector For Arduino Aquarium Lab Analytic Diy AE1207
This is the python code that gets it working and also has this .exe installed (SerialSend.exe; https://batchloaf.wordpress.com/serialsend/):
subprocess.check_output("serialsend.exe /baudrate 9600 /hex \\xA0\\x01\\x01\\xA2", shell=True)
time.sleep(10)
subprocess.check_output("serialsend.exe /baudrate 9600 /hex \\xA0\\x01\\x00\\xA1", shell=True)
Any tips in converting this to Matlab? I’ve tried this but nothing happens:
relayopen='\\xA0\\x01\\x01\\xA2';
relayclose='\\xA0\\x01\\x00\\xA1';
Ports=serialportlist;
JuicePort=Ports(3);
s=serial(JuicePort);
fopen(s)
fprintf(s,relayopen)
fclose(s)

回答(1 个)

Walter Roberson
Walter Roberson 2022-8-27
relayopen = '\xA0\x01\x01\xA2';
relayclose = '\xA0\x01\x00\xA1';
Ports = serialportlist;
JuicePort = Ports(3);
s = serial(JuicePort, 'BaudRate', 9600);
fopen(s)
fprintf(s,relayopen)
fclose(s)
Note that serial() is going to go away, and you should change to serialport()
  3 个评论
Walter Roberson
Walter Roberson 2022-8-28
relayopen = 0xA00101A2;
relayclose = 0xA00100A1;
Ports = serialportlist;
JuicePort = Ports(3);
s = serial(JuicePort, 'BaudRate', 9600, 'ByteOrder', 'bigendian');
fopen(s);
fwrite(s, relayopen);
sleep(5);
fwrite(s, relayclose);
fclose(s)
Jessica Yorzinski
Jessica Yorzinski 2022-8-28
Thanks for giving me something else to try! Unfortunately, it is still the case that the pump isn't triggered (even though that Python code running on the same machine does trigger it). There are no errors-- just nothing happens. Any other things I could try?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 String Parsing 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by