arduino 通过modbus读取威纶通触摸屏

本实验实现了arduino读取威纶通触摸屏上的数据,并显示在lcd1602液晶屏上。

硬件连接

arduino 通过modbus读取威纶通触摸屏_第1张图片

威纶通触摸屏作为modbus从站通讯设置如下

arduino 通过modbus读取威纶通触摸屏_第2张图片

触摸屏就简单设置了三个数字输入框,地址分别为lw0,lw1,lw2.

arduino代码如下

#include
#include //arduino自带的库
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//定义一些引脚接法
uint8_t result;
ModbusMaster node;
void setup()//这是Arduino刚上电时运行的程序,只运行一次
{
  Serial.begin(9600);//初始化与计算机串口进行通信的波特率(一种频率)
  node.begin(1,Serial);
  lcd.begin(16, 2);//初始化lcd1602屏幕
}


void loop()//arduino的主函数,是个死循环,会一直循环下去执行命令
{

result = node.readHoldingRegisters(0,3);//从0开始读三个
if (result == node.ku8MBSuccess)
{  lcd.setCursor(0, 0);//对lcd1602第1行进行编辑
  lcd.print("data:");//编辑的第1行信息
  for (uint8_t j = 0;j<3;j++)
    {
      lcd.print( node.getResponseBuffer(j), DEC );//以DEC(十)进制显示你要的数据
      }
  
  }
  else{
    lcd.setCursor(0, 1);//打印lcd第2行信息
    lcd.print("ERROR:");
    lcd.print(result, HEX);//以HEX(16)进制显示错误信息(E2:你的TX,RX断线,E0:你的485转ttl板子有问题)
    }
  delay(1000);//延时1000毫秒
  lcd.clear();

}

 

你可能感兴趣的:(arduino 通过modbus读取威纶通触摸屏)