# Lector RFID, comunicación serial



## Elvic (Ago 16, 2008)

Resulta que estoy usando el pic16f73 para recibir datos por el puerto serial USART y mandarlos a un LCD; Esto ya funciona de primera estancia obtengo los datos y se muestran en el LCD.

El problema que tengo es que al alimentar el circuito; solo funciona la primer ves que se ejecuta el código, es decir no vuelve a repetir para seguir obteniendo datos aun cuando esta metido en un ciclo.
He tratado con el reset MCLR y nada no funciona, el hecho es que probé dejándolo unos 10 segundo sin alimentación y pasado esos 10 s vuelve a trabajar.

Esto podría deberse a ruido eléctrico?

o hay lago que estoy omitiendo en la programación del USART con solo una idea que me proporcione o si les ha pasado alguna ves  como lo solucionaron.

Ademas me gustaría saber si existe alguna instrucción para dar reset completamente en un PIC16fXX por medio de "software " es decir con el mismo código grabado, por supuesto, no me refiero a borrarlo        (si es posible que sea en lenguaje C )
o en definitiva creen que este programado mal el pic?

edit: cambio de titulo


gracias


----------



## Elvic (Ago 16, 2008)

Bueno aquí una explicación mas

Resulta que es un lector RFID pero al pasar la etiqueta 1 por ejemplo la primer ves la lee pero al querer pasar otra etiqueta 2 ya no la lee. lo que tengo que hacer es desconectar de la linea el sistema y hasta entonces lee la etiqueta 2.
porque si la captura la meto en un ciclo me sigue marcando la primer etiqueta que entro en lectura 
y eso no lo requiero lo que necesito es que si, siguen pasando etiquetas muestre el siguiente numero de esa etiqueta..

aquí esta como funciona vean que apago completamente el display junto con el lector RFID y eso es lo que no quiero. 

YouTube - Etiquetas transponder RFID

PD: el vídeo esta muy mal grabado ops: 

suerT


----------



## pepechip (Ago 16, 2008)

Parece que el problema lo tienes en el valor acumulado en alguna variable, ya que el reset NO BORRA EL VALOR DE LAS VARIABLES.

Intenta en el inicio de tu programa poner una rutina que todas las variables te las ponga a cero, veras como el reset te actua perfectamente.


----------



## Elvic (Ago 16, 2008)

hola gracias por la respuesta

voy ha intentar con eso que me propones...

yo creía que podría ser que en el display se almacenaban estos datos y con solo a pagarlo desaparecerían automáticamente, y volvien a ejecutar el programa tomarían el valor de las siguientes variables (el otro numero de etiqueta).

pero gracias voy a intentar lo que recomiendas, para ver que sucede..


suerT


----------



## Elvic (Ago 18, 2008)

hola 

pues otra ves aquí

no, no he podido solucionar el problema, borrando las variable o a menos que no las borre bien

bueno el caso es que como comentaba estoy experimentando con el USART del pic 16f73, y el código que compile y grabe al pic si funciono, pero solo la primer ves que se ejecuta.

Pero la segunda ves que se repite el ciclo ya no funciona en lo absoluto, el detalle es que el valor de rcreg lo grabo en un arreglo, esta es la parte en que tengo problema.
El arreglo es de 12 posiciones. 


este es el ejemplo de como aplico el arreglo


```
void main{
int x;
int arreglo[12];

ciclo{ // sale del ciclo hasta que se cumplan las condiciones.
arreglo[x]=rcreg;
x++;
}// termina el ciclo

muestro con un ciclo for
for(x=0;x<=12;x++)
{ portb=arreglo[x];
}
```

el compilador que uso es el boostC; se que en C++se puede usar la instrucción delete []; o free(arreglo) pero en este no se cual es ó como se usa, entonces como ¿podría? borra todo el arreglo[x] y que no tenga ningún valor ó que tome su valor inicial.

ya intente cargando el 0 a cada posición, pero no lo borra se le carga el valor 0   ops: ; bueno eso es lo que creo que esta pasando.

ayuda¡¡¡¡


----------



## fitocondria (Sep 25, 2008)

Voy a comenzar un proyecto de rfid y me gustaría saber donde compraste tu lector.

Estaba pensando utilizar el U2270B de atmel para hacer el lector, pero como veo que tu lector tiene salidas ttl, y esome interesó. 

Un comentario, el lector se parece a uno que vi que viene junto con un libro llamado RFID Toys, pero es USB, y no quiero hacerlo muy costoso el proyecto.

Y para ayudar sería bueno ver el programa completo de tu programa. 

Saludos.


----------



## fitocondria (Sep 25, 2008)

¿Es de fiar parallax para comprarles?

Me gustarón sus productos, me pica la conciencia por comprarles el lector con salida de datos de nivel TTL.

Por cierto la dirección del rfid toys es la siguiente: http://www.thinkgeek.com/geektoys/science/907a/?cpg=wnrss


----------



## Elvic (Sep 25, 2008)

fitocondria dijo:
			
		

> Voy a comenzar un proyecto de rfid y me gustaría saber donde compraste tu lector.
> 
> Estaba pensando utilizar el U2270B de atmel para hacer el lector, pero como veo que tu lector tiene salidas ttl, y esome interesó.
> 
> ...



hola pues para comprarlo lo puedes hacer directamente en la pagina de parallax ,

http://www.parallax.com/Store/Micro...efault.aspx?SortField=ProductName,ProductName

y pues con respecto al lector "ideal" sea usb o serial, solo depende del tipo proyecto que pretendes realizar y al presupuesto con el que cuentes.

ahora el código, lo podría poner pero que caso tendría, no estarías aprendiendo a  realizarlo;
Es mejor que conforme avances en el proyecto comentes tus dudas y/o obstáculos y tratar  de resolverlos en la medida que avances en el.

por aquí hay una frase que escribe algunos d elos miembros del foro y  que, dice  NO aplicar la ley del mínimo fuerzo..

suerT


----------



## fitocondria (Sep 26, 2008)

Yo menciono que para ayudarte en lo del arreglo mejor pusieras el código completo para tratar de encontrar una solución a tu problema.

Pero no te preocupes cada quien se hace su propio mal. Yo solo facilito lo que ya existe pero que de algún modo no se ha tenido acceso.


----------



## Elvic (Sep 27, 2008)

fitocondria dijo:
			
		

> Yo menciono que para ayudarte en lo del arreglo mejor pusieras el código completo para tratar de encontrar una solución a tu problema.
> 
> Pero no te preocupes cada quien se hace su propio mal. Yo solo facilito lo que ya existe pero que de algún modo no se ha tenido acceso.



Pues una disculpa ... por la mala interpretación a tu mensaje anterior...


Lo que pasa es que ya he resuelto el problema y el proyecto ya esta funcionando tal y como lo requería,  así que me deje  llevar por lo que había leído de que querias comenzar a trabajar con esto de la RFID.

ahora ya he leído algunos de tus mensajes y parece que tienes bastante experiencia con la programación de dispositivos , y es por eso que es la disculpa no pretendía limitar a que alguna ves me puedas ayudar a resolver algún problema que se me pudiera presentara.

suerT


----------



## fitocondria (Sep 27, 2008)

Estamos para aprender y apoyarnos y te agradezco el enlace a parallax.

Me gustaría saber tu experiencia con ese lector que compraste, experiencia como :

¿Que alcance tiene el lector?
¿Que tipo de tarjetas puede leer? especificamente los tipos de modelos que puede leer el aparatito. 
¿Reconoce sin problemas las tarjeta cuando las lee? ó ¿Hay que pasar las tarjetas despacio?

Te lo agradezco de antemano.

Por cierto recomiendo el libro de:

RFID Oportunidades y riesgos, su aplicación práctica.
L.I. Luis Miguel Godínez González.
Alfaomega.
ISBN: 978-970-15-1311-8

Saludos.

Sobre todo el Capítulo IX. Conclusiones y tendencias del mercado RFID.


----------



## Elvic (Sep 27, 2008)

hola de nuevo
pues te contesto de manera sencilla las dudas que tienes

_¿Que alcance tiene el lector?_ 

Pues es prácticamente lo que dice su hoja de datos y son aprox *10 centímetros *de distancia entre el lector y la etiqueta (tag)

_¿Que tipo de tarjetas puede leer?_

pues según la misma hoja, pude leer este tipo de etiquetas

http://www.emmicroelectronic.com/Products.asp?IdProduct=84

aunque yo solo use las 2 etiquetas que viene junto con le lector cuando lo compras..

_¿Reconoce sin problemas las tarjeta cuando las lee?_

bueno en esto si tuve problemas al tratar de leer las primeras veces, pero el problema era en el código que estaba realizando , no era que el lector no las reconociera; es decir, no hay problema con el lector Si las reconoce sin ningún problema.

_Hay que pasar las tarjetas despacio? _

no para nada, las lee al instante en que son puestas cerca del lector.

por cierto gracias por la recomendación del libro...


suerT


----------



## jose.crespor (Nov 7, 2008)

bueno me prodrian ayudar  con un programa para leer el  lector de rfid  de parallax ...
si es posible  en codigo avr codevision o  en bascom avr...
muchas gracias


----------



## Elvic (Feb 15, 2009)

saludos

solo para mostrarles como es quedo el proyecto que entube realizando...

unas fotografías


----------



## fornelius (Mar 31, 2009)

AYUDA RFID PARALLAX

Hola estoy usando un PIC 16F690, y la rutina RS 232,  para comunicar mediante serie de la RFID al PIC, y luego mandarlo al hiperterminal para visualizar la identificación.

Hago un sencillo programa en C, pero no logro que me saque la identificación:

Si puedo mandar frases, pero la ID del RFID no la pilla. I del hardware no creo que sea el problema.

Programa:


#include <16F690.h> 
#fuses INTRC, WDT, NOBROWNOUT, PUT, MCLR, NOPROTECT

#use delay(clock=4000000) //o 1MHz 
#use RS232(baud=2400, xmit=PIN_B7, rcv=PIN_B5, RESTART_WDT, BITS=8,PARITY=N) 

#use fast_io(c) 

char code,code2;

#INT_RDA

void RSI_RDA()
{
code=getc();
code2=code;
putc(code2);
}

void main()

{
	printf("El codigo es :");
	enable_interrupts(INT_RDA);

}


PD: Hice un programa con solo la RFID y un max 232,  mediante Visual Basic y MSCOMM, no tube ningun problema.

A ver si me podeis hechar una mano. Grácias a todos


----------



## Elvic (Jun 12, 2009)

saludos ya a pasado algo de tiempo  pero pues escribo esto  solo para aportar el codigo fuente del proyecto 

para utilizar el modulo *RFID de parallax  #28140*, en este caso con el pic 16f73 (aunque de puede utilizar con cualquier otro de la misma familia que contenga el usart para comunicación serial) 

De lo que se trata es de identificar la etiqueta correcta , lo primero que se hace es grabar es el código de una etiqueta (arbitraria) y, después compararla con otras etiquetas, hasta en contar la correcta, lo cual resulta en un proyecto de control de acceso, es decir solo la etiqueta autorizada y previamente grabada dejara pasar al portador de la etiqueta autorizada valga la redundancia.


----------



## fornelius (Jun 13, 2009)

Grácias por el cable Elvic ! ahora mismo me miro el programa fuente !


----------



## rdiazlop (May 10, 2011)

Buenas yo estoy tratando de leer el dato del IDtag pero solo logro leer el primer tag y al cambair por el segundo tag no logro la lectura.

estoy usando el compilador ccs y un pic 16f777


me podrían dar una luz de como lograrlo.  gracias


----------



## fsola (Jul 21, 2011)

Yo tengo un programa que hace algo parecido, lee un tag, almacena el dato y vuelve a ponerse en espera hasta que lee otro tag, almacena el dato, etc.

Esta en picbasic, no se si te podría ayudar.


----------



## Elvic (Ago 20, 2011)

saludos :


http://digitales-itesi.blogspot.com/2010/11/control-de-acceso-usando-la-rfid-parte.html

un link con el código suerte..


----------



## mandragora21 (Jun 16, 2012)

hola intento grabar el hex que edito Elvic pero al cargarlo me dice que falta la palabra configuracion del archivo y no veo nada en la pantalla 16x2 alguien tendria el archivo correcto para cargar en el pic.
o algo estoy haciendo mal.
podria orientarme alguien.
muchas gracias


----------



## Eduardo123P (Oct 8, 2012)

Hola, estoy trabajando con un modulo RFID (usb) y VB6, lo tengo instalado y mi maquina lo detecta como COM25 uso el hyperterminal para su configuracion y lo reconoce normal pero cuando quiero enlazarlo con visual basic no reconoce el puerto serial... no se si alguien tuvo este problema o me pueda ayudar.... gracias


----------

