Hi, I was doing some debugging on some code but when i tried to upload it it says uploaded successfully but when i try to open serial monitor it gives an error stating "Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space". So i tried to upload a code which i know works properly and has no issues but still the problem remains the same can some one help me in figuring this out?
Here is the code which i know works properly
#include <Servo.h>
#define numOfValsRec 5
#define digitsPerValRec 1
Servo servoThumb;
Servo servoIndex;
Servo servoMiddle;
Servo servoRing;
Servo servoPinky;
int valsRec[numOfValsRec];
//$00000
int stringLength = numOfValsRec * digitsPerValRec + 1;
int counter = 0;
bool counterStart = false;
String recievedString;
void setup() {
Serial.begin(9600);
servoThumb.attach(7);
servoIndex.attach(6);
servoMiddle.attach(5);
servoRing.attach(4);
servoPinky.attach(3);
}
void recieveData(){
while (Serial.available())
{
char c = Serial.read();
if (c == '$'){
counterStart = true;
}
if (counterStart) {
if (counter < stringLength) {
recievedString = String(recievedString + c);
counter ++;
//Serial.println(counter);
//Serial.println(counterStart);
//Serial.println(c);
Serial.println(recievedString);
}
if (counter >= stringLength) {
for (int i = 0; i < numOfValsRec; i++)
{
int num = (i * digitsPerValRec) + 1;
valsRec[i] = recievedString.substring(num, num + digitsPerValRec).toInt();
//Serial.println(valsRec[i]);
}
recievedString = "";
counter = 0;
counterStart = false;
}
}
}
}
void loop() {
recieveData();
if(valsRec[0] == 1){servoThumb.write(180);}else{servoThumb.write(0);}
if(valsRec[1] == 1){servoIndex.write(180);}else{servoIndex.write(0);}
if(valsRec[2] == 1){servoMiddle.write(180);}else{servoMiddle.write(0);}
if(valsRec[3] == 1){servoRing.write(180);}else{servoRing.write(0);}
if(valsRec[4] == 1){servoPinky.write(180);}else{servoPinky.write(0);}
}