Go Down

Topic: (SOLUCIONADO)Enviar dato hexadecimal por el puerto serie (Read 4 times) previous topic - next topic

tablet

Jun 04, 2012, 02:49 pm Last Edit: Aug 21, 2012, 10:17 pm by tablet Reason: 1
Hola quiero enviar #define ID 0x00A1 por el puerto serie pero no soy capaz de que me pinte eso, lo que consigo pintar es A1 mediante Serial.print(ID,HEX), los ceros no aparecen, ¿como puedo hacer que pinte 00A1? Gracias

jorgepl

Necesitas convertirlo primero en cadena de texto:

Code: [Select]

#include <stdio.h>

#define ID 0x00A1

void setup()
{
  int variable = ID;
  char texto[16];

  Serial.begin(9600);
 
  sprintf(texto, "%04X", variable);
  Serial.println(texto);
}

void loop()
{
}

tablet

Muchas gracias me fue de lujo. Saludos.

jorgepl

De nada,
Jorge

PD: Modifica el título a (SOLUCIONADO)

nekonos

Hola compañeros.

Acabo de registrarme hace unos dias que intento ir aprendiendo programacion y electronica en arduino  XD

El caso es que tengo un problema parecido. La solucion que has jorgepl no entiendo ni papa jeje.

Bien el caso es que quiero controlar un equipo por entrada rs232. Tengo un conversor ttl a rs232 con el max232 sus condensadores y demás.

Estos son los comandos basicos que quiero mandar.
                        ascci                      hex
Power On        ~ P N CR                7Eh 50h 4Eh 0Dh
Power Off       ~ P F CR                 7Eh 50h 46h 0Dh

Este es el codigo que he intentado hacer manda comando power on espera 1 min y apaga luego vuelve a esperar 3 min para encender.

Si conecto el usb con el pc con el serial monitor todo bien aparece ~PN cambio de linea ~PN

En cambio el dispositivo no responde

Code: [Select]
int led = 13;

void setup()
{
pinMode(led, OUTPUT);     
Serial.begin(9600);    // configura el puerto serie a 9600bps
}
void loop()
{
Serial.println("~PN");
digitalWrite(led, HIGH);   
delay(1000);
Serial.println("~PN"); //power on

digitalWrite(led, LOW);
delay(1000);
digitalWrite(led, HIGH);   
delay(60000); //espera 1 min
digitalWrite(led, LOW);
Serial.println("~PF"); //Power off
delay(180000); //espera 3 min para volver a encender.
}


Si podeis aclararme si hay algun fallo de programa o me pongo a mirar hard  en principio pin rx y tx estan bien conectados .
El pinaje del dispositivo no esta claro si pin2-pin3 es rx o tx he probado intercambiandolos.

Gracias por vuestro tiempo

Saludos

Go Up