自家鱼塘需要用到溶解氧传感器,淘宝搜索到了个modbus输出格式的东东。网上查了好多都没有找到想要的范例程序,没办法自己看库搞了几个晚上才搞出来。(我是个业余电子爱好者)
话不多说,来个详细注释的程序,望大佬指点指点。
#include <ModbusMaster.h> //ModbusMaster库
#include "SoftwareSerial.h" //虚拟串口2库
uint16_t DO_Set_up[2] = {0x0005,0x001E}; //要写入多个寄存的值(这里写了两个)
//modbus库每次写入的是16个Bit
uint16_t temperature;
uint16_t humidity;
uint8_t result; //测量标志位
ModbusMaster node; //建立modbus对象,node就是代表modbusmaster
SoftwareSerial myserial(D7,D8); //建立虚拟串口在D7 D8 脚
void setup() {
Serial.begin(9600);
myserial.begin(9600); //虚拟串口波特率,网上好多这个地方都是错的
node.begin(1,Serial); //这里是启动modbus通信,1是从机地址,通过串口1发送出去
//如果后面写的是myserial就是用虚拟串口发送
myserial.println("abcdef");
delay(100);
for(int i=0;i<2;i++) {
node.setTransmitBuffer(i,DO_Set_up[i]); //调用MODBUS发送函数,发送2个16位数&