¿Formato de transmisión de datos?

Hola que tal,
Tras un tiempo trabajando con arduino, me empezaron a asaltar dudas acerca de su funcionamiento un poco más interno.
Estoy desarrollando un proyecto en el que dos arduinso se conecten por Twi para que uno de ellos funcione como multiplexor. En la programación no tengo ningún problema, pero un día me pregunte ¿y cómo transmite los datos un arduino al otro?
Empece a investigar, me encontré con sistemas de numeración, código ASCII...
Y bueno, ahora tengo un lío.
Mi pregunta es, por ejemplo, si envio el número 79, que hace arduino con él? Lo convierte primero a ASCII (7 por un lado, 55; y 9 por otro, 59) y luego crea dos bytes en los que transmite ambos numeros, o convierte el 79, DEC a 1001111, BIN y transmite dicho mensaje?
Y si envio una "a" hace lo mismo?
Y ocurre análogamente con la comunicación Serial?

Esta pregunta me trae de cabeza ya durante un tiempo...
 
La respuesta irreverente es "tu sabrás que estás haciendo". Lo bueno y lo malo de estos sistemas es que tu decides lo que haces.

Todo es binario al final pero la codificación varía según programes. Puede que el 55 sea 1100111b, puede que sea bcd 0101 0101 puede que sea una cadena ascii 53d 53d osea: 00110101b 00110101b, o puede que sea en punto flotante, int, double...

Depende de que hayas programado

Serial.print() envía la cadena ascii para que lo veas en un terminal "normal" en lenguaje humano, pero Serial.write() creo que es permite enviar los bytes
así
Serial.print(55) envía el ascii del 55, osea 53d + 53d
Serial.print("55") lo mismo
Serial.write(55) envía solo el binario de 55 1100111
Si es
Serial.prinln("hola") envía los cuatro caracteres ascii y un retorno de carro
 
Última edición:
Atrás
Arriba