hi all , im really struggling with interfacing with the EG8010, it has serial communication and i think im following the protocol but it isn't responding... hardware wise i have tried all conceivable combinations....
i get all zeros on the reply...and the commands do nothing, it would be greatly appreciated if someone more knowing could help..
#include <SoftwareSerial.h>
int incomingByte = 0;
int incomingByte2 [4];
int feedback = 0;
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
Serial.begin (57600);
mySerial.begin(2400);
pinMode (11, OUTPUT);
pinMode (10, INPUT);
\
}
void ON () {
mySerial.write (0X81);
mySerial.write (0X55);
if (mySerial.available() > 3) {
for (byte i; i > 4; i++) {
incomingByte2 [i] = mySerial.read();
}
}
Serial.print("I received2: ");
Serial.println(incomingByte2 [0], HEX);
Serial.println(incomingByte2 [1], HEX);
Serial.println(incomingByte2 [2], HEX);
Serial.println(incomingByte2 [3], HEX);
if (incomingByte2 [0] == 0X55 ) {
digitalWrite (7, HIGH);
} else {
error ();
}
}
void OFF () {
mySerial.write (0X81);
mySerial.write (0xAA);
if (mySerial.available() > 3) {
for (byte i; i > 4; i++) {
incomingByte2 [i] = mySerial.read();
}
}
Serial.print("I received2: ");
Serial.println(incomingByte2 [0], HEX);
Serial.println(incomingByte2 [1], HEX);
Serial.println(incomingByte2 [2], HEX);
Serial.println(incomingByte2 [3], HEX);
if (incomingByte2 [0] == 0X55) {
digitalWrite (7, LOW);
}
else {
error ();
}
}
void sethz () {
mySerial.write (0X82);
mySerial.write (0xAC);
if (mySerial.available() > 3) {
for (byte i; i > 4; i++) {
incomingByte2 [i] = mySerial.read();
}
}
Serial.print("I received2: ");
Serial.println(incomingByte2 [0], HEX);
Serial.println(incomingByte2 [1], HEX);
Serial.println(incomingByte2 [2], HEX);
Serial.println(incomingByte2 [3], HEX);
if (incomingByte2 [0] == 0X82) {
digitalWrite (8, HIGH);
}
else {
error ();
}
}
void error () {
digitalWrite (13, HIGH);
}
void loop() {
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = mySerial.read();
Serial.print("I received: ");
Serial.println(incomingByte, DEC);
}
if (incomingByte == 49) {
ON ();
}
else if (incomingByte == 50 ) {
OFF ();
}
else if (incomingByte == 51) {
sethz ();
}
}
EG8010_datasheet_en.pdf (835 KB)