La placa y el terminal probablemente no estén usando la misma velocidad en baudios. Verifique la esquina inferior derecha de la Terminal serie Arduino y asegúrese de que esté configurado en 9600.
Datos seriales
La comunicación en serie funciona enviando todo el flujo de datos un bit a la vez. Esto contrasta con el puerto paralelo estándar que envía un byte a la vez. Ambos dispositivos necesitan saber a qué velocidad se envían los datos. Además, ambos dispositivos deben funcionar a la misma velocidad. Esto se llama velocidad de transmisión.
Velocidad de transmisión
Baudios realmente solo significa pulsos por segundo. En el contexto de la comunicación en serie, significa cuántos bits se transmiten por segundo. Uno de los valores más comunes es 9600, pero hay otros comunes que son factores o múltiplos de 9600. Sin embargo, en realidad no importa, siempre que ambos dispositivos funcionen a la misma velocidad.
Si le envío mensajes más rápido de lo que los recibe, pierde datos. Si te estoy enviando mensajes más lento de lo que los estás recibiendo, obtienes tonterías mezcladas con lo que te envié.
Datos, paridad, bits de parada
Si observa la documentación begin()
, verá que puede tomar dos parámetros:
Serial.begin(speed)
Serial.begin(speed, config)
Esperemos que ahora entienda la velocidad, son los bits por segundo a los que se comunicará Arduino.
El segundo parámetro, le config
permite configurar algunas otras cosas sobre la transmisión de datos en serie. Estos son los bits de datos, paridad y parada. Verá en la página que tiene valores como 5N1
, 6N1
ySERIAL_8N1 (the default)
El primer número representa cuántos bits de datos. El segundo personaje te dice qué tipo de bit de paridad hay. E
para paridad O
par, paridad impar o N
sin paridad. El tercer número te dice cuántos bits de parada.
Entonces, realmente, con 8N1, tenemos 10 bits enviados por cada 8 bits de "sus" datos. 1 bit de inicio, 8 bits de datos y 1 bit de parada.
De todos modos, ambas partes deben acordar esta información y la velocidad. El terminal serie de Arduino no le da la opción de cambiar estas configuraciones, pero otras lo hacen, por lo que deberá asegurarse de que todas estas configuraciones sean las mismas.
Más información en wiki: comunicación serial asincrónica