资讯详情

C#实现继电器控制(触发灯开,灯灭,以及灯闪)

首先了解串口继电器协议(0)x24协议),发送的指令要求格式一般

帧头(1 字节),地址(1 字节),命令长度(1 字节),命令(1 字节),参数码(N 字节)、校验(1 字节)

波特率:9600,校验位:N,数据位:8,停止位:1

其次,确定控制灯开灯灭灯

硬件软件对接必须先实现,涉及串口通信,

获取通信端口并打开

C# serialPort类别用于打开串口

先看看serialPort没有串口,没有实例化

serialPort = new SerialPort("COM4");

serialPort.BaudRate = 9600;

serialPort.Parity = Parity.None;

serialPort.StopBits = StopBits.One;

serialPort.DataBits = 8;

然后打开串口

serialPort .Open();接着发送指令,指令是按协议拼成的16进制字符

字符串信中发送的字符串和字符串byte,没有十六进制数据,十六进制的全称叫十六进制字符串,也就是说,比如F转换后是一个byte字节值为10进制240,只有将收到的240转换为16进制字符串时才有F0

也就是说,我们需要将字节发送到串口,然后将16进制指令转换为byte字节

//16进制转byte

public static byte[] HexStringToByteArray(string s)

{

s = s.Replace(" ", "");

byte[] buffer = new byte[s.Length / 2];

for (int i = 0; i < s.Length; i = 2)

buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16);

return buffer;

}

再发送指令,即灯灭火灯亮的指令():

serialPort.Write(array, 0, array.Length);

可获得响应返回

byte[] recData = new byte[serialPort.BytesToRead];

serialPort.Read(recData, 0, recData.Length);

最后关闭串口

serialPort.Close();

标签: 240控制继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台