I recently had a similar problem to send data to Arduino Unity and I developed this little demonstration.
It has the advantage of adjusting the write speed of Arduino speed at which empties buffe ...
Please note that is just a small demonstration.
int MaxBytesAvailable;
int CurrentAvailable;
int delayNumber=1000;
int n;
String messageOut;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
MaxBytesAvailable=Serial.availableForWrite();
}
void loop() {
// put your main code here, to run repeatedly:
messageOut="";
messageOut+=Serial.availableForWrite();
messageOut+=" Current Delay =";
messageOut+=delayNumber;
Serial.println(messageOut);
for(n=0;n<delayNumber;n++)
{
if((CurrentAvailable=Serial.availableForWrite())>=MaxBytesAvailable) break;
}
if (CurrentAvailable>(MaxBytesAvailable/2))
{
delayNumber-=100;
if(delayNumber<0)delayNumber=0;
}
else
{
delayNumber+=100;
if(delayNumber>65000) delayNumber=65000;
}
}