Stránka 1 z 1

Arduino RS485 a I2C súčasne

Napsal: 28 říj 2022, 20:02
od miluk
Ahojte,

mám pripojené Arduino Nano cez RS485 (TX1, RX0) k PLC Domat MarkMMX. Dáta z arduina čítam Modbus RTU protokolom. Všetko funguje správne až do doby, keď pripojím senzor osvetlenia BH1750 s I2C komunikáciou na piny A4 a A5. Po nahratí kódu na čítanie hodnoty zo senzora, prestane komunikovať NANO na RS485.

Vie mi s tým niekto pomôcť? Ďakujem.

Skrátený kód:

Kód: Vybrat vše

#include <BH1750.h>
#include<ModbusRtu.h>
#include <Wire.h>

BH1750 lightMeter;

float lux;

Modbus bus;  

uint16_t modbus_array[] = {180,20,40};

void setup()
{
  Wire.begin();
  bus = Modbus(10,1,4);
  bus.begin(19200);
}

void loop()
{
[b]   lux = lightMeter.readLightLevel();[/b]

   bus.poll(modbus_array,sizeof(modbus_array)/sizeof(modbus_array[0]));
   modbus_array[2] = lux;

  if (modbus_array[0] == 300)   
  {
    digitalWrite(led1,LOW);
  }
  else   
  {
    digitalWrite(led1,HIGH);
  }
}

Re: Arduino RS485 a I2C súčasne

Napsal: 29 říj 2022, 07:35
od AstroMiK
A jaké konkrétní knihovny pro Modbus a pro to čidlo světla používáš?

Když vyzkoušíš samotné čtení světla bez Modbusu (třeba jen s pravidelným výpisem do sériové linky), tak to funguje?

Re: Arduino RS485 a I2C súčasne

Napsal: 29 říj 2022, 09:43
od kiRRow
Tohle je překlep a měl by být opraven, aby nemátl ?

Kód: Vybrat vše

[b]   lux = lightMeter.readLightLevel();[/b]

Re: Arduino RS485 a I2C súčasne

Napsal: 30 říj 2022, 20:55
od miluk
Ďakujem všetkým. Už je to vyriešené. Senzor sporadicky vypadával - na serial monitore bola hláška - Device not configured. Takže po pátraní na nete som namiesto

Kód: Vybrat vše

lightMeter.begin();
použil

Kód: Vybrat vše

lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE_2, 0x5C, &Wire);
a ADD kontakt senzora pripojil na 5V kvôli adrese 0x5C. Všetko funguje fajn.