Now this piece of code has made a major improvement!
Maybe we're happy with it now. Or if you could see anything that could cause a failure?
#define MAX485_DE 2
char PenBuff[5];
int PenBuffLen=5;
int IncPenLen=0;
float penetration=0;
float k=0.0025;
void setup() {
Serial.begin(9600);
Serial3.begin(19200);
pinMode(MAX485_DE, OUTPUT);
digitalWrite(MAX485_DE, 0);
}
void loop() {
while (Serial3.available() > 0) {
IncPenLen=Serial3.readBytes(PenBuff, PenBuffLen);
for (int i=0; i<IncPenLen;i++){
if(PenBuff[i]=='A'){
penetration +=k;
}
else if (PenBuff[i]=='B'){
penetration -=k;
}
else if (PenBuff[i]=='+'){
penetration=penetration;
}
if (penetration <=0 ){
penetration=0;
}
}
Serial.println(penetration,4);
}
}
Robin & Fredrik