Projekt polega na tym, gdy przyłożymy(poprawną) kartę do czytnika RFID_RC522, zapala sie zielona dioda i obraca się silnik krokowy (28BYJ-48).
To akurat udało się zrobić, ale chciałbym do tego dodać klawiaturę membranową. Czyli gdy wpiszę kod ''123A" zadziało się to samo.
(Arduino MEGA 2560)
Podaje kod który jak na razie udało mi się zrobić:
#include <Wire.h>
#include <Stepper.h>
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 53
#define RST_PIN 5
#define LED_Zielona 47
#define LED_Czerwona 46
#define ILOSC_KROKOW 32
Stepper mojSilnik(ILOSC_KROKOW, 31, 35, 33, 37);
MFRC522 rfid(SS_PIN, RST_PIN);
const byte poprawna_karta[] = {0x99, 0x67, 0xAC, 0x15};
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
SPI.begin(); // Init SPI bus
rfid.PCD_Init(); // Init MFRC522
pinMode(LED_Zielona,OUTPUT);
pinMode(LED_Czerwona,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if ( ! rfid.PICC_IsNewCardPresent())
return;
// Verify if the NUID has been readed
if ( ! rfid.PICC_ReadCardSerial())
return;
if (rfid.uid.uidByte[0] == poprawna_karta[0] ||
rfid.uid.uidByte[1] == poprawna_karta[1] ||
rfid.uid.uidByte[2] == poprawna_karta[2] ||
rfid.uid.uidByte[3] == poprawna_karta[3] )
{
Serial.println("Poprawna karta");
digitalWrite(LED_Zielona,HIGH);
mojSilnik.setSpeed(650);
mojSilnik.step(1024);
delay(500
);
digitalWrite(LED_Zielona,LOW);
}
else
{
Serial.println("Niepoprawna karta!!!");
digitalWrite(LED_Czerwona,HIGH);
delay(2000);
digitalWrite(LED_Czerwona,LOW);
}
// Halt PICC
rfid.PICC_HaltA();
// Stop encryption on PCD
rfid.PCD_StopCrypto1();
}
To akurat udało się zrobić, ale chciałbym do tego dodać klawiaturę membranową. Czyli gdy wpiszę kod ''123A" zadziało się to samo.
(Arduino MEGA 2560)
Podaje kod który jak na razie udało mi się zrobić:
#include <Wire.h>
#include <Stepper.h>
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 53
#define RST_PIN 5
#define LED_Zielona 47
#define LED_Czerwona 46
#define ILOSC_KROKOW 32
Stepper mojSilnik(ILOSC_KROKOW, 31, 35, 33, 37);
MFRC522 rfid(SS_PIN, RST_PIN);
const byte poprawna_karta[] = {0x99, 0x67, 0xAC, 0x15};
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
SPI.begin(); // Init SPI bus
rfid.PCD_Init(); // Init MFRC522
pinMode(LED_Zielona,OUTPUT);
pinMode(LED_Czerwona,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if ( ! rfid.PICC_IsNewCardPresent())
return;
// Verify if the NUID has been readed
if ( ! rfid.PICC_ReadCardSerial())
return;
if (rfid.uid.uidByte[0] == poprawna_karta[0] ||
rfid.uid.uidByte[1] == poprawna_karta[1] ||
rfid.uid.uidByte[2] == poprawna_karta[2] ||
rfid.uid.uidByte[3] == poprawna_karta[3] )
{
Serial.println("Poprawna karta");
digitalWrite(LED_Zielona,HIGH);
mojSilnik.setSpeed(650);
mojSilnik.step(1024);
delay(500
);
digitalWrite(LED_Zielona,LOW);
}
else
{
Serial.println("Niepoprawna karta!!!");
digitalWrite(LED_Czerwona,HIGH);
delay(2000);
digitalWrite(LED_Czerwona,LOW);
}
// Halt PICC
rfid.PICC_HaltA();
// Stop encryption on PCD
rfid.PCD_StopCrypto1();
}