"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 comments:

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ẻ.

:) :( :)) :(( =)) =D> :D

Kết nối bạn bè

Wikipedia

Search results

Video Nổi bật

Video tổng hợp

Thống kê