/*
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));
}
}
Cách cập nhật Anhdv Boot không mất dữ liệu
2 weeks ago
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ẻ.