You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#include <SoftwareSerial.h>
|
|
|
|
#include <Wire.h>
|
|
|
|
#define RE D5
|
|
|
|
#define DE D6
|
|
|
|
|
|
|
|
const byte O2[] = {0x01 ,0x03 ,0x00 ,0x00 ,0x00 ,0x02 ,0xC4 ,0x0B};
|
|
|
|
|
|
|
|
byte values[20];
|
|
|
|
SoftwareSerial mod(D7, D8); // RO / DI
|
|
|
|
|
|
|
|
void setup() {
|
|
|
|
Serial.begin(9600);
|
|
|
|
mod.begin(4800);
|
|
|
|
pinMode(RE, OUTPUT);
|
|
|
|
pinMode(DE, OUTPUT);
|
|
|
|
}
|
|
|
|
|
|
|
|
void loop() {
|
|
|
|
int val1 = 0 ;
|
|
|
|
Calculate();
|
|
|
|
val1 = values[4];
|
|
|
|
Serial.print("v: ");
|
|
|
|
Serial.println(val1);
|
|
|
|
|
|
|
|
delay(1000);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
byte Calculate() {
|
|
|
|
digitalWrite(DE, HIGH);
|
|
|
|
digitalWrite(RE, LOW);
|
|
|
|
delay(10);
|
|
|
|
if (mod.write(O2, sizeof(O2)) == 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], HEX);
|
|
|
|
//Serial.print(" ");
|
|
|
|
}
|
|
|
|
Serial.println();
|
|
|
|
}
|
|
|
|
return values[6];
|
|
|
|
}
|