Read this: Serial.readBytes() - Arduino Reference
I think you want Serial.parseFloat();
Your sketch won't compile for me:
sketch_oct18b:8: error: expected initializer before 'char'
char buffer[100]; {
^
sketch_oct18b:8: error: expected unqualified-id before '{' token
char buffer[100]; {
^
exit status 1
expected initializer before 'char'
That bracket is in the wrong place. Fixing that mistake gets me this warning:
/Users/john/Documents/Arduino/sketch_oct18b/sketch_oct18b.ino: In function 'void loop()':
/Users/john/Documents/Arduino/sketch_oct18b/sketch_oct18b.ino:14:22: warning: invalid conversion from 'int' to 'const char*' [-fpermissive]
atof(incomingByte);
^
In file included from /Users/john/Library/Arduino15/packages/arduino/hardware/avr/1.6.19/cores/arduino/Arduino.h:23:0,
from sketch/sketch_oct18b.ino.cpp:1:
/Users/john/Library/Arduino15/packages/arduino/tools/avr-gcc/4.9.2-atmel3.5.4-arduino2/avr/include/stdlib.h:361:15: note: initializing argument 1 of 'double atof(const char*)'
extern double atof(const char *__nptr);
^
Sketch uses 4202 bytes (13%) of program storage space. Maximum is 32256 bytes.
Global variables use 202 bytes (9%) of dynamic memory, leaving 1846 bytes for local variables. Maximum is 2048 bytes.
I'm kind of surprised that " int circle(int incomingByte);" parses at all. It looks like a function prototype inside loop()!
I think what you meant to do is:
const float Pi = 3.141592;
void setup() {
Serial.begin(9600);
}
void loop() {
float inputValue = Serial.parseFloat();
Serial.println();
Serial.println(Pi * 2 * inputValue);
}