#include <Arduino.h>
void setup() {
Serial.begin(115200); // Inicia a comunicação serial
Serial.println("Leitor G-Code iniciado");
}
void loop() {
if (Serial.available() > 0) {
String gcode = Serial.readStringUntil('\n'); // Lê a linha enviada
gcode.trim(); // Remove espaços extras
Serial.println("Comando recebido: " + gcode);
// Verifica e exibe coordenadas X, Y, Z
if (gcode.indexOf('X') >= 0) {
float x = extractValue(gcode, 'X');
Serial.println("X: " + String(x));
}
if (gcode.indexOf('Y') >= 0) {
float y = extractValue(gcode, 'Y');
Serial.println("Y: " + String(y));
}
if (gcode.indexOf('Z') >= 0) {
float z = extractValue(gcode, 'Z');
Serial.println("Z: " + String(z));
}
}
}
// Função simples para extrair valores após um eixo (X, Y, Z)
float extractValue(String command, char axis) {
int startIndex = command.indexOf(axis) + 1; // Posição do caractere + 1
int endIndex = command.indexOf(' ', startIndex); // Próximo espaço ou final
if (endIndex == -1) endIndex = command.length(); // Final da string
return command.substring(startIndex, endIndex).toFloat();
}