Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ModbusMaster.h>
- #define MAX485_RE_DE 5
- ModbusMaster node;
- void preTransmission() {
- digitalWrite(MAX485_RE_DE, 1);
- }
- void postTransmission() {
- digitalWrite(MAX485_RE_DE, 0);
- }
- void setup() {
- // Initialize control pins
- pinMode(MAX485_RE_DE, OUTPUT);
- digitalWrite(MAX485_RE_DE, 0);
- // Modbus communication runs at 9600 baud
- Serial.begin(115200);
- Serial1.begin(9600, SERIAL_8N1, 2, 15);
- // Modbus slave ID 1
- node.begin(1, Serial1);
- // Callbacks allow us to configure the RS485 transceiver correctly
- node.preTransmission(preTransmission);
- node.postTransmission(postTransmission);
- }
- void loop() {
- // Request 2 registers starting at 0x0001
- uint8_t result = node.readInputRegisters(0x0001, 2);
- Serial.println("Data Requested");
- if (result == node.ku8MBSuccess) {
- // Get response data from sensor
- Serial.print("Temperature: ");
- Serial.print(float(node.getResponseBuffer(0) / 10.00F));
- Serial.print(" Humidity: ");
- Serial.println(float(node.getResponseBuffer(1) / 10.00F));
- }
- delay(1000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement