¿Con tu código te envía hexadecimal o caracteres ascii?
De todas formas, creo que no era eso lo que buscabas, sino sencillamente enviar unos bytes. Lo de hexadecimal me despistó, ya que un byte es un byte, y hexadecimal o decimal, binario o ascii son formas de representarlo (bueno, en la máquina están en binario :)).
Quiern enviar hexadecimal para poder hacer cosas como.
Si envío ADIÓS con una tilde en la Ó, en le HyperTerminal de Windows salen caracteres raros. Las palabras enviándola normal si funconan.
También quiero enviar retorno de carro 0x13 y salto de linea 0x10 para que lo hagan el el HyperTermianl de Windows, Terra term Pro o otro similar.
Lo envío con Serial.write.
Lo he intentado con Serial.println ya que te viene lo digo pero no hace caso ni a la de trés.
Quiero enviar esta cadena de bytes por tramas, lo digo pro tramas porque s eenvía mejor, ya que en el futuro quiero comunicar como entrada y salida (Rx/Tx) para controlar el Arduino desde el PC y desde el PC Arduino. Por eso es importante envíar los bytes que salgan como quieres, no con carácteres raros que ni se entiende. Y eso que está configurado tal como es, incluido los 9600 baudios tanto en el terminal como en Arduino.
En este código me sale bien en aparaciencia, solo en aparaciencia de lo que quiero. Ya que no hay manera de soltar los un 0x13 ni 0x10. Retorno de carro y salto de línea.
Pues estoy casi seguro de que la parte de Arduino envía correctamente los códigos que le indicas. El problema va a estar en la interpretación que haga el terminal de ellos.
Probadno otro código con el sensor ultrasonido HC-SR04 con HyperTerminal funciona bien.
/*
Ejemplo de como funciona el sensor de distancia por ultrasonido
Por la consola muestra la distancia y cuando esta llega a un
punto determinado se enciende un led.
HC-SR04 conexiones:
VCC al arduino 5v
GND al arduino GND
Echo al Arduino pin 7
Trig al Arduino pin 6
*/
#define echoPin 7
#define trigPin 6
#define LEDPin 13
long duration, cm;
void setup(){
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPin, OUTPUT);
}
void loop(){
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(5);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
cm = microsecondsToCentimeters(duration);
Serial.print ("Milisegundos: ");
Serial.print(duration);
Serial.print(" Distancia estimada: ");
Serial.print(cm);
Serial.println(" cm");
delay(1000);
}
long microsecondsToCentimeters(long microseconds){
// La velocidad del sonido a 20º de temperatura es 340 m/s o
// 29 microsegundos por centrimetro.
// La señal tiene que ir y volver por lo que la distancia a
// la que se encuentra el objeto es la mitad de la recorrida.
return microseconds / 29 /2 ;
}
Una cosa que no tentiendo mucho lo que hace Arduino.
A veces funciona en el Terminal de ARduino IDE 1.0.5, luego al puerto serie físico. Ahora mismo acabo de comprobar que al mismo tiempo lelgan señales tanto del puerto serie físico que por USB.
¿Esto es normal?
Hablo del ejemplo de arriba. Si es normal, ahora me entero. Mejor, así hay posibilidad de usar DB9 o USB.