From 6b398df75018f74c4ded2f6b93668915b5a0dd1b Mon Sep 17 00:00:00 2001 From: dslak Date: Sun, 5 Mar 2023 19:35:17 +0100 Subject: [PATCH] WIP multi sensor --- TEST/windAll/windAll.ino | 91 ++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 50 deletions(-) diff --git a/TEST/windAll/windAll.ino b/TEST/windAll/windAll.ino index a0126c9..f7c73cb 100644 --- a/TEST/windAll/windAll.ino +++ b/TEST/windAll/windAll.ino @@ -1,81 +1,72 @@ #include #include -#define RE 7 -#define DE 8 - -#define RE2 2 -#define DE2 3 - -const byte O1[] = {0x01 ,0x03 ,0x00 ,0x00 ,0x00 ,0x02 ,0xC4 ,0x0B}; -const byte O2[] = {0x01 ,0x03 ,0x00 ,0x00 ,0x00 ,0x02 ,0xC4 ,0x0B}; + +const int RE[] = {0,7,2}; +const int DE[] = {0,8,3}; +const byte codes[] = {0x01 ,0x03 ,0x00 ,0x00 ,0x00 ,0x02 ,0xC4 ,0x0B}; -byte values[20]; -byte values2[20]; -SoftwareSerial mod(10, 11); // RO / DI +byte values[3][20]; +SoftwareSerial mod1(10, 11); // RO / DI SoftwareSerial mod2(5, 6); // RO / DI void setup() { Serial.begin(4800); - mod.begin(4800); + while(!Serial){;} + mod1.begin(4800); + delay(500); mod2.begin(4800); - pinMode(RE, OUTPUT); - pinMode(DE, OUTPUT); - pinMode(RE2, OUTPUT); - pinMode(DE2, OUTPUT); + delay(500); + pinMode(RE[1], OUTPUT); + pinMode(DE[1], OUTPUT); + pinMode(RE[2], OUTPUT); + pinMode(DE[2], OUTPUT); } void loop() { int val1 = 0 ; // SPEED int val2 = 0 ; // DIR - Calculate(); - //val1 = ((values[5]*256)+values[6]); - val1 = values[4]; + readSensor(1); + //val1 = ((values[1][5]*256)+values[1][6]); + val1 = values[1][4]; Serial.print("speed: "); Serial.println(val1); delay(1000); - - Calculate2(); - val2 = values2[4]; + readSensor(2); + val2 = values[2][4]; Serial.print("dir: "); Serial.println(val2); delay(1000); } -byte Calculate() { - digitalWrite(DE, HIGH); - digitalWrite(RE, HIGH); +byte readSensor(int sensor) { + digitalWrite(DE[sensor], HIGH); + digitalWrite(RE[sensor], HIGH); delay(10); - if (mod.write(O1, sizeof(O1)) == 8) { - digitalWrite(DE, LOW); - digitalWrite(RE, LOW); - for (byte i = 0; i < 11; i++) { - //Serial.print(mod.read(),HEX); - values[i] = mod.read(); - Serial.print(values[i]); - Serial.print(" "); + if(sensor == 1) { + if (mod1.write(codes, sizeof(codes)) == 8) { + digitalWrite(DE[sensor], LOW); + digitalWrite(RE[sensor], LOW); + for (byte i = 0; i < 11; i++) { + values[sensor][i] = mod1.read(); + Serial.print(values[sensor][i]); + Serial.print(" "); + } } - } - Serial.println(" "); -} - - -byte Calculate2() { - digitalWrite(DE2, HIGH); - digitalWrite(RE2, HIGH); - delay(10); - if (mod2.write(O2, sizeof(O2)) == 8) { - digitalWrite(DE2, LOW); - digitalWrite(RE2, LOW); - for (byte i = 0; i < 11; i++) { - //Serial.print(mod2.read(),HEX); - values2[i] = mod2.read(); - //Serial.print(values2[i]); - //Serial.print(" "); + } else if(sensor == 2) { + if (mod2.write(codes, sizeof(codes)) == 8) { + digitalWrite(DE[sensor], LOW); + digitalWrite(RE[sensor], LOW); + for (byte i = 0; i < 11; i++) { + values[sensor][i] = mod2.read(); + Serial.print(values[sensor][i]); + Serial.print(" "); + } } } Serial.println(" "); } +