I've coded a system that allows me how to classify the power applied to load cell sensor, everything work but the only thing I want to improve is the classification of power detected within the right range. Actually, the system works but usually it makes a mess and instead of print me the right letter it prints me another letter of another cluster, but the interesting thing is that the number of letter is correct, only the letter is wrong sometimes.
Is it possible to set better the range or there is something to do in order to fix this problem ?
Thanks in advance for reply me
void loop() {
measurement = scale.get_units();
if ( measurement < previousMeasurement )
{
startedRecording = true;
highMeasurement = measurement;
previousMeasurement = measurement;
}
else if (( measurement >= previousMeasurement) && (previousMeasurement != -1))
{
previousMeasurement = measurement;
Serial.print("Highest Measurement: ");
Serial.print(-highMeasurement, 1);
Serial.print("Kg");
Serial.println();
//NOT STRONG
if ((measurement < -2 ) && (measurement > -10))
{
if (( measurement < -2 ) && (measurement > -4)) {
while(1) {
Keyboard.begin();
Keyboard.press('w');
delay(1000);
Keyboard.release('w');
Keyboard.end();
break;
delay(1000);
}
}
else if (( measurement < -5 ) && (measurement > -7)) {
while(1) {
Keyboard.begin();
Keyboard.press('w');
delay(2000);
Keyboard.release('w');
Keyboard.end();
break;
delay(1000);
}
}
else if (( measurement < -8 ) && (measurement > -10)) {
while(1) {
Keyboard.begin();
Keyboard.press('w');
delay(3000);
Keyboard.release('w');
Keyboard.end();
break;
delay(1000);
}
}
}
// STRONG
else if ( measurement < -11 && measurement > -19 )
{
if (( measurement <= -11 ) && (measurement >= -13)) {
while(1) {
Keyboard.begin();
Keyboard.press('s');
delay(1000);
Keyboard.release('s');
Keyboard.end();
break;
delay(1000);
}
}
else if (( measurement < -14 ) && (measurement > -16)) {
while(1) {
Keyboard.begin();
Keyboard.press('s');
delay(2000);
Keyboard.release('s');
Keyboard.end();
break;
delay(1000);
}
}
else if (( measurement < -17 ) && (measurement > -19)) {
while(1) {
Keyboard.begin();
Keyboard.press('s');
delay(3000);
Keyboard.release('s');
Keyboard.end();
break;
delay(1000);
}
}
}
// VERY STRONG
else if ( measurement < -20 && measurement > -30 )
{
if (( measurement < -20 ) && (measurement > -23)) {
while(1) {
Keyboard.begin();
Keyboard.press('a');
delay(1000);
Keyboard.release('a');
Keyboard.end();
break;
delay(1000);
}
}
else if (( measurement < -24 ) && (measurement > -26)) {
while(1) {
Keyboard.begin();
Keyboard.press('a');
delay(2000);
Keyboard.release('a');
Keyboard.end();
break;
delay(1000);
}
}
else if (( measurement < -27 ) && (measurement > -30)) {
while(1) {
Keyboard.begin();
Keyboard.press('a');
delay(3000);
Keyboard.release('a');
Keyboard.end();
break;
delay(1000);
}
}
}
}
}