diff --git a/sketches/ezn/RFID_to_Sound_to_blink/RFID_to_Sound_to_blink.ino b/sketches/ezn/RFID_to_Sound_to_blink/RFID_to_Sound_to_blink.ino new file mode 100644 index 0000000..a69106d --- /dev/null +++ b/sketches/ezn/RFID_to_Sound_to_blink/RFID_to_Sound_to_blink.ino @@ -0,0 +1,119 @@ +/* + All the resources for this project: http://randomnerdtutorials.com/ + Modified by Rui Santos + + Created by FILIPEFLOP + + Reconfigured by E.zn +*/ + + +#include +#include + +#define SS_PIN 10 +#define RST_PIN 9 +MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance. + + +const int ledpin = 6; // ledpin and soundpin are not changed throughout the process +const int RFIDSound = 5; + + +void setup() +{ + Serial.begin(9600); // Initiate a serial communication + SPI.begin(); // Initiate SPI bus + mfrc522.PCD_Init(); // Initiate MFRC522 + Serial.println("Approximate your card to the reader..."); + Serial.println(); + pinMode(ledpin, OUTPUT); + pinMode(RFIDSound, OUTPUT); + + +} + +void readCard() { + // Look for new cards + if ( ! mfrc522.PICC_IsNewCardPresent()) + { + return; + } + // Select one of the cards + if ( ! mfrc522.PICC_ReadCardSerial()) + { + return; + } + //Show UID on serial monitor + Serial.print("UID tag :"); + String content = ""; // for tag + Sound + String binary = ""; // for binary + LED + int letter; + for (int i = 0; i < mfrc522.uid.size; i++) + { + Serial.print(mfrc522.uid.uidByte[i], DEC); + content.concat(String(mfrc522.uid.uidByte[i], DEC)); // Spits out decimal value of UID tag + + // Assigns tones to each digit of a tag + + if (content.charAt(i) == '0') { + tone(RFIDSound, 40, 2250); + delay(500); + } + else if (content.charAt(i) == '1') { + tone(RFIDSound, 255, 150); + delay(500); + } + else if (content.charAt(i) == '2') { + tone(RFIDSound, 260, 1500); + delay(500); + } + else if (content.charAt(i) == '3') { + tone(RFIDSound, 265, 150); + delay(500); + } + else if (content.charAt(i) == '4') { + tone(RFIDSound, 270, 1000); + delay(500); + } + else if (content.charAt(i) == '5') { + tone(RFIDSound, 275, 1590); + delay(500); + } + else if (content.charAt(i) == '6') { + tone(RFIDSound, 280, 1500); + delay(500); + } + else if (content.charAt(i) == '7') { + tone(RFIDSound, 285, 1500); + delay(500); + } + else if (content.charAt(i) == '8') { + tone(RFIDSound, 290, 1050); + delay(500); + } + else if (content.charAt(i) == '9') { + tone(RFIDSound, 100, 1000); + delay(500); + } + } + + // Getting binary version of the same tag and blinking LED accordingly + + for (int b = 0; b < mfrc522.uid.size; b++) + { + Serial.println(mfrc522.uid.uidByte[b], BIN); + binary.concat(String(mfrc522.uid.uidByte[b], BIN)); + + if (binary.charAt(b) == '1') { + digitalWrite(ledpin, HIGH); + delay(500); + } + else if (binary.charAt(b) == '0') { + digitalWrite(ledpin, LOW); + delay(500); + } + } + Serial.println(); + delay(1000); +}