1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
|
#include <SD.h> //carte SD
#include <LiquidCrystal.h> //LCD
#include <SPI.h> // SPI
#include <MFRC522.h> // RFID
#define SS_PIN 10
#define RST_PIN 9
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
MFRC522 rfid(SS_PIN, RST_PIN);
// déclaration de quelques variables
const int chipSelect = 53; //pin de l'Arduino reliee au CS du module SD
Sd2Card card;
SdVolume volume;
SdFile root;
File myFile;
byte nuidPICC[4];
bool Setup = false;
void setup()
{
// définition des dimensions du LCD
lcd.begin(16, 2);
SPI.begin();
rfid.PCD_Init();
lcd.setCursor(2, 0);
lcd.print("Recherche de");
lcd.setCursor(4, 1);
lcd.print("carte SD");
delay(2000);
pinMode(10, OUTPUT); // 53 si ArduinoMega. Peu importe la valeur de chipSelect.
// On vérifie si une carte est présente
if (!card.init(SPI_HALF_SPEED, chipSelect)) {
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("pas de carte ?");
return;
}
else {
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("la carte");
lcd.setCursor(2, 1);
lcd.print("est bien la.");
}
// On trouve le volume
if (!volume.init(card)) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("FORMATAGE REQUIS");
lcd.setCursor(2, 1);
lcd.print("OU INCORRECT");
return;
}
delay(2000);
// On se prepare a jouer dans les fichiers
if (!SD.begin(chipSelect)) {
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("Echec de");
lcd.setCursor(0, 1);
lcd.print("l'initialisation");
return;
}
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("Initialisation");
lcd.setCursor(7, 1);
lcd.print("OK");
delay(2000);
// ouverture du fichier pour ecriture (il sera créé s'il n'existait pas déjà)
myFile = SD.open("SECRET.txt", FILE_WRITE);
// Si l'ouverture du fichier a fonctionné, on écrit quelque chose à l'intérieur
if (myFile) {
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("Ecriture dans");
lcd.setCursor(1, 1);
lcd.print("le fichier...");
myFile.println("Arduino est venu ici!");
// fermeture du fichier
myFile.close();
}
else {
// si l'ouverture du fichier a échoué, on l'indique
file_error();
}
delay(2000);
// on ouvre le fichier, et on vérifie son contenu
myFile = SD.open("SECRET.txt");
if (!myFile) {
file_error();
}
Setup = true;
}
void loop(void) {
lcd.clear();
if(Setup){
if ( !rfid.PICC_IsNewCardPresent()){
return;
}
if ( !rfid.PICC_ReadCardSerial()){
return;
}
for (byte i = 0; i < 4; i++) {
nuidPICC[i] = rfid.uid.uidByte[i];
}
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("badge detected");
for (byte i = 0; i < 4; i++)
{
lcd.setCursor(3*1, 1);
lcd.print(nuidPICC[i], HEX);
lcd.print("-");
}
// Re-Init RFID
rfid.PICC_HaltA(); // Halt PICC
rfid.PCD_StopCrypto1(); // Stop encryption on PCD
}
delay(100);
}
void file_error(){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("@#@##@FILE#@##@#");
lcd.setCursor(0, 1);
lcd.print("#@##@ERROR@@#@@");
} |
Partager