char fromBluetooth[] = "zgr\r123\r";
int name_length = 0;
int pass_length = 0;
while (1)
{
if (fromBluetooth[name_length] == '\r')
{
break;
}name_length++;
}
char ssid_determined[name_length];
for (int i = 0; i < name_length; i++)
{
ssid_determined[i] = fromBluetooth[i];
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print(ssid_determined);
Este código debería dar un resultado en la pantalla LCD como "zgr", pero lo que obtengo en la pantalla LCD es "zgr!\r\r". ¿Alguien puede explicarme cómo sucede esto?
NOTA: Ese objeto lcd es del tipo LiquidCrystal de Arduino.
En primer lugar, no estoy seguro de cómo está declarando una matriz con una longitud especificada en tiempo de ejecución. Este es el estándar C, ¿verdad?
Lo que probablemente esté causando su problema es que ssid_determinad no está terminado en nulo. El tamaño de ssid_determinad debe ser name_length + 1, y el carácter final debe ser '\0'.
tom carpintero