manrotten
Üye
- Katılım
- 11 May 2019
- Mesajlar
- 21
- Puanları
- 1
- Yaş
- 28
Arduino Uno(klon) ve Nano(klon) da denedim Rfid kart ile dış kapının kilidini kart okutarak açmaya çalışıyorum.
Fakat Her iki kartta 5 dakika sonra kart okumuyor hiç tepki vermiyor sadece yeniden başlatınca çalışıyor sonra yine 5 dakika sonra takılıyor.
WDT yi denedim çözüm sağlamadı donan kart fiziksel reset butonundan ya da elektriği kesip tekrar açana kadar kartı okumuyor.
Kodlarımda bir sıkıntı var mı bilmiyorum.
Apartmandan gelen 240v u eski bir şarj aletine bağladım usb ile arduino yu besliyorum.
Fakat Her iki kartta 5 dakika sonra kart okumuyor hiç tepki vermiyor sadece yeniden başlatınca çalışıyor sonra yine 5 dakika sonra takılıyor.
WDT yi denedim çözüm sağlamadı donan kart fiziksel reset butonundan ya da elektriği kesip tekrar açana kadar kartı okumuyor.
Kodlarımda bir sıkıntı var mı bilmiyorum.
Apartmandan gelen 240v u eski bir şarj aletine bağladım usb ile arduino yu besliyorum.
C++:
#include <Servo.h>
#include <avr/wdt.h>
#include <MFRC522.h>
#include <SPI.h>
int rst=9;
int ss=10;
MFRC522 rfid(ss,rst);
Servo motor;
String stringArray[6] ;
void setup() {
motor.attach(8);
stringArray[0] = "8913211972"; // kart şifreleri
stringArray[1] = "54153241249";
stringArray[2] = "10223252249";
stringArray[3] = "2287116248";
stringArray[4] = "61247249";
stringArray[5] = "1372534986";
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
}
bool a=false;
void loop() {
;
if (millis() > 15000) { //wdt
wdt_enable( WDTO_60MS);
while(1) {}
}
if(! rfid.PICC_IsNewCardPresent())
return;
if(! rfid.PICC_ReadCardSerial())
return;
String birlesim = (String)rfid.uid.uidByte[0]+(String)rfid.uid.uidByte[1]+(String)rfid.uid.uidByte[2]+(String)rfid.uid.uidByte[3]; //kartta ki şifreyi stringe çevirme
rfid.PICC_HaltA(); //bu zımbırtı kartı sürekli okumaması içinmiş.
for(int say=0;say <7 ;say++) // 6 tane kart olduğu için aralarından birisi tutuyormu kontrol ediyor.
{
if( birlesim == stringArray[say])
{
rfid.PICC_HaltA();
motor.write(130); //kapıyı aç
delay(500);
a=true;
break;
}
}
if(a) //kapı açıldıysa servoyu eski poza getir
{
rfid.PICC_HaltA();
motor.write(100);
delay(500);
a=false;
}
}