How to send a byte or byte string in hexadecimal?

Hello again:

In C # I can send a message like this:

 byte [] = Encoding.ASCII.GetBytes mBuffer ("Hello world.")

In Arduino just as well:

 Serial.write ("Hello world.")

In C # I can directly send a byte in hexadecimal as follows:

byte [] mBuffer = new byte [1];
mBuffer [0] = 0x74 / / ASCII letter "t".
serialPort1.Write (mBuffer, 0, mBuffer.Length)

If I want to send a string of bytes in hexadecimal in C # I do so:

byte [] = new byte mBuffer [5];
mBuffer [0] = 0x74;
mBuffer [1] = 0x75;
mBuffer [2] = 0x89;
mBuffer [3] = 0x20;
mBuffer [4] = 0x6C;
serialPort1.Write (mBuffer, 0, mBuffer.Length)

How do I send a byte hexadecimal string to the serial port on Arduino IDE 1.0.5?

See ASCII here table.

Greeting.

How do I send a byte hexadecimal string to the serial port on Arduino

To send a byte:-

Serial.write(myByte);

to send a hex string

Serial.print(myValue, HEX);

?? the write command sends 8 bits. That is your 2 hex digits already, of 8 bits…or a decimal valu
Read it how you like.
Text is best stored in array of char.
If you size the array on more than the letters you need use that last char to add a null
Send the array with serial.write(arrayname)

I want to send an array of bytes in hexadecimal. A simple example.

int E0 = 8; // interruptor conectado al pin 0
byte arrayBytes [] = {0x65,0x66,0x67,0x68};

void setup()
{
   pinMode(E0, INPUT); // pin 0 como ENTRADA
   Serial.begin(9600);    // inicia el puerto serie a 600bps
}

void loop()
{
   if(digitalRead(E0) == HIGH) //si el interruptor esta en ON
   {
      Serial.print(arrayBytes);    // envía 1 a Processing
   } 
   else 
   {
      Serial.print("ADIOS");    // en caso contrario envía 0 a Processing
   }
   delay(100);     // espera 100ms
}

Has an error and is not.

This report would have more information with
“Show verbose output during compilation”
enabled in File > Preferences.
Arduino: 1.0.5 (Windows 7), Board: “Arduino Uno”
sketch_feb14a.ino: In function ‘void loop()’:
sketch_feb14a:15: error: call of overloaded ‘print(byte [4])’ is ambiguous
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Print.h:56: note: candidates are: size_t Print::print(const String&)
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Print.h:57: note: size_t Print::print(const char*)
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Print.h:58: note: size_t Print::print(char)
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Print.h:59: note: size_t Print::print(unsigned char, int)
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Print.h:60: note: size_t Print::print(int, int)
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Print.h:61: note: size_t Print::print(unsigned int, int)
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Print.h:62: note: size_t Print::print(long int, int)
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino/Print.h:63: note: size_t Print::print(long unsigned int, int)

:wink:

char arrayBytes [] = {0x65,0x66,0x67,0x68};

or write/print bytes in a for-loop

It works like this:

int E0 = 8; // interruptor conectado al pin 0
void setup()
{
   pinMode(E0, INPUT); // pin 0 como ENTRADA
   Serial.begin(9600);    // inicia el puerto serie a 600bps
}

void loop()
{
   if(digitalRead(E0) == HIGH) //si el interruptor esta en ON
   {
     byte arrayBytes [] = {0x41, 0x64, 0x69, 0xA2, 0x73, 0x20};
     Serial.write(arrayBytes, 6);    // envía 1 a Processing
   } 
   else 
   {
     Serial.print("ADIOS ");    // en caso contrario envía 0 a Processing
   }
   delay(100);     // espera 100ms
}

The part of the code below:

     byte arrayBytes [] = {0x41, 0x64, 0x69, 0xA2, 0x73, 0x20};
     Serial.write(arrayBytes, 6);

To send bytes I put a 6 For six bytes are sent.

In Arduino IDE 1.0.5. Is there a way to send bytes without knowing how much?

Greeting.

Use a for loop.

Hi:

I do not answer or return carriage 0x13 0x10 newline.

int E0 = 8; // interruptor conectado al pin 0


void setup()
{
   pinMode(E0, INPUT); // pin 0 como ENTRADA
   Serial.begin(9600);    // inicia el puerto serie a 600bps
}

void loop()
{
   if(digitalRead(E0) == HIGH) //si el interruptor esta en ON
   {
     byte arrayBytes [] = {0x41, 0x64, 0x69, 0xA2, 0x73, 0x20};
     Serial.write(arrayBytes, 6);    // envía 1 a Processing
   }
   else
   {
     byte array_Dibujo [] = {0xC9, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
   0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xBB,
 0x10, 0x10};
     Serial.write(array_Dibujo, 79);    // en caso contrario envía 0 a Processing
    
     byte array_Dibujo2 [] = {0xBA, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
   0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x4D, 0x45,
 0x4E, 0xE9, 0x20, 0x50, 0x52, 0x49, 0x4E, 0x43, 0x49, 0x50, 0x41, 0x4C, 0x20, 0x20,
 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xBA,
 0x13, 0x10};
     Serial.write(array_Dibujo2, 80);
    
     byte array_Dibujo3 [] = {"Hola \r\n"};
     Serial.write(array_Dibujo3, 80);
   }
   delay(100000);     // espera 100ms
}

Another code.

int E0 = 8; // interruptor conectado al pin 0


void setup()
{
   pinMode(E0, INPUT); // pin 0 como ENTRADA
   Serial.begin(9600);    // inicia el puerto serie a 600bps
}

void loop()
{
   if(digitalRead(E0) == HIGH) //si el interruptor esta en ON
   {
     byte arrayBytes [] = {0x41, 0x64, 0x69, 0xA2, 0x73, 0x20};
     Serial.write(arrayBytes, 6);    // envía 1 a Processing
   } 
   else 
   {
     byte array_Dibujo [] = {0x13, 0x10, 0xC9, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 
   0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 
 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 
 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD,
 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 
 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xBB,
 0x13, 0x10};
     Serial.write(array_Dibujo, 82);

     byte array_Dibujo2 [] = {0x13, 0x10, 0xBA};
     Serial.write(array_Dibujo2, 3);
     
     Serial.write("                                  MEN");
     byte array_Dibujo3 [] = {0xE9};
     Serial.write(array_Dibujo3,1);
     Serial.write(" PRINCIPAL                              ");
     byte array_Dibujo4 [] = {0xBA};
     Serial.write(array_Dibujo4, 1);
     byte array_5 [] = {0xCC, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 
   0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 
 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 
 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 
 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 
 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD};
     Serial.write(array_5, 79);
     byte array_6 [] = {0xB9};
     Serial.write(array_6, 1);
     Serial.flush();
   }
   delay(100000);     // espera 100ms
}

;)