From acaba420d640e78a4e7caaf2c6961771678aabfb Mon Sep 17 00:00:00 2001 From: Denis Denisov Date: Sun, 3 Mar 2024 18:19:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D0=B0=D1=8F=20=D1=81=D1=85?= =?UTF-8?q?=D0=B5=D0=BC=D0=B0=20(=D0=B2=D1=81=D1=91=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D1=80=D0=B5=D0=BB=D0=B5).=20=D0=9F=D0=B5=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=B0=D1=91=D0=BC=20=D0=BD=D0=B0=D0=B2=D0=B5=D1=80=D1=85=20?= =?UTF-8?q?=D0=B2=D1=81=D0=B5=20=D0=BD=D0=B0=D0=BF=D1=80=D1=8F=D0=B6=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F,=20=D0=BF=D1=83=D1=81=D1=82=D1=8C=20=D1=82?= =?UTF-8?q?=D0=B0=D0=BC=20=D1=80=D0=B0=D0=B7=D0=B1=D0=B8=D1=80=D0=B0=D1=8E?= =?UTF-8?q?=D1=82=D1=81=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- charger/charger.ino | 51 ++++++++++++++++++++++---------------------- charger_neww.rrb | Bin 0 -> 5497 bytes 2 files changed, 26 insertions(+), 25 deletions(-) create mode 100644 charger_neww.rrb diff --git a/charger/charger.ino b/charger/charger.ino index d107cad..fc54eac 100644 --- a/charger/charger.ino +++ b/charger/charger.ino @@ -11,9 +11,7 @@ ModbusRTU mb; #define ACC_STATE_REGISTER 4 #define LAMP_STATE_REGISTER 5 #define U_ACC_LOW_REGISTER 6 -#define U_ACC_HIGH_REGISTER 7 -#define U_LAMP_LOW_REGISTER 8 -#define U_LAMP_HIGH_REGISTER 9 +#define U_LAMP_LOW_REGISTER 10 #define ACC_PIN 2 #define LAMP_PIN 3 @@ -45,16 +43,19 @@ void setup() mb.addHreg(I_LAMP_HIGH_REGISTER); mb.addHreg(ACC_STATE_REGISTER); mb.addHreg(LAMP_STATE_REGISTER); - mb.addHreg(U_ACC_LOW_REGISTER); - mb.addHreg(U_ACC_HIGH_REGISTER); - mb.addHreg(U_LAMP_LOW_REGISTER); - mb.addHreg(U_LAMP_HIGH_REGISTER); + for (int i = 0; i < 4; i++) + { + mb.addHreg(U_ACC_LOW_REGISTER + i); + mb.addHreg(U_LAMP_LOW_REGISTER + i); + } } float I_lamp; float I_acc; -float U_lamp; -float U_acc; +float U1_lamp; +float U2_lamp; +float U1_acc; +float U2_acc; void ReadLamp() { @@ -62,10 +63,9 @@ void ReadLamp() int a5 = analogRead(A5); // multiply by 5 as reference current, // multiply by 3 because of the divider - float v1 = a4 / 1023.0 * 5 * 3; - float v2 = a5 / 1023.0 * 5 * 3; - I_lamp = (v1 - v2) / R_lamp; - U_lamp = v1; + U1_lamp = a4 / 1023.0 * 5 * 3; + U2_lamp = a5 / 1023.0 * 5 * 3; + I_lamp = (U1_lamp - U2_lamp) / R_lamp; } void ReadAcc() @@ -74,10 +74,9 @@ void ReadAcc() int a3 = analogRead(A3); // multiply by 5 as reference current, // multiply by 3 because of the divider - float v1 = a2 / 1023.0 * 5 * 3; - float v2 = a3 / 1023.0 * 5 * 3; - I_acc = (v1 - v2) / R_LIMITER; - U_acc = v1; + U1_acc = a2 / 1023.0 * 5 * 3; + U2_acc = a3 / 1023.0 * 5 * 3; + I_acc = (U1_acc - U2_acc) / R_LIMITER; } void WriteFloatReg(int start, float val) @@ -95,26 +94,28 @@ void loop() ReadLamp(); ReadAcc(); WriteFloatReg(I_ACC_LOW_REGISTER, I_acc); - WriteFloatReg(U_ACC_LOW_REGISTER, U_acc); + WriteFloatReg(U_ACC_LOW_REGISTER, U1_acc); + WriteFloatReg(U_ACC_LOW_REGISTER + 2, U2_acc); WriteFloatReg(I_LAMP_LOW_REGISTER, I_lamp); - WriteFloatReg(U_LAMP_LOW_REGISTER, U_lamp); + WriteFloatReg(U_LAMP_LOW_REGISTER, U1_lamp); + WriteFloatReg(U_LAMP_LOW_REGISTER + 2, U2_lamp); mb.task(); - lamp_state = mb.Hreg(lamp_state); - acc_state = mb.Hreg(acc_state); + lamp_state = mb.Hreg(LAMP_STATE_REGISTER); + acc_state = mb.Hreg(ACC_STATE_REGISTER); if (lamp_state) { - digitalWrite(LAMP_PIN, 1); + digitalWrite(LAMP_PIN, HIGH); } else { - digitalWrite(LAMP_PIN, 0); + digitalWrite(LAMP_PIN, LOW); } if (acc_state) { - digitalWrite(ACC_PIN, 1); + digitalWrite(ACC_PIN, HIGH); } else { - digitalWrite(ACC_PIN, 0); + digitalWrite(ACC_PIN, LOW); } } diff --git a/charger_neww.rrb b/charger_neww.rrb new file mode 100644 index 0000000000000000000000000000000000000000..2e620f5db7716493eb707251622bcb3e0d124e58 GIT binary patch literal 5497 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 literal 0 HcmV?d00001