Pages: [1]   Go Down
Author Topic: Problema ID-12  (Read 1191 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 42
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,

Tengo una Mega 2560 y el rfid ID-12 conectado a ella. Me he bajado el código de playground para empezar a trastear:

http://www.arduino.cc/playground/Code/ID12


Ayer lo hice funcionar sin problemas, pero hoy al intentar cargar el código de nuevo no me aparece nada en el serial monitor. El fallo es en la lectura de la variable "val", pues no tiene valor 2, sino FF. Pero no entiendo por qué  smiley-sad

¿Alguien puede echarme una mano?
Gracias.
Logged

CHILE
Offline Offline
Jr. Member
**
Karma: 1
Posts: 93
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Que tal zEtA, dices
Quote
no me aparece nada en el serial monitor
y luego
Quote
El fallo es en la lectura de la variable "val", pues no tiene valor 2, sino FF. Pero no entiendo por qué  smiley-sad
.

Entonces si aparece algo en serial monitor????, o te estoy entendiendo mal  smiley-grin


Prueba esto : http://hcgilje.wordpress.com/resources/rfid_id12_tagreader/

Saludos!
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 42
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola Alcafuz,

Gracias por contestar. Verás, lo que he hecho es modificar en el código inicial de


http://www.arduino.cc/playground/Code/ID12


introduciendo lo siguiente:


Serial.println("Esperando lectura...");
delay (2000);

  if(Serial.available()) {
Serial.println("Serial listo...");
delay (2000);
   
val = Serial.read();
Serial.print("val es ");
Serial.println(val, DEC);

    if(val == 2) {      // check for header
      bytesread = 0;
...

De manera que cuando lee la tag, me saca por pantalla el valor de la variable val. Este valor debería corresponder a un 2 para que el código continúe, pero sin embargo me dice que es 255 (en HEX FF). Por lo que el programa se salta el condicional y todo lo siguiente. De ahí que no aparezca inicialmente nada en el serial monitor.

He probado a cambiar en el condicional el 2 por el 0xFF y entonces si ejecuta todo el programa, pero me muestra que el código de la tag es FF FF FF FF FF.


Con el ejemplo que me has pasado me aparece en el serial monitor cada vez que paso la tag lo siguente:

ÿÿÿÿÿÿÿÿÿÿ
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 42
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Solucionado! Al parecer para que funcione se necesita conectar una resistencia Pull up de 4K7 entre los pines 11 y 9 del módulo ID-12. Habían varios comentarios con el mismo problema y luego la solución por Thomas en la página que me has pasado.

Gracias por el aporte!  smiley-lol
Logged

CHILE
Offline Offline
Jr. Member
**
Karma: 1
Posts: 93
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok zEtA, suerte en tu proyecto.

Saludos
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 42
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Parece mentira, pero hoy estoy probándolo de nuevo, incluida la resistencia de 4K7 entre los pines 11 y 9, y vuelvo a tener el mismo problema. Estoy empezando a desesperarme...  smiley-sad-blue

Tengo usados los pines 1(GND), 2(RESET), 8(Tx S0), 9(Rx S0), 10(LED) y 11(+5) tal y como indica el Datasheet:

http://www.sparkfun.com/datasheets/Sensors/ID-12-Datasheet.pdf

Y no sé que puede suceder para volver a recibir las ÿÿÿÿÿÿÿÿÿÿ como valor de "val".
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 42
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hace 10 minutos de mi post anterior y justo ahora mismo he conseguido que funcione. He quitado la resistencia de 4K7 y he conectado el pin 2(RESET) a +5V y el pin 7 (+/- Format Selector) a GND. Aún así, estoy un tanto desconcertado porque no entiendo todo lo sucedido anteriormente xD.

Saludos.
Logged

CHILE
Offline Offline
Jr. Member
**
Karma: 1
Posts: 93
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola zEta, raro todo esto que te sucede...has revisado si hay algo más que te pueda estar dando problemas?? cables sueltos, baudrate??, fuente de alimentación, cosas asi??

Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 42
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola Alcafuz,

Tengo alimentada la placa por USB y el cableado está bien aparentemente. En la página que me pasaste indica que el ID-12 debe estar alimentado por una tensión de entre 7 y 12 V para evitar posibles comportamientos no deseados del lector. Pero esto no he tenido oportunidad de probarlo aún.

Saludos!
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 42
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bueno, escribo de nuevo porque al parecer, el problema sigue ahí. No sé como solucionarlo porque he probado con las distintas soluciones que dan los comentarios del enlace pero sigo igual. Si pruebo el ejemplo básico si me funciona, en el loop va leyendo, guardando y sacando por el serialmonitor la variable c repetidas veces hasta que deja de leer:
Code:
/* EJEMPLO BASICO RFID ID12
*/

char val = 0; // variable to store the data from the serial port

void setup() {
Serial.begin(9600); // connect to the serial port
}

void loop () {
// read the serial port

if(Serial.available() > 0) {
val = Serial.read();
Serial.print(val, BYTE);

}
}

Pero escribiéndolo de ésta otra manera y me aparecen varias ÿÿÿÿ entre partes del código de la targeta leída. Utilizo for porque necesito evitarme tener que usar repetidamente la función general loop para mi proyecto y así guardar el valor de la tarjeta en un array en una sola ejecución del código.

Code:
/* RFID ID12
*/

char val = 0; // variable to store the data from the serial port
char code[12];
void setup() {
Serial.begin(9600); // connect to the serial port
}

void loop () {
// read the serial port

if(Serial.available() > 0) {
for (int i = 0; i < 13; i++) {
        val = Serial.read();
        code[i]=val;   
       }
      for (int z = 0; z < 13; z++) {
        Serial.print(code[z], BYTE);
       }
}
}


Si alguien puede echarme un cable, se lo agradeceré con creces, porque no encuentro salida a este problema.
Saludos.
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 42
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buff... 130 visitas y ninguna ayudita  smiley-cry.

¿Alguien que haya trabajado con éste módulo y haya necesitado utilizar una red de estabilización de corriente? O simplemente que me dé una opinión de lo que pueda entender de los comentarios del enlace siguiente, en los que se supone que se exponen soluciones:

http://hcgilje.wordpress.com/resources/rfid_id12_tagreader/

Saludos.
Logged

Pages: [1]   Go Up
Jump to: