Arduinoで入力された文字列から文字列と数値を取り出すプログラムを書いていますがうまく動きません。

char mode[6]="";
double a,b,c;
//str="PID 1.4 2.4 3.4"
sscanf(str,"%s%lf%lf%lf",mode,&a,&b,&c);
//sscanf(str,"%s %lf %lf %lf",mode,&a,&b,&c);でも試しました

としているのですが、modeだけ正常に読み込まれ、a,b,cは0.00になってしまいます。
色々試しているのですがうまく行きません。どのように修正すれば正しく動かせるでしょうか。