30-04-2025, Saat: 20:12
Merhaba,
Bilgisayar ile MODBUS cihazına bağlanıyorum ama ESP32 ile bağlanamıyorum.
MODBUS protokolü ile çalışan sıcaklık sensörü aldım.
Sensörün özellikleri bu şekildedir:
Sensörü dönüştürücü ile PC'ye bağladım. MODBUS POL programı ile bağlanıp okuyabiliyorum.
MODBUS POL bağlantı ayarları:
Burada Read Input Register ile bağlanıp veri okuyabiliyorum.
Bu şekilde sensörün bilgilerini sorunsuz okuyabiliyorum.
ESP32'de ise aşağıdaki kodu kullanarak
SLAVE ID 1, Register adres 0 olarak deneme yapıyorum ama sürekli aynı hatayı alıyorum.
ESP32 Serial2'ye MODBUS dönüştürücüden (MAX3485) veri almaya çalışıyorum ama hata veriyor.
Kullandığım dönüştürücü bir taraf UART diğer taraf A, B, GND RS-485 tarafıdır.
Arduino kodunda readInputRegisters(0, 2); 0 adresini 1,2,3,4 yapsam da aynı hatayı alıyorum.
Sorunu nasıl çözebilirim?
İyi Çalışmalar.
Bilgisayar ile MODBUS cihazına bağlanıyorum ama ESP32 ile bağlanamıyorum.
MODBUS protokolü ile çalışan sıcaklık sensörü aldım.
Sensörün özellikleri bu şekildedir:
Sensörü dönüştürücü ile PC'ye bağladım. MODBUS POL programı ile bağlanıp okuyabiliyorum.
MODBUS POL bağlantı ayarları:
Burada Read Input Register ile bağlanıp veri okuyabiliyorum.
Bu şekilde sensörün bilgilerini sorunsuz okuyabiliyorum.
ESP32'de ise aşağıdaki kodu kullanarak
SLAVE ID 1, Register adres 0 olarak deneme yapıyorum ama sürekli aynı hatayı alıyorum.
#include <Arduino.h> #include <ModbusMaster.h> ModbusMaster myModbus; #define SLAVE_ID 1 ModbusMaster node; void setup() { Serial.begin(115200); Serial2.begin(9600); //MODBUS node.begin(1, Serial2); } void loop() { uint8_t res = node.readInputRegisters(0, 2); Serial.print("res: "); Serial.println(res); if (res == node.ku8MBSuccess) { Serial.print("temp: "); Serial.println(node.getResponseBuffer(0)); Serial.print("hum: "); Serial.println(node.getResponseBuffer(1)); } else { Serial.println("Modbus error!"); } delay(1000); }
ESP32 Serial2'ye MODBUS dönüştürücüden (MAX3485) veri almaya çalışıyorum ama hata veriyor.
Kullandığım dönüştürücü bir taraf UART diğer taraf A, B, GND RS-485 tarafıdır.
Arduino kodunda readInputRegisters(0, 2); 0 adresini 1,2,3,4 yapsam da aynı hatayı alıyorum.
Sorunu nasıl çözebilirim?
İyi Çalışmalar.
Öğrenci, EEM, SAÜ.
Youtube
Youtube