Browse Source

WIP multi sensor

feature/rs485
dslak 2 years ago
parent
commit
6b398df750
  1. 91
      TEST/windAll/windAll.ino

91
TEST/windAll/windAll.ino

@ -1,81 +1,72 @@
#include <SoftwareSerial.h>
#include <Wire.h>
#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(" ");
}

Loading…
Cancel
Save