Você está na página 1de 27

Desarrollo de sistema inmtico basado en plataforma Arduino

Subproyecto: 1. Diseo de sistema de control de accesos RFID 125 !" y#o 1$%5& '!" ('ifare) autnomo

Autores: *arlos +,llora Fern-nde" Antonio +ictoriano .e/arano R,s0ue" Antonio 'orcillo Ibae"

ndice de contenido
1.1 Introduccin....................................................................................................................................$ 2.1 2specificaciones..............................................................................................................................$ 2.1.1 3ar/etas RFID............................................................................................................$ 2.2.1 3ar/eta 2lectrnica....................................................................................................$ $.1 Desarrollo de la tar/eta electrnica..................................................................................................4 4. 5istoria del RFID.............................................................................................................................5 5.1 Funcionamiento del RFID...............................................................................................................5 &.1 Aplicaciones....................................................................................................................................& 6.1 Re7lamentacin...............................................................................................................................6 8.1 Descripcin del prototipo................................................................................................................6 9.1 :ro7ramacin.................................................................................................................................11 1;.1 <ista de 'aterial.........................................................................................................................25 11.1 :resupuesto..................................................................................................................................2&

1.- Introduccin.
2l ob/eti=o de este proyecto es desarrollar un sistema de control de accesos con tecnolo7,a RFID% 7obernado de forma autnoma% con el cual se pretende controlar los permisos de accesos a los usuarios. 3ar/eta 'aestra.1 2l la tar/eta RFID pro7ramada para poder dar de alta a las distintas tar/etas de los usuarios. 3ar/eta .orrar.1 2l la tar/eta RFID pro7ramada para poder dar de ba/a a las distintas tar/etas de los usuarios. 3ar/etas de usuarios.1 Ser-n las distintas tar/etas RFID 0ue pro7ramaremos para darlas de alta#ba/a% con las tar/etas anteriormente mencionadas.

2.- Especificaciones.
*on las si7uientes funciones: *ompatible con cual0uier abrepuertas el>ctrico de mercado. Salida a rel> 1; A. Alimentacin 24 +cc *apacidad para 2;; usuarios por puerta :osibilidad de administrar el sistema sin necesidad de :* o accesorio de confi7uracin#pro7ramacin Inte7racin est>tica. Instalable en cual0uier ca/a para mecanismos est-ndar de mercado Altas y .a/as de tar/etas se reali"an por medio de tar/etas maestras para administracin de permisos

2.1.- Tarjetas RFID.


Se confi7urar-n tres tipoes de tar/etas para este proyecto. 3ar/eta 'A2S3RA% encar7ada de dar de A<3A las tar/etas de usuarios% 3ar/eta .?RRAR encar7ada de dar de .A@A las tar/etas de usuarios y las 3ar/etas ASAARI?S% con las cuales podremos abrir la puerta si !an sido autori"adas% a tra=>s% de la tar/eta maestro.

2.2.- Tarjeta Electrnica.


<a tar/eta electrnica es la encar7ada de leer el cdi7o de las distintas tar/etas RFID y reali"ar el si7uiente proceso: Si pasamos la tar/eta de usuario autori"ada por el lector RFID acti=ar- el abrepuertas. Si pasamos la tar/eta 'aestra el sistema se prepara para 0ue pasaos una tar/eta =ir7en y% as,% darle permiso para abrir la puerta (A<3A). Si pasamos la tar/eta .orrar el sistema se prepara para 0ue pasemos una tar/eta% 0ue !a sido dada de alta% para borrarla del sistema (.A@A). Sus partes ser-n: 1.1 Alimentacin de 24 =oltios eBterna. 2.1 3ar/eta Arduino.

$.1 <ector RFID. 4.1 <ed RC.. 5.1 Resistencias% led% etc.

3.- Desarrollo de la tarjeta electrnica.


2n este apartado se muestra el monta/e del prototipo sobre una protoboard. 1.1 *ableado de D5= y CED:

2.1 *olocando el lector RFID y el <2D de lectura:

$.1 <ed RC.% transistor bc546 y rele:

4.1 *ableado final:

4. Historia del RFID.


<as si7las RFID proceden de Radio Fre0uency IDentification (Identificacin por Radio Frecuencia). 2Bisten fuentes 0ue indican 0ue la tecnolo7,a RFID eBiste desde el 192; en un proyecto desarrollado por el 'I3% otros dicen 0ue fueron los in7leses los 0ue lo in=entaron en 1945 durante el transcurso de la 2F Cuerra 'undial% esto se basaba en un tecnolo7,a llamada IFF y 0ue utili"aban para identificar los a=iones como ami7os o enemi7os. Aun0ue el desarrollo de la RFID tal cual se conoce en estos mismos empie"a en los aos 9; con el abaratamiento de muc!os de los componentes necesarios para 0ue funcione.

.- Funciona!iento del RFID.


2l funcionamiento de las RFID es muy simple. <os ta7s (o tar/etas) RFID% cuando reciben una pe0uea corriente mediante radio frecuencia son capaces de emitir una onda con su nGmero identificati=o y esta onda es captada por un lector RFID 0ue se encar7a de pasar la informacin a un formato di7ital.

2Bisten una 7ran =ariedad de encapsulados para los ta7s. 2n tar/eta% encapsulados para implantaciones 0uirGr7icas% fleBible para ponerlos sobre pe7atinas% en lla=eros y pulseras. Al ser un circuito muy pe0ueo se puede introducir en cual0uier formato.
Los tags pueden ser, activos, semiactivos o pasivos. La principal diferencia es que los activos y los semiactivos necesitan una fuente externa de alimentacin mientras que los pasivos no.

".- #plicaciones.
<os sistemas de control de acceso se usan muy frecuentemente en 7randes empresas en las 0ue !ay una 7ran cantidad de traba/adores% los cuales no deben tener acceso a todas las "onas del edificio% como puede ser% un administrati=o no deber,a entrar en un laboratorio ya 0ue se7uramente descono"ca las normas de se7uridad m,nimas para estar all,. Eo es necesario 0ue para !acer uso de un sistema de control de accesos con RFID la empresa deba ser 7rande. 3ambi>n es aplicable para empresas pe0ueas ya 0ue aparte de controlar accesos% este sistema puede ser=ir como sistema de fic!a/e para marcar las !oras traba/adas. ?tra 7ran =,a de aplicacin para el sistema RFID es la 7estin de pasa/eros% siendo cada =e" mayor el nGmero de transportes pGblicos (metros% autobusesH) 0ue utili"an este sistema% sustituy>ndolo por los anticuados billetes. *on este sistema se permite una mayor personali"acin del control de "onas de =ia/e o de la administracin del dinero.

*ontrol de acceso RFID I 'etro de <ondres

Actualmente la tecnolo7,a RFID est- muy eBtendida en el campo industrial% para el se7uimiento de pa0uetes% pal>s y barricas. Se utili"a tambi>n en el mundo de la 7anader,a para identificar animales. 'uc!as autopistas tienen implementado un sistema RFID por el cual se pa7a con una tar/eta de cr>dito al pasar por el pea/e% !aciendo m-s fluido el tr-fico por estos. Actualmente se est- introduciendo en el sector teBtil.

$.- Re%la!entacin.
2Bisten =arias le7islaciones =i7entes para el uso de la tecnolo7,a RFID% con el fin de !acer un uso co!esionado a ni=el 7lobal. 2n la norma IS? todas las tecnolo7,as RFID !an sido en7lobadas ba/o el para7uas !""". 2n nuestro caso ba/o la IS? I 18;;; I 2 0ue es la 0ue en7loba las RFID de menos de 1$5 5". A parte eBisten otras normas IS? 0ue re7ulan las distancias de lectura. ?tros or7anismos 0ue re7ulan el mane/o de la RFID son: 1 23SI 1 2:* 1 R?5S ISO-

&.- Descripcin del prototipo.


A continuacin se documenta los componentes utili"ados en el desarrollo del prototipo. 2l monta/e de dic!o prototipo sobre la protoboard est- eBplicado m-s adelante.

Diodo LED

Qu hace?
Se enciende cuando una corriente pasa a travs de l.

Nmero de patillas:
2, nodo (larga) y ctodo (corta).

Cmo identificarlo?
Como una pequea bombilla.

A tener en cuenta:
Solo funciona en una direcci n !s necesaria una resistencia para limitar la corriente que lo atraviesa.

Resistencia

Qu hace?
"educe la corriente que puede pasar por un circuito.

Nmero de patillas:
2.

Cmo identificarlo?
#orma cil$ndrica. !l valor de la resistencia viene dado por un c digo de colores

A tener en cuenta:
Comprobar bien los colores para no coger una resistencia con un valor equivocado.

otn

Qu hace?
Cuando lo pulsamos %ace que el circuito quede cerrado.

Nmero de patillas:
&.

Cmo identificarlo?
#orma cuadrada con un circulo negro en el centro.

A tener en cuenta:
"evisar con un tester que patillas son las que se quedan 'C y '(.

Condensador Qu hace?

!s capa) de almacenar energ$a en su interior.

Nmero de patillas:

2. *arga (+) y corta (,).

Cmo identificarlo?
#orma cil$ndrica, con dos patillas en la base.

A tener en cuenta:
-uy importante cerciorarse de que se %a conectado con la polaridad correcta.

Cristal

Qu hace?
Convierte las vibraciones mecnicas en volta.es elctricos a una frecuencia fi.a.

Nmero de patillas:
2.

Cmo identificarlo?
#orma ovalada, puede ser de perfil alto o ba.o, se reconoce por su recubierta de c%apa.

A tener en cuenta:
/ebemos colocarlo lo ms cerca posible de las patillas a las que va conectado.

!ransistor

Qu hace?
0ermite o impide el paso de la corriente.

Nmero de patillas:
3.

Cmo identificarlo?

0uede tener varios encapsulados, en este caso 1(22, una pequea pie)a de plstico, con tres patillas, lleva el nombre serigrafiado.

A tener en cuenta:
Siempre comprobar el datas%eet para conocer la posici n de las patillas.

Lector R"#D

Qu hace?
*eer un 4tag5 "#6/ y comunicarlo al microcontrolador.

Nmero de patillas:
77.

Cmo identificarlo?
/e forma cuadrada, lleva serigrafiado el nombre en la parte superior.

A tener en cuenta:
Comprobar el datas%eet para conocer la posici n de las patillas. !s un lector de 728 9:) por lo que %ay que usar el mismo tipo de 4tag5

RELE

Qu hace?

Cuando se induce corriente en la bobina esta mueve un resorte y seg;n sus patillas enciende o apaga un interruptor.

Nmero de patillas:
8 a <.

A tener en cuenta:
!l volta.e y ampera.e soportados.

Cmo identificarlo?
/e forma rectangular, suelen ser transparentes por lo que podemos ver la bobina.

A!$E%A&'( )

Qu hace?
=n integrado con varios puertos anal gicos y digitales, capa) de comunicarse v$a serie.

Nmero de patillas:
2<.

Cmo identificarlo?
#orma rectangular y alargada. 1iene serigrafiado el nombre en la parte superior.

A tener en cuenta:
*leva una pequea muesca que indica cual que a su i)quierda se encuentra el pin 7.

I#- $ 2l ID112 es un lector RFID desarrollado por ID IEE?+A3I?ES% este lector tiene una antena interior 0ue puede lle7ar a los 12 cms de lectura. 2ste lector soporta los tipos de dato AS*II% Jie7and2& y 'a7netic A.A 3racK2. A continuacin se muestra el patilla/e y el coneBionado con el inte7rado A3'2CA$28: y con el mismo implementado en la plataforma ARDAIE?. ID112 1 2 $ A3'2CA$28: CED D5+ 1 ARDAIE? CED D5+ 1

4 5 & 6 8 9 1; 11

1 1 1 CED 1 :D;(RL) 1 D5=

1 1 1 CED 1 ; RL 1 D5+

+ista inferior del lector ID112 Al poner la patilla 6 (D#1 (Format Selector)) a masa !acemos 0ue la salida de datos sea en forma de AS*II. <a patilla 1; la conectamos a una resistencia de 22; o!ms y est- a un <2D el cual nos indicar- cuando se !a le,do una tar/eta. +amos a eBplicar lo 0ue recibiremos por parte del lector al seleccionar AS*II. 2l lector en=,a una onda 0ue imbuye al ta7% con esa onda el ta7 es capa" de emitir un cdi7o 0ue es le,do por el ID12 y este lo manda al Arduino con el si7uiente formato:

S3L(;25)

DA3A(1; AS*II)

*25* SA'(2 AS*II)

*R

<F

23L(;$5)

<o primero 0ue recibimos en la transmisin es el S3L o el car-cter de inicio de transmisin (AS*II ;2)% se7uido de 1; bytes 0ue crean los 52L indi=iduales del nGmero. <os si7uientes dos 52L son el c!ecKsum del nGmero. <ue7o tenemos el *R o *arria7e Return y el <F o <ine Feed y por Gltimo el 23L o car-cter de final de transmisin. <o 0ue nosotros =amos a mostrar siempre por pantalla =an a ser los 12 d,7itos AS*II. A%&'(A)$!* 2l A3'2CA$28: es un microcontrolador desarrollado por A3'2<. 2s un inte7rado de 28 patillas. 3iene una memoria F<AS5 de $2 .ytes% una 22:R?' de 1 .yte y una RA' de 2K .ytes.

A continuacin se muestra el patilla/e del inte7rado y la correspondiente funcin en la plataforma ARDAIE?.

'.- (ro%ra!acin.
2l si7uiente cdi7o nos sir=e para !acer una demostracin de las puertas a las 0ue tiene acceso un ta7. Al pasar por el lector% este reco7e el cdi7o del ta7 y lo manda al ordenador% este de=uel=e las puertas 0ue puede abrir% encendiendo el led de la puerta correspondiente.

Minclude N22:R?'.!O Mdefine poPer:in 22 ## <ed A"ul Mdefine fail:in 2& ## <ed Ro/o Mdefine pass:in 24 ## <ed +erde Mdefine door:in $; ## Rele Mdefine alarm:in 28 ## Alarma boolean pro7ram'ode Q falseR boolean delete'ode Q falseR boolean Pipe'ode Q falseR ##Pipe limpiar memoria boolean matc! Q falseR ## 3ar/eta 2ncontrada byte stored*ardS&TR ## Cuarda un ID leido desde la 22:R?' byte read*ardS&TR ## Caurda un ID leido desde el lector ID112 byte c!ecKsum Q ;R ## Cuarda el c!ecKsum para comprobar 0ue esta bien

int alarmR int reed Q ;R =oid setup() U pin'ode(poPer:in% ?A3:A3)R pin'ode(pass:in% ?A3:A3)R pin'ode(fail:in% ?A3:A3)R pin'ode(door:in% ?A3:A3)R pin'ode(alarm:in% ?A3:A3)R alarm Q ;R Serial.be7in(9&;;)R V =oid loop() U byte =al Q ;R normal'ode?n()R ## Acti=o 'odo Eormal (<ed 2ncendido ?E% resto ?FF) if (alarmQQ$) U di7italJrite(alarm:in% 5IC5)R ## Suena el "umbador if (Serial.a=ailable()) U if ((=al Q Serial.read()) QQ 2) ## 2l primer byte debe se 2% 0ue es el S3L U 7etID()R ## Funcion co7er ID leido y lo coloco en read*ard if (is'aster(read*ard)) ## *omprobamos si es la tar/eta maestro o la de borrar U di7italJrite(alarm:in% <?J)R alarm Q ;R c!ecKsum Q ;R V else U c!ecKsum Q ;R V V c!ecKsum Q ;R V else U if (pro7ram'ode) ## 'odo pro7rama para aadir una nue=a tar/eta U

pro7ram'ode?n()R ## Durante este modo los leds !ace un ciclo if (Serial.a=ailable()) U if (=alQSerial.read()QQ2) U 7etID()R if (is'aster(read*ard) WW isDelete(read*ard) WW isJipe(read*ard)) U pro7ram'ode Q falseR if (is'aster(read*ard)) U openDoor(2)R V else U failedJrite()R V c!ecKsum Q ;R V else U PriteID(read*ard)R ## Si no maestra o borrar% se 7uarda en la 22:R?' pro7ram'ode Q falseR c!ecKsum Q ;R V V V V else if (delete'ode) ## 'odo .orrar% para desacti=ar al7una tar/eta U delete'ode?n()R ## *iclo de leds =erde y ro/o if (Serial.a=ailable()) U if (=alQSerial.read()QQ2) U 7etID()R if (is'aster(read*ard) WW isDelete(read*ard) WW isJipe(read*ard)) U delete'ode Q falseR c!ecKsum Q ;R failedJrite()R V else U

deleteID(read*ard)R ## .orramos la tar/eta de la 22:R?' delete'ode Q falseR c!ecKsum Q ;R V V V V else if (Pipe'ode) ## 'odo limpiar la memoria 22:R?' U Serial.end()R Pipe'ode?n()R for (int iQ;R i N 512R iDD) U 22:R?'.Prite(i%;)R V Pipe'ode Q falseR Pipe'ode?n()R V ## ?peraciones normales else U if (Serial.a=ailable()) U if (=alQSerial.read()QQ2) U 7etID()R byte byesread Q ;R for (int i Q ;R i N 5R iDD) U if (read*ardSiT N 1&) ## imprimir un ; si la tar/eta leida es menor 0ue 1& U Serial.print(;)R V Serial.print(read*ardSiT%52L)R ## Imprime el =alor 52L leido Serial.print(X X)R V Serial.println()R Serial.print(X*!ecKsum: X)R Serial.print(read*ardS5T% 52L)R ## *!ecKsum lido de la tar/eta if (read*ardS5T QQ c!ecKsum) ## *omprobar si el 5 byte leido es el mismo al calculado U c!ecKsum Q ;R if (is'aster(read*ard)) ## 2s la tar/ata maestro

U pro7ram'ode Q trueR alarm Q ;R V else if (isDelete(read*ard)) ## 2s la tar/eta borrar U delete'ode Q trueR alarm Q ;R V else if (isJipe(read*ard)) U Pipe'ode Q trueR alarm Q ;R V else U if (findID(read*ard)) ## si la tar/eta esta en la 22:R?' U openDoor(2)R alarm Q ;R V else U failed()R ## 3ar/eta no autori"ada alarmDDR V V V else ## si el c!eKsum fall U Serial.println(X2RR?R en el c!ecKsumX)R V V V V V V V ## Funcion: SI 2< S2RIA< 2S3A A*3I+AD? Y R2*I.I'?S 2< S3L <<A'A'?S A 2S3A FAE*I?E ZA2 <22 ## <?S 4 .Y32S D2< ID D 1 .Y32 D2< *52* SA'% 7uardandolo en

read*ardS&T =oid 7etID() U byte bytesread Q ;R byte i Q ;R byte =al Q ;R byte tempbyte Q ;R ## 5 52L .yte son 1; AS*II bytes P!ile (bytesread N 12) ## lee 1; di7itos D 2 del c!ecKsum U if (Serial.a=ailable()) ## *omprueba la lle7ada de datos por el puerto serial U =al Q Serial.read()R if ((=alQQ;B;D) WW (=alQQ;B;A) WW (=alQQ;B;$) WW (=alQQ;B;2)) U ## Si se detecta el S3L o 23L se para breaKR V if ((=al OQ [;[) \\ (=al NQ [9[)) ## 5acemos la con=ersion AS*II#52L U =al Q =al 1 [;[R V else if ((=al OQ [A[) \\ (=al NQ [F[)) U =al Q 1; D =al 1 [A[R V if (bytesread \ 1 QQ 1) ## *ada dos caracteres en AS**I Q 1 .Y32 en 52L U ## 5acemos sitio para los di7itos 52L% mo=iendo el di7ito anterior 4 =eces a la i"0uierda read*ardSbytesread OO 1T Q (=al W (tempbyte NN 4))R if (bytesread OO 1 ]Q 5) ## si estamos en el byte del c!ecKsum U c!ecKsum ^Q read*ardSbytesread OO 1TR ## calculamos el c!ecKsum !aciendo la L?R. V V else ## Si es el primer caracter 52L U tempbyte Q =alR V bytesreadDDR ## incrementamos el contador para se7uir buscando V V

bytesread Q ;R V ## Funcion: <22R AE ID D2SD2 <A 22:R?' Y CAARDAR<A 2E stored*ardS&T =oid readID(int number) ## number Q posicion en la 22:R?' para co7er los 5 bytes U int start Q (number _ 5) 1 4R for (int iQ;R iN5R iDD) U stored*ardSiT Q 22:R?'.read(startDi)R ##Asi7namos =alores leidos desde la 22:R?' a un array V V ## Funcion: 2S*RI.IR AE ARRAY 2E <A 22:R?' 2E 2< SICAI2E32 S?<3 DIS:?EI.<2 =oid PriteID(byte aST) U if (]findID(a)) ## Antes de escribir en la 22:R?' miramos a =eri si ya esta 7uardada la tar/eta U int num Q 22:R?'.read(;)R ## <a posicion ; 7uarda el numero de tar/etas almacenadas int start Q (num_5) D 1R ## Deducimos donde empie"a el si7uiente slot 22:R?'.Prite(;% num)R ## Actuali"amos el contador de tar/etas for (int /Q;R / N 5R /DD) U 22:R?'.Prite(start D /% aS/T)R ##2scribimos los =alores del array en la 22:R?' en su posicion correcta V successJrite()R V else U failedJrite()R V V ## Funcion: .?RRAR AE ARRAY almacenado 2E <A 22:R?' del S?<3 D2SICEAD? =oid deleteID(byte aST) U

if (]findID(a)) ## Antes de borrar% miramos a =er si tenemos esta tar/eta almacenada U failedJrite()R ## Si no esta V else U int num Q 22:R?'.read(;)R ## *ar7amos en num el numero de tar/etas almacenadas en la 22:R?' int slotR int startR int loopin7R ## Eumero de =eces a reali"ar el buble int /R int count Q 22:R?'.read(;)R slot Q findIDS<?3(a)R ## Declaramos el numero de slots a borrar start Q (slot_5) 1 4R loopin7 Q ((num 1 slot)_5)R num11R 22:R?'.Prite(;%num)R ## Actuali"amos el contador for (/Q;R /Nloopin7R /DD) U 22:R?'.Prite(startD/% 22:R?'.read(startD5D/))R V for (int KQ;R K N 5R KDD) U 22:R?'.Prite(startD/DK%;)R V successDelete()R V V ## Funcion: 2E*?E3RAR 2< EA'2R? D2< S<?3 D2 <A ID A .?RRAR int findIDS<?3(byte findST) U int count Q 22:R?'.read(;)R ## <eemos el numero de tar/etas 7uardadas for (int iQ1R i NQ countR iDD) U readID(i)R ## <eemos una ID de la 22:R?' 0ue almacenamos en stored*ardS&T if (c!ecK3Po(find% stored*ard)) U return iR ## De=uel=e el numero del slot breaKR

V V V ## Funcion: *?':R?.AR ZA2 D?S ARRAY S?E ICAA<2S boolean c!ecK3Po(byte aST% byte bST) U if (aS;T ]Q EA<<) ## Ase7uramos de 0ue !ay al7o en el primer array U matc! Q trueR ## Asumimos 0ue coinciden desde el principio V for (int KQ;R KN5R KDD) U if (aSKT ]Q bSKT) U matc! Q falseR V V if (matc!) ## *omprobamos si si7uen coincidiendo U return trueR V else U return falseR V V ## Funcion: 'IRAR 2E <A 22:R?' :ARA *?':R?.AR SI A<CAEA D2 <AS ID A<'A*2EADAS *?IE*ID2 *?E <A ## A<3I'A ZA2 52'?S :ASAD? boolean findID(byte findST) U int count Q 22:R?'.read(;)R for (int i Q 1R i NQcountR iDD) U readID(i)R ## <eer una ID desde la 22:R?' y almacenarla en stored*ardS&T if (c!ecK3Po(find% stored*ard)) U return trueR V V

return falseR V ## Funcion: A.RI'?S <A :A2R3A Y 2E*2ED2'?S 2< <2D +2RD2 AE '?'2E3? =oid openDoor(int setDelay) U setDelay _Q 1;;;R ## :onemos el delay en se7undos di7italJrite(poPer:in% <?J)R di7italJrite(fail:in% <?J)R di7italJrite(pass:in% 5IC5)R di7italJrite(door:in% <?J)R delay(setDelay)R do U di7italJrite(door:in% 5IC5)R reed Q analo7Read(A1)R di7italJrite(fail:in% 5IC5)R delay(5;;)R di7italJrite(fail:in% <?J)R delay(5;;)R V P!ile (reed O &;)R delay(1;;;)R di7italJrite(door:in% <?J)R delay(setDelay)R di7italJrite(pass:in% <?J)R V ## Funcion: F<AS2AR 2< <2D R?@? SI FA<<A A< :ASAR <A 3AR@23A =oid failed() U di7italJrite(pass:in% <?J)R di7italJrite(poPer:in% <?J)R di7italJrite(fail:in% 5IC5)R delay(12;;)R V ## Funcion: *?':R?.AR SI <A 3AR@23A ZA2 52'?S :ASAD? 2S <A 'A2S3RA boolean is'aster(byte testST)

U byte bytesread Q ;R byte i Q ;R byte =alS1;T Q U [4[%[*[%[;[%[;[%[2[%[;[%[2[%[$[%[2[%[8[ VR ## Eumero de la tar/eta 'A2S3RA byte masterS&TR byte c!ecKsum Q ;R byte tempbyte Q ;R bytesread Q ;R for (i Q ;R i N 1;R iDD) ## <o primero es con=ertir el array en un array de 5 52L U if ((=alSiT OQ [;[) \\ (=alSiT NQ [9[)) ## *on=ertimos un caracter en 52L. U =alSiT Q =alSiT 1 [;[R V else if ((=alSiT OQ [A[) \\ (=alSiT NQ[F[)) U =alSiT Q 1; D =alSiT 1 [A[R V if (bytesread \ 1 QQ 1) ## *ada dos di7itos 52L% aadimos uno al codi7o U masterSbytesread OO 1T Q (=alSiT W (tempbyte NN 4))R if (bytesread OO 1 ]Q 5) U c!ecKsum ^Q masterSbytesread OO 1TR ## *alculamos el c!ecKsum V V else U tempbyte Q =alSiTR V bytesreadDDR V if (c!ecK3Po(test% master)) ## *omprobamos si coincide lo leido con el master U return trueR V else U return falseR V V

## Funcion: *?':R?.AR SI <A 3AR@23A ZA2 52'?S :ASAD? 2S <A .?RRAR boolean isDelete(byte testST) U byte bytesread Q ;R byte i Q ;R byte =alS1;T Q U [4[%[*[%[;[%[;[%[2[%[1[%[;[%[.[%[F[%[.[ VR ## Eumero de la tar/eta .?RRAR byte masterS&TR byte c!ecKsum Q ;R byte tempbyte Q ;R bytesread Q ;R for (i Q ;R i N 1;R iDD) ## <o primero es con=ertir el array en un array de 5 52L U if ((=alSiT OQ [;[) \\ (=alSiT NQ [9[)) ## *on=ertimos un caracter en 52L. U =alSiT Q =alSiT 1 [;[R V else if ((=alSiT OQ [A[) \\ (=alSiT NQ[F[)) U =alSiT Q 1; D =alSiT 1 [A[R V if (bytesread \ 1 QQ 1) ## *ada dos di7itos 52L% aadimos uno al codi7o U masterSbytesread OO 1T Q (=alSiT W (tempbyte NN 4))R if (bytesread OO 1 ]Q 5) U c!ecKsum ^Q masterSbytesread OO 1TR ## *alculamos el c!ecKsum V V else U tempbyte Q =alSiTR V bytesreadDDR V if (c!ecK3Po(test% master)) ## *omprobamos si coincide lo leido con el master U return trueR V else U return falseR

V V ## Funcion: boolean isJipe(byte testST) U V ## Funcion: <2DS '?D? E?R'A< =oid normal'ode?n() U di7italJrite(poPer:in% 5IC5)R di7italJrite(pass:in% <?J)R di7italJrite(fail:in% <?J)R di7italJrite(door:in% <?J)R V ## Funcion: <2DS '?D? :R?CRA'A =oid pro7ram'ode?n() U di7italJrite(poPer:in% <?J)R di7italJrite(pass:in% 5IC5)R di7italJrite(fail:in% <?J)R delay(2;;)R di7italJrite(poPer:in% 5IC5)R di7italJrite(pass:in% <?J)R di7italJrite(fail:in% <?J)R delay(2;;)R V ## Funcion: <2DS '?D? .?RRAD? =oid delete'ode?n() U di7italJrite(poPer:in% <?J)R di7italJrite(pass:in% <?J)R di7italJrite(fail:in% 5IC5)R delay(2;;)R di7italJrite(poPer:in% 5IC5)R di7italJrite(pass:in% <?J)R di7italJrite(fail:in% <?J)R delay(2;;)R V

## Funcion: <2DS '?D? JI:2 =oid Pipe'ode?n() U V

## Funcion: F<AS5 D2 $ +2*2S D2< <2D +2RD2 IEDI*A ZA2 5A SID? .I2E A<'A*2EAD? 2E <A 22:R?' =oid successJrite() U di7italJrite(poPer:in% <?J)R di7italJrite(pass:in% <?J)R di7italJrite(fail:in% <?J)R delay(2;;)R di7italJrite(pass:in% 5IC5)R delay(2;;)R di7italJrite(pass:in% <?J)R delay(2;;)R di7italJrite(pass:in% 5IC5)R delay(2;;)R di7italJrite(pass:in% <?J)R delay(2;;)R di7italJrite(pass:in% 5IC5)R delay(2;;)R V ## Funcion: F<AS5 D2 $ +2*2S D2< <2D R?@? IEDI*A ZA2 5A SID? 'A< A<'A*2EAD? 2E <A 22:R?' =oid failedJrite() U di7italJrite(poPer:in% <?J)R di7italJrite(pass:in% <?J)R di7italJrite(fail:in% <?J)R delay(2;;)R di7italJrite(fail:in% 5IC5)R delay(2;;)R di7italJrite(fail:in% <?J)R delay(2;;)R di7italJrite(fail:in% 5IC5)R delay(2;;)R di7italJrite(fail:in% <?J)R

delay(2;;)R di7italJrite(fail:in% 5IC5)R delay(2;;)R V ## Funcion: F<AS5 D2 $ +2*2S D2< <2D A`A< IEDI*A ZA2 5A SID? .?RRAD? D2 <A 22:R?' =oid successDelete() U di7italJrite(poPer:in% <?J)R di7italJrite(pass:in% <?J)R di7italJrite(fail:in% <?J)R delay(2;;)R di7italJrite(poPer:in% 5IC5)R delay(2;;)R di7italJrite(poPer:in% <?J)R delay(2;;)R di7italJrite(poPer:in% 5IC5)R delay(2;;)R di7italJrite(poPer:in% <?J)R delay(2;;)R di7italJrite(poPer:in% 5IC5)R delay(2;;)R V

1).- *ista de +aterial.


<a si7uiente tabla muestra todos los componentes utili"ados para la reali"acin del prototipo y el posterior diseo final. +O&*O,',%' Resistencia Resistencia Resistencia *ondensador *ondensador `calo Diodo <ed <ed 3ransistor E:E Rele -ALO. 22; a 1 a 4%6 a 22 pF 1; bF 28 patillas 1E4;;6 Ro/o RC. .*546 8 A # 22; + +A,%I#A# 4 1 1 2 2 1 1 1 1 1 1

:ulsador <ector RFID Atme7a $28: *ristal :ines Re7leta Re7leta :laca ba0uelita

1&.;;; & 2 entradas $ entradas 3otal componentes

1 1 1 1 1 2 1 1 25

11.- (resupuesto.
A continuacin se muestra una relacin de precios por separado de cada componente% la suma por 7rupo y por ultimo el total del costo de materiales.

.esistencias:
, , 4 uds% 22; ?!ms% c J% D#1 5d tolerancia: ;%19 e 1 uds% 1 ?!ms% c J% D#1 5d tolerancia: ;%19 e

Su/total: #iodos L'#:


, , 1 uds% <ed ro/o% 5mm: ;%2& e 1 uds% <ed RC.% 5mm% catodo comGn: 1%46 e

),! 0

Su/total: Su/total: #iodos:


, 1 uds% Diodo rectificador 1E4;;6: ;%11 e

,1) 0 ),! 0

Su/total: +ondensadores:
, , 2 uds% condensador cer-mico 22 pF% 2;;+: ;%19 e 2 uds% condensador electrol,tico 1; bF% 25+: ;%$4 e

",

Su/total: 3calos:
, 1 uds% doble contacto% 28 pines% paso 2%54: ;%48e

,"2 0

Su/total: %ransistores:
, 1 uds% .*546% encapsulado 3o92: ;%1; e

",4! 0

Su/total: .ele:
, 1 uds% 2 contactos 8 A% paso 5 mm% marca FIED2R: 5%;6 e

", " 0

Su/total:

5,"1 0

*ulsadores:
, 1 uds% ?mron .$F: ;%2& e

Su/total: .egletas:
, , 2 uds% re7leta 2 pines% paso 5 mm: ;%8$ e 1 uds% re7leta $ pines% paso 5 mm: 1%25 e

",$2 0

Su/total: 7aquelita:
, 1 uds% placa ba0uelita 1 cara =ir7en% 1;;B24;mm: 4%&2 e

$,6 0

Su/total: Lector .8I#:


, 1 uds% lector rfid(125 5"): 22%56 e

4,2$ 0

Su/total: Atmega )$!:


, 1 uds% atme7a$28:% 28 pines: $%24 e

$$,51 0

Su/total: +ristal:
, 1 uds% 1&.;;; '5"% perfil ba/o#alto: ;%94 e

2,$4 0

Su/total: *ines:
, & uds% tira poste% paso 2%54: ;%;6 e

",64 0

Su/total: %O%AL:

","1 0 5",12 0

Você também pode gostar