Así pudiera entenderse a primera vista, pero más bien supongo que signifique serial number o algo así (¿nùmero de versión?). De todas formas, he pasado esa respuesta a ascii. La conversión: 442D5468696E6B204D33305A3133342056322E3030 (el 51 será el checksum) D-Think M30Z134 V2.00
En este caso, lo que tiene sentido son los caracteres, en lugar del valor hexadecimal.
Arrea, que listo! Bueno, es buena noticia, por lo menos, sabemos a ciencia cierta que el dispositivo responde, ahora tan solo falta, leer la etiqueta. Sigo haciendo pruebas, se te ocurre algo? Medire la continuidad de la antena, por si hubiera un fallo de fabricacion.
Vale, muchisimas gracias! Sin prisa, gracias por todo! Sigo haciendo pruebas hasta donde llegan mis cortas entendederas. Estoy probando el segundo comando, la funcion LED.
Manage LED
Command code: 0x0102
Parameters:00=LED ON
01=LED OFF
Remarks: Power on LED has a short process from light to destroy, then LED commands from outside.
Answer data: NONE
No aprecio que se ilumine el led en ningun momento, sigo mirando cosillas.
Bueno. Es un método tosco, pero acelerará tus pruebas. Sustituye el setup y loop por estos:
void setup() {
Serial.begin(9600);
RFID.begin(9600);
}
void loop() {
if (Serial.available()) {
int numero=Serial.parseInt();
if (numero >= 10)
EnviaComando(numero/10,numero%10);
else
EnviaComando(numero);
}
if (recepcion()) {
byte *pRespuesta = (byte *) &respuesta.idDispositivo;
for (int i=0; i<respuesta.longitud; i++){
if(pRespuesta[i]<0x10) Serial.print(0);
Serial.print(pRespuesta[i], HEX);
}
Serial.println();
}
}
Luego teclea comandos en el monitor serie de la siguiente forma:
-cifra significativa del comando
-cifra del parámetro
-un separador (por ejemplo una coma).
Okey, muchas gracias, mañana con un poquito mas de calma reviso de nuevo el codigo y hago las pruebas. Cuando ya este todo claro y funcionando, subiremos el codigo, las fotografias y la PCB que haga a modo de escudo con la antena directamente en circuito impreso, y asi, que pueda aprovechar el resto de la humanidad tu codigo y esfuerzo.
Pues me temo que en ese punto no puedo ayudarte, pues parece tener más que ver con el hardware que con el software (aunque tal vez tenga que ver con que debas activar la antena o sacar de sleep al RFID) y no dispongo de ese hardware para probar.
Intenta rememorar qué tocaste cuando te ha dado lecturas sin errores.
Buenas, creo que he descubierto un pequeño error frente al dispositivo, por eso, en algunas ocasiones, vuelca ese error. Tras varias comprobaciones, el ultimo codigo, funciona correctamente, esto es lo que aparece en pantalla. He intentado, desligar de todas las maneras por si fuera un array de datos, pero, sin buenos resultados. No logro comprender muy bien el valor que devuelve en HEX, este es el resultado.
Comando enviado: 4
Parametro: 1
Recibido comando. CheckSum OK
Comando 0104
Estado: 0
Datos texto: 32212772051313217010031
Datos HEX: 20D44DCD8303D9000100001F
El numero que aparece en el blister de la etiqueta es : 985141000822147
Muchisimas gracias por todo, ya parece estar resuelto. No tenia en cuenta yo los grupos intercambiados, por eso no lo leia correctamente. Si te parece bien, seguire haciendo unas pequeñas pruebas, y redactare un poco la informacion que hemos obtenido hasta la fecha y si tienes ganas le pegas un vistazo, y asi poder dar el trabajo algo mas documentado, puesto que en el datasheet, aparecen varios errores. Muchas gracias de nuevo.
Yo tambien estoy jugando con el D-Think_M30Z134, intento leer el ID de my perro... no sin mucha dificultad!
Que opina de compartir su codigo (library?) ?