Rfid tunniste kikkailua - matpi/EmbeddedSystemsUTU GitHub Wiki
#include <SPI.h>
#include <RFID.h>
#include <LiquidCrystal.h>
#include <Servo.h>
#define SS_PIN 10
#define RST_PIN 9
Servo ekaServo; // luodaan servo-objekti nimeltä ekaServo
int serNum0;
int serNum1;
int serNum2;
int serNum3;
int serNum4;
RFID rfid(SS_PIN, RST_PIN);
void setup()
{
Serial.begin(9600);
SPI.begin();
rfid.init();
ekaServo.attach(8); //käynnistää ekaServo nimisen servo-objektin pinnissä 8
ekaServo.write(77); // asettaa servon keskelle, 90 asteen kulmaan
delay(1000); // servolle pitää antaa aikaa liikkua
}
void loop()
{
if (rfid.isCard()) //onko korttia luettavissa
{
if (rfid.readCardSerial())
{
/* Jos kortin lukeminen onnistuu, luvut on tallenettu
lukusarjaan josta ne voidaan lukea muuttujiin*/
Serial.println(" ");
Serial.println("Card found");
serNum0 = rfid.serNum[0];
serNum1 = rfid.serNum[1];
serNum2 = rfid.serNum[2];
serNum3 = rfid.serNum[3];
serNum4 = rfid.serNum[4];
//Serial.println(" ");
Serial.println("Cardnumber:");
Serial.print("Dec: ");
Serial.print(rfid.serNum[0],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[1],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[2],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[3],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[4],DEC);
Serial.println(" ");
// tulostetaan sama heksalukuina
Serial.print("Hex: ");
Serial.print(rfid.serNum[0],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[1],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[2],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[3],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[4],HEX);
Serial.println(" ");
Serial.print("LUETTU!");
Serial.println(" ");
delay(1000);
ekaServo.write(0); // käskee servon toiseen äärilaitaan, 0-asteen kulmaan
delay(3000);
ekaServo.write(90); //
delay(1000);
}
}
rfid.halt();
}
Mikaelin ja Johanin tunnilla tekemä koodi joka toimii kuin rasvattu! Käytimme rfid-tunnistusta ohjaamaan servoa. Servo toimii portin aukasijana, kun käytetään tunnistelätkää rfidissä.