Hallo,
eigentlich wollte ich auf die IDE Bsp. verweisen, jedoch funktionieren einige bei mir nicht.
Zum Bsp. "Dimmer". Ein anderes mit Serial.parseInt will auch nicht. :o
Also was geschrieben für vierstellige Zahleneingabe.
Wenn das verstanden ist bin ich mir sicher du kannst das auf myservo abändern.
Im seriellen Monitor ganz unten noch "Sowohl NL als auch CR" auswählen. Ist immer gut für die Newline Steuerzeichenübertragung usw.
In Zukunft bitte nach Preview die Code Tags oben links </> verwenden um Code einzufügen. Erleichtert und verstümmelt den Code nicht.
const byte LED = 13;
const byte SERIAL_BUFFER_SIZE = 5;
char serialBuffer[SERIAL_BUFFER_SIZE];
int pos;
void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
}
void loop() {
handle_serial();
analogWrite(LED, pos);
}
bool read_serial()
{
static byte index = 0;
if (Serial.available() > 0) {
char c = Serial.read();
if(c == '\n') { // 'NL' Endeerkennung
serialBuffer[index] = '\0'; // Null Terminierung
index = 0;
return true;
}
else if (c >= 32 && index < SERIAL_BUFFER_SIZE-1) { // alles lesen was kein Steuerzeichen ist
serialBuffer[index++] = c;
}
}
return false;
}
void handle_serial ()
{
if (read_serial() ) {
int value = atoi(serialBuffer); // string to int
Serial.print(F("eingelesener Wert: "));
Serial.println(value);
if ( 0 > value || value > 180 ) {
Serial.println(F("out of range"));
Serial.println();
}
else {
pos = value;
Serial.print("pos "); Serial.println(pos);
Serial.println();
}
memset(serialBuffer,'\0',sizeof(serialBuffer)); // seriellen Buffer löschen
}
}