"Hành trình vạn dặm bắt đầu từ những bước đi đầu tiên"

せんりのみちもいっぽから

Jan 6, 2020

connect HMI Weintek với Arduino Code

/*
  Modbus-Arduino Example - TempSensor (Modbus Serial)
  Copyright by André Sarmento Barbosa
  http://github.com/andresarmento/modbus-arduino
*/

#include <Modbus.h>
#include <ModbusSerial.h>


//Modbus Registers Offsets (0-9999)
const int SENSOR_IREG = 100;
//Used Pins
const int sensorPin = A0;

const int LAMP1_COIL = 10;
#define Led1   26
#define Led2   27
#define Led3   28
#define RstMCP 29
// ModbusSerial object
ModbusSerial mb;

long ts;

void setup() {
    // Config Modbus Serial (port, speed, byte format)
    mb.config(&Serial1, 9600, SERIAL_8N1);
    // Set the Slave ID (1-247)
    mb.setSlaveId(1);

    // Add SENSOR_IREG register - Use addIreg() for analog Inputs
    //mb.addIreg(SENSOR_IREG);
     mb.addHreg(0, 0); //new Value
         // 18byte from ACS
      mb.addHreg(LAMP1_COIL,0);
      mb.addHreg(1, 0); // byte 1
      mb.addHreg(2, 0); // byte 2
      mb.addHreg(3, 0); // byte 3
       mb.addHreg(SENSOR_IREG, 0); // byte 3
    ts = millis();

    pinMode(Led1, OUTPUT);
    pinMode(Led2, OUTPUT);
    pinMode(Led3, OUTPUT);
}

void loop() {
   //Call once inside loop() - all magic here
   mb.task();
   if(mb.Hreg(0)==6)
   {
    digitalWrite(Led1, HIGH);
   }
   else
   digitalWrite(Led1, LOW);

   digitalWrite(Led2, mb.Coil(LAMP1_COIL));
   //Read each two seconds
   if (millis() > ts + 2000) { 
       ts = millis();
       //Setting raw value (0-1024)
       mb.Hreg(SENSOR_IREG, analogRead(sensorPin));
   }
}

0 Post a Comment:

Post a Comment

Cảm ơn bạn đã chia sẻ ý kiến!
Chúc bạn có một ngày thật vui vẻ.

Kết nối bạn bè

Wikipedia

Search results

Video Nổi bật

Video tổng hợp

Cảm ơn các bạn đã ghé thăm

 
Please Enable Javascript!Enable JavaScript