RFID brava?
Moderators: pedja089, stojke369, [eDo], trax
slusaj ..jel moguce da si ja uzmem jos jednu nogu (izlaz ) sa pica?
prvi dio ,znaci kad prinesemo karticu ono otvori
drzi otvoreno 5s (ili koliko vec ostaje isto...)
i onda stavis da na taj drugi pin da neki napon i onda ga okrecemo u L272M???
p.s. jel mi mozes na mail poslat source code ,gdje si pisao pa da vidim jer onaj hex mi neznaci puno
prvi dio ,znaci kad prinesemo karticu ono otvori
drzi otvoreno 5s (ili koliko vec ostaje isto...)
i onda stavis da na taj drugi pin da neki napon i onda ga okrecemo u L272M???
p.s. jel mi mozes na mail poslat source code ,gdje si pisao pa da vidim jer onaj hex mi neznaci puno
idemo ljeto
E pa eto, ne moras nista prepravljati uzmes ovu RFID bravu sa mog sajta i napravis. Podesis je u "PULSE MODE" sa onim jumperima i nastimas maximalno vrijeme da ti se vrata otvore. Znaci to vrijeme ce relej biti aktiviran i on ce da pokrene motor. Sad sa druge strane (u garazi) imas prekidac koji pokrece motor u drugom smjeru i zatvara vrata.
Code: Select all
'------------------------------------------
' Za uredjaj: RfID Brava v2.0
'------------------------------------------
' PIC: PIC16F84A, I2C EEPROM: 24lc16 (2kb)
' Implementiran kapacitet kartica: 169
' Moguci i2c eepromi: Oni sa 1-bajtnom adr.
' Datum: 18/04/2004
' Autor: Muris Pucic Trax
' traxNAelektronika.ba | www.elektronika.ba
'------------------------------------------
'***** Pinovi *****
RFID_DATA var PORTB.0 ' 9600baud, Serijski podatak sa ID-12 rfid citaca
RELEJ var PORTB.1 ' Relej za vrata
BTN_CANC var PORTB.2 ' skip dugme
'?????? var PORTB.3 ' NE KORISTI SE
SW_1SEC var PORTB.4 ' +1 sec na tajmer
SW_2SEC var PORTB.5 ' +2 sec na tajmer
SW_3SEC var PORTB.6 ' +3 sec na tajmer
SW_5SEC var PORTB.7 ' +5 sec na tajmer
I2C_CLK var PORTA.0 ' i2c clock pin
I2C_DATA var PORTA.1 ' i2c data pin
LED_DISA var PORTA.2 ' disarmed led
LED_ARME var PORTA.3 ' armed led
SW_MODE var PORTA.4 ' Vrsta rada sistema (pulse, toggle)
'***** Varijable ******
CARD_CNT var byte ' Broj naucenih kartica
I2C_ADR var byte ' Adresa memorije u i2c memoriji
RXDAT var byte[12] ' Niz primljenog podatka
TMP1 var byte ' Za loop
TMP2 var byte ' Za loop
KEYSOK var byte ' Broj poklopljenih bajta, za validnu karticu treba da bude BYTESOK=12
TMP3 var byte ' Za verifikaciju kartice modul
'***** Konstante *****
CARD_MAX con 169 ' Max broj kartica za trenutni i2c eeprom
'***** Podesenja PIC-a ******
OPTION_REG = $7f ' Enable PORTB pullups
TRISB = %11111101 '
TRISA = %00010011 '
'***** Startup sistema i ucenje kartica ako je potrebno ******
Startup: ' Ako je pritisnuto cancel dugme, upisi 0xff na lokaciju 0x00 u i2c eeprom
if BTN_CANC == 0 then ' Ako je pritisnuto {
i2cwrite I2C_DATA,I2C_CLK,$A0,$00,[$FF] ' Upisi 0xff
pause 12 ' i2c write wait...
Startu1: if BTN_CANC == 0 then Startu1 ' Cekaj da ga pusti
endif ' }
' Procitaj broj naucenih kartica
i2cread I2C_DATA,I2C_CLK,$A0,$00,[CARD_CNT] ' CARD_CNT=i2c_read
if CARD_CNT == $FF then ' Ako je CARD_CNT = 0xFF {
high LED_ARME '
high LED_DISA '
I2C_ADR=$01 ' prvi bajt podatka za kartice
for TMP1=1 to CARD_MAX '
Startu2: if BTN_CANC == 0 then ' Cancel read? {
Startu3: if BTN_CANC == 0 then Startu3 ' Dugme jos uvjek pritisnuto?
low LED_ARME '
low LED_DISA '
goto Startup ' Pustio ga je, ajde od pocetka
endif ' }
TRISB.0=1
serin2 RFID_DATA,84,3000,Startu2,[WAIT($02),STR RXDAT\12] ' Preskoci kad nadjes 02 i uzmi 12 bajta. Ako ne dodje za 3 sec idi gore na Startu2 i vidi jel pritisnuto CANCEL dugme :)
TRISB.0=1
i2cwrite I2C_DATA,I2C_CLK,$A0,$00,[TMP1] ' Upisi dvo-bajtni broj dostupnih kartica
pause 12 ' i2c write wait...
for TMP2=1 to 12 ' upisi svih 12 primljenih bajta
i2cwrite I2C_DATA,I2C_CLK,$A0,I2C_ADR,[RXDAT[TMP2-1]]
I2C_ADR=I2C_ADR+1 ' i2c_adr++
pause 12 ' i2c write wait...
next TMP2 ' next byte...
high RELEJ ' Reci da je isprogramiro ovu karticu...
pause 300 ' ..||..
low RELEJ ' ..||..
pause 300 ' ..||..
high RELEJ ' ..||..
pause 300 ' ..||..
low RELEJ ' ..||..
next TMP1 ' Slijedeca kartica...
high RELEJ ' Reci da je isprogramiro SVIH CARD_MAX kartica !!!
pause 800 ' ..||..
low RELEJ ' ..||..
endif ' }
'***** Izbor vrste rada sistema *****
if SW_MODE == 0 then mToggle ' Ima prekidac = toggle mode
goto mPulse ' Nema prekidac = pulse mode
mPulse:
high LED_ARME '
low LED_DISA '
'TRISB.0=1
serin2 RFID_DATA,84,[WAIT($02),STR RXDAT\12] ' Preskoci kad nadjes 02 i uzmi 12 bajta.
'TRISB.0=1
gosub mVerify ' idi da verifikujes karticu
if KEYSOK == 12 then '
high RELEJ ' ukljuci relej
high LED_DISA '
low LED_ARME
pause 800 ' cekaj 800ms
low RELEJ ' gasi relej
else
low LED_DISA
low LED_ARME
pause 800
endif
goto mPulse ' opet...
mToggle: 'Nije implementirano...
goto mPulse
mVerify:
I2C_ADR=$01 ' Prva kartica pocinje ovdje
for TMP1=1 to CARD_CNT ' Za svaku karticu
KEYSOK=0 ' Nije nadjen niti jedan bajt
for TMP2=1 to 12 ' Za svaki primljeni bajt od ID-12
i2cread I2C_DATA,I2C_CLK,$A0,I2C_ADR,[TMP3] ' read i2c byte
if TMP3 == RXDAT[TMP2-1] then
KEYSOK=KEYSOK+1 ' Povecaj br. pronadjenjih bajta
endif
I2C_ADR=I2C_ADR+1 ' i2c_adr++
next TMP2
if KEYSOK == 12 then ' ako smo nasli svih 12 bajta izadji odavdje
RETURN ' vrati se...
endif ' ...
next TMP1
RETURN ' vrati se...
Ovo je neka novija verzija koju sam poceo pisati u PICBASIC-u ali u sustini je to to! Ako budes imao pitanja javi!
evo naso sam neku francusku ili sta je ovo vec.
znaci taj JDM programer je u sklopu tog programa?
imaju i upute..
http://www.maxoverclocking.com/ele_jdmprog.html
kakve drivere??
znaci taj JDM programer je u sklopu tog programa?
imaju i upute..
http://www.maxoverclocking.com/ele_jdmprog.html
kakve drivere??
idemo ljeto
Ovako ide...
Kad je prvi put ukljucis svijetle dvije LEDs.
Sad trebas pritisnuti jedan taster (vjeruj mi ne sjecam se koji) i onda ce brava da ukljuci relej na trenutak. Sad kad primaknes karticu brava ce da dva puta ukljuci rejel. Sad je naucena prva kartica. Opet pritisni taster i nauci drugu pa trecu... svih 6 komada.
Ako ne zelis da naucis recimo petu i sestu (imas samo 4 kartice) trebas drzati onaj drugi taster i pritisnuti prvi (onaj za ucenje kartica). Relej takodje dva-tri puta ce da se upali da ti da do znanja da je programiranje trenutne kartice preskoceno. To opet ponovis da preskocis i sestu karticu.
Puno zurim pa sam ti ovo na brzinu napisao, cujemo se.
Kad je prvi put ukljucis svijetle dvije LEDs.
Sad trebas pritisnuti jedan taster (vjeruj mi ne sjecam se koji) i onda ce brava da ukljuci relej na trenutak. Sad kad primaknes karticu brava ce da dva puta ukljuci rejel. Sad je naucena prva kartica. Opet pritisni taster i nauci drugu pa trecu... svih 6 komada.
Ako ne zelis da naucis recimo petu i sestu (imas samo 4 kartice) trebas drzati onaj drugi taster i pritisnuti prvi (onaj za ucenje kartica). Relej takodje dva-tri puta ce da se upali da ti da do znanja da je programiranje trenutne kartice preskoceno. To opet ponovis da preskocis i sestu karticu.
Puno zurim pa sam ti ovo na brzinu napisao, cujemo se.