Доброго времени суток народ. Прошу у вас помощи. Имеется RFID-RC522 и скетч #include <RFID.h> #include <SPI.h> #define SS_PIN 10 #define RST_PIN 9 #define BLUE_LED 6 #define YELLOW_LED 7 #define but 2 RFID rfid(SS_PIN, RST_PIN); unsigned char reading_card[5]; //for reading card unsigned char master[5] = {219, 188, 39, 15, 79}; // allowed card unsigned char master2[5] = {72, 125, 151, 16, 178}; // allowed card unsigned char master3[5] = {11, 41, 39, 15, 10}; // allowed card unsigned char master4[5] = {113, 148, 19, 74, 188}; // allowed card unsigned char master5[5] = {226, 117, 65, 125, 171}; // allowed card unsigned char master6[5] = {213, 190, 211, 101, 221 }; // allowed card unsigned char master7[5] = {1, 83, 230, 41, 157}; // allowed card unsigned char master8[5] = {1, 83, 230, 41, 157}; // allowed card unsigned char master9[5] = {1, 83, 230, 41, 157}; // allowed card unsigned char master10[5] = {1, 83, 230, 41, 157}; // allowed card unsigned char i; void indication(int led); void allow(); void denied(); void setup() { Serial.begin(9600); SPI.begin(); rfid.init(); pinMode(BLUE_LED, OUTPUT); pinMode(YELLOW_LED, OUTPUT); } void loop() { if (rfid.isCard()) { if (rfid.readCardSerial()) { /* Reading card */ Serial.println(" "); Serial.println("Card found"); Serial.println("Cardnumber:"); for (i = 0; i < 5; i++) { Serial.print(rfid.serNum); Serial.print(" "); reading_card = rfid.serNum; } Serial.println(); //verification for (i = 0; i < 5; i++) { if (reading_card != master & reading_card != master2 & reading_card != master3 & reading_card != master4 & reading_card != master5 & reading_card != master6 & reading_card != master7 & reading_card != master8 & reading_card != master9[i] & reading_card[i] != master10[i] ) { break; } } if (i == 5) { allow(); } else { denied(); } } } rfid.halt(); } void allow() { Serial.println("Access accept!"); indication(BLUE_LED); } void denied() { Serial.println("Access denied!"); indication(YELLOW_LED); } void indication(int led) { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); } Как добавить кнопку для открывания изнутри (кнопка на замыкание) Желательно на порт 6 чтобы выпадало тоже, так как на нем висит релюшка, а на вход 2 порт к примеру сигнал. Прошу помощи у гуру. Карты я добавил на 10 пользователей.[/i][/i][/i]
А можно другими словами выразить сию глубокую мысль? P.S. оформите код правильно, чтобы его можно было прочесть.
Спасибо всем, всё сделал #include <RFID.h> #include <SPI.h> #define SS_PIN 10 #define RST_PIN 9 #define BLUE_LED 6 #define YELLOW_LED 7 RFID rfid(SS_PIN, RST_PIN); unsigned char reading_card[5]; //for reading card unsigned char master[5] = {219, 188, 39, 15, 79}; // allowed card unsigned char master2[5] = {72, 125, 151, 16, 178}; // allowed card unsigned char master3[5] = {11, 41, 39, 15, 10}; // allowed card unsigned char master4[5] = {113, 148, 19, 74, 188}; // allowed card unsigned char master5[5] = {226, 117, 65, 125, 171}; // allowed card // Карточки и метки. Метка смотрится через монитор порта unsigned char master6[5] = {213, 190, 211, 101, 221 }; // allowed card unsigned char master7[5] = {1, 83, 230, 41, 157}; // allowed card unsigned char master8[5] = {1, 83, 230, 41, 157}; // allowed card unsigned char master9[5] = {1, 83, 230, 41, 157}; // allowed card unsigned char master10[5] = {1, 83, 230, 41, 157}; // allowed card unsigned char i; void indication(int led); void allow(); void denied(); void setup() { Serial.begin(9600); SPI.begin(); rfid.init(); pinMode(BLUE_LED, OUTPUT); pinMode(YELLOW_LED, OUTPUT); pinMode(A0, INPUT); // Порт внутренней кнопки pinMode(3, OUTPUT); // Порт управления реле (твердотельное) pinMode(4, OUTPUT); // Порт сигнала (пьезо) } void loop() { if (rfid.isCard()) { if (rfid.readCardSerial()) { /* Reading card */ Serial.println(" "); Serial.println("Card found"); Serial.println("Cardnumber:"); for (i = 0; i < 5; i++) { Serial.print(rfid.serNum); Serial.print(" "); reading_card = rfid.serNum; } Serial.println(); //verification for (i = 0; i < 5; i++) { if (reading_card != master & reading_card != master2 & reading_card != master3 & reading_card != master4 & reading_card != master5 & reading_card != master6 //Количество карточек/меток & reading_card != master7 & reading_card != master8 & reading_card != master9[i] & reading_card[i] != master10[i] ) { break; } } if (i == 5) { allow(); } else { denied(); } } } rfid.halt(); { if (digitalRead(A0) == HIGH) { digitalWrite(3, LOW); // Реле магнита кнопки (твердотельное на пропадание сигнала) digitalWrite(4, HIGH); // Порт сигнала кнопки delay(2000); digitalWrite(3, HIGH); digitalWrite(4, LOW); } } } void allow() { Serial.println("Access accept!"); indication(BLUE_LED); } void denied() { Serial.println("Access denied!"); indication(YELLOW_LED); } void indication(int led) { digitalWrite(led, HIGH); digitalWrite(3, LOW); digitalWrite(4, HIGH); // Порт сигнала delay(2000); digitalWrite(led, LOW); digitalWrite(3, HIGH); digitalWrite(4, LOW); // Порт сигнала } [/I][/I][/I] какнал alliance alliance на ютубе www youtube com/watch?v=VgyuYO3Txpc
Как то так видимо? Код (C++): #include <RFID.h> #include <SPI.h> #define SS_PIN 10 #define RST_PIN 9 #define BLUE_LED 6 #define YELLOW_LED 7 RFID rfid(SS_PIN, RST_PIN); unsigned char reading_card[5]; //for reading card unsigned char master[5] = {219, 188, 39, 15, 79}; // allowed card unsigned char master2[5] = {72, 125, 151, 16, 178}; // allowed card unsigned char master3[5] = {11, 41, 39, 15, 10}; // allowed card unsigned char master4[5] = {113, 148, 19, 74, 188}; // allowed card unsigned char master5[5] = {226, 117, 65, 125, 171}; // allowed card // Карточки и метки. Метка смотрится через монитор порта unsigned char master6[5] = {213, 190, 211, 101, 221 }; // allowed card unsigned char master7[5] = {1, 83, 230, 41, 157}; // allowed card unsigned char master8[5] = {1, 83, 230, 41, 157}; // allowed card unsigned char master9[5] = {1, 83, 230, 41, 157}; // allowed card unsigned char master10[5] = {1, 83, 230, 41, 157}; // allowed card unsigned char i; void indication(int led); void allow(); void denied(); void setup() { Serial.begin(9600); SPI.begin(); rfid.init(); pinMode(BLUE_LED, OUTPUT); pinMode(YELLOW_LED, OUTPUT); pinMode(A0, INPUT); // Порт внутренней кнопки pinMode(3, OUTPUT); // Порт управления реле (твердотельное) pinMode(4, OUTPUT); // Порт сигнала (пьезо) } void loop() { if (rfid.isCard()) { if (rfid.readCardSerial()) { /* Reading card */ Serial.println(" "); Serial.println("Card found"); Serial.println("Cardnumber:"); for (i = 0; i < 5; i++) { Serial.print(rfid.serNum); Serial.print(" "); reading_card = rfid.serNum; } Serial.println(); //verification for (i = 0; i < 5; i++) { if (reading_card != master & reading_card != master2 & reading_card != master3 & reading_card != master4 & reading_card != master5 & reading_card != master6 //Количество карточек/меток & reading_card != master7 & reading_card != master8 & reading_card != master9[i] & reading_card[i] != master10[i] ) { break; } } if (i == 5) { allow(); } else { denied(); } } } rfid.halt(); { if (digitalRead(A0) == HIGH) { digitalWrite(3, LOW); // Реле магнита кнопки (твердотельное на пропадание сигнала) digitalWrite(4, HIGH); // Порт сигнала кнопки delay(2000); digitalWrite(3, HIGH); digitalWrite(4, LOW); } } } void allow() { Serial.println("Access accept!"); indication(BLUE_LED); } void denied() { Serial.println("Access denied!"); indication(YELLOW_LED); } void indication(int led) { digitalWrite(led, HIGH); digitalWrite(3, LOW); digitalWrite(4, HIGH); // Порт сигнала delay(2000); digitalWrite(led, LOW); digitalWrite(3, HIGH); digitalWrite(4, LOW); // Порт сигнала }