terça-feira, 27 de março de 2018

[Cookbook] Arduino recebendo comandos pela serial

 Permite enviar comandos para a Arduino pela serial.


1. Fazer o upload do código abaixo para a Arduino

// Buffer to store incoming commands from serial port
String inData;

void setup() { 
    Serial.begin(9600);
    Serial.println("Command input started.\n");

    Serial.println("Usage:\n\
                test - Print a test message\n\
                test2 - Print a test2 message\n");
}

void loop() {
    while (Serial.available() > 0)
    {
        char recieved = Serial.read();
        inData += recieved; 

        // Process message when new line character is received
        if (recieved == '\n'){
            Serial.print("Arduino Received: ");
            Serial.print(inData);
            //remove special characteres if this exists
            inData.remove(inData.lastIndexOf('\n'));
            inData.remove(inData.lastIndexOf('\r'));

            if(inData.equals("test")){
                Serial.println("TEST Command Executed");
            }
            else if(inData.equals("test2")){
                Serial.println("TEST2 Command Executed");
            }
            else Serial.println("Unknown Command!");

            inData = ""; // Clear recieved buffer
        }
    }

}
Fonte:
https://electronics.stackexchange.com/questions/45543/how-do-i-receive-an-entire-string-as-opposed-to-1-character-at-a-time-on-the-ard

Nenhum comentário:

Postar um comentário