Hola Arduiforeros buenas tardes, mi intención con este código es obtener los datos de Tiempo y Fecha del RTC DS1307 y enviarlos desde un Xbee en el Arduino, hasta un Xbee en la PC y leerlos por medio del XCTU. Esta es una prueba porque mas adelante quisiera mandar un valor de voltaje junto con el tiempo y la fecha. Tengo un problema a la hora de ver los caracteres en modo HEX porque cuando impormo el array no se muestran los caracteres.
#include <Wire.h>
#include <TimeLib.h>
#include <DS1307RTC.h>
#include <SoftwareSerial.h>
SoftwareSerial xbee(2, 3);
char buffer [20];
char packet2 [40];
char varHex ;
void setup() {
Serial.begin(9600);
while (!Serial) ; // Espero al serial
delay(200);
Serial.println("DS1307RTC convertir valores a HEX");
Serial.println("-------------------");
}
void loop() {
tmElements_t tm;
if (RTC.read(tm)) {
//Sprintf Crea una cadena tipo string
sprintf(buffer, "%02d:%02d:%02d %02d/%02d/%04d", tm.Hour, tm.Minute, tm.Second, tm.Day, tm.Month, tmYearToCalendar(tm.Year));
Serial.println(buffer); // con este print compruebo que la fecha y hora
//Pasar de ASCII a HEX
// Formato ASCII :00:11:46 1/5/2021
// Formato HEX : 30 30 3A 31 31 3A 34 36 20 7C 20 31 2F 35 2F 32 30 32 31 0D
for (int i=0; i<20; i++){
varHex = (buffer[i], HEX);
packet2[i] = varHex;
Serial.println(buffer[i], HEX); // con este print compruebo que he convertido los caracteres a Hex
} // Quisiera tener estos Hex como como el formato HEX para enviarlos por el serial del Xbe
Serial.println(packet2); //Pero cuando los imprimo aqui argumentando que inicialice un array, me imprime otra cosa.
//xbee.write (packet , sizeof(packet)); // Manda el mensaje al nodo PC
}
delay(10000);
}
void print2digits(int number) {
if (number >= 0 && number < 10) {
Serial.write('0');
}
Serial.print(number);
}
tengo este resultado.