1 changed files with 41 additions and 50 deletions
@ -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…
Reference in new issue