RC522 перестал работать, в чем проблемма?
- Войдите на сайт для отправки комментариев
Вс, 15/10/2017 - 20:19
ВООБЩЕМ ПОЧЕМУТА КОД ПЕРЕСТАЛ РАБОТАТЬ, ВОПРОС ПОЧЕМУ? #include "PROGRAMM_CARD.h" #include "PC.h" #include "CONTROLER.h" #include <SD.h> #include <EEPROM.h> #include <Ethernet.h> #include <MFRC522.h> #include <SmartDelay.h> #include <CRC32.h> #include "EXT.h" EthernetClient client; EthernetServer server(80); bool wr = false; // Флаг на получение даных int temp = 0; // это смещение в памяти при записи в EEPROM bool fcard = false; // Флаг на получение файла bool fcardlogs = false; // Флаг о том что надо получить адрес смещения от начала файла на чтение файла лога unsigned long IDr = 0; // Переменная которая хранит номер транзакции, если 0 то загрузить с банка byte IDp; // Каждые 255 переполнений происходит сохранение в EEPROM IDr bool PROGRAMM_CARD = false; // Если этот флаг истина то контрое в режиме программирования карты !!!!! #define RST_PIN 0 #define SS_PIN A1 MFRC522 mfrc522(SS_PIN, RST_PIN); MFRC522::MIFARE_Key key; SmartDelay TimeRAB(1000000 * 60 * 60); // 60 мин (1 час) SmartDelay ExitRegProgTime(1000000 * 60 * 5); // 5 мин. byte SelectDevice = 0; // УКАЗЫВАЕТ НА НОМЕР УСТРОЙСТВА С КОТОРЫМ МЫ МОЖЕМ СЕЙЧАС РАБОТАТЬ. //extern bool RELAY_1ONN; //extern bool RELAY_1; //#define PinRelay1 A0 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //extern SmartDelay Relay1; void setup() { // 1. Параметры сетовой платы byte mac[] = { СКРЫТО }; IPAddress ip(192, 168, 1, 10); Ethernet.begin(mac, ip); server.begin(); // 3. Настрйка RFID SPI.begin(); mfrc522.PCD_Init(); // 4. Настройки SD; SD.begin(4); // 5. Настройка под реле 1,2,3,4 на выход все pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); pinMode(8, OUTPUT); // 5.1. Настройка для управления платами pinMode(4, OUTPUT); pinMode(10, OUTPUT); pinMode(A0, OUTPUT); // 5.2. Запрещаем работу всех устрйств //digitalWrite(4, HIGH); //digitalWrite(10, HIGH); //analogWrite(A0, HIGH); analogWrite(A0, LOW); Serial.begin(9600); // 6. Загрузим номер транзакции IDr = EEPROM_ulong_read(734); } void loop() { // Определяем правила работы, т.к. однворемено мы не можем работать со всеми устройствами. SelectDID(); } void SelectDID() { if (SelectDevice == 1) { Serial.println("v"); //digitalWrite(4, HIGH); //digitalWrite(10, HIGH); //analogWrite(A0, LOW); //delay(100); // СЕЙЧАС ВЫБИРАЕМ РАБОТУ СО СЧИТЫВАТЕЛЕМ, ЖДЕМ ОТ НЕГО ИНФОРМАЦИЮ И ОБРАБАТЫВАЕМ ЕЕ if (!mfrc522.PICC_IsNewCardPresent()) // Наличие карты в зоне действия { return; } if (!mfrc522.PICC_ReadCardSerial()) // Выбираем одну из карт { //PICC_Free; return; } Serial.println("v1"); // ЕСЛИ МЫ НАХОДИМСЯ В РЕЖИМЕ ПРОГРАММИРОВАНИЯ ТО СЛЕДУЮЩАЯ ФУНКЦИЯ БУДЕТ ПОЛНОСТЬЮ ИСПОЛНЕНА // ЕСЛИ ЖЕ НЕТ ТО ОНА ЗАВЕРШИТСЯ БЫСТРО. PROGRAMM_CARD_SET(); // ДАЛЬШЕ МЫ МОЖЕМ НАХОДИТСЯ В РЕЖИМЕ ОЖИДАНИЯ КАРТЫ, Т.Е. КОГДА КТО ТО ПРИЛОЖИТ КАРТУ ТО МЫ // ЕЕ ДОЛЖНЫ БУДЕМ ПРОЧИТАТЬ. ЭТОТ РЕЖИМ НАЗОВЕМ "КОНТРОЛЛЕР" КОГДА КОНТРОЛИРУЕМ ПРОЦЕСС ПРОХОДУ // ЧЕРЕЗ СКУД СИСТЕМУ. cardEx(); return; } if (SelectDevice == 2) { // ТУТ РАБОТАЕМ УЖЕ С СЕТЕВОЙ ПЛАТОЙ, А ИМЕННО ЖДЕМ ПОДКЛЮЧЕНИЯ И ОТВЕЧАЕМ НА ЗАПРОСЫ. //digitalWrite(4, HIGH); //digitalWrite(10, LOW); //analogWrite(A0, HIGH); //PC(); return; } // УЧИТЫВАЕМ ВРЕМЯ НАРАБОТКИ В ЧАСАХ //Time_(); // АВТОМАТИЧЕСКИ ВЫХОДИТ ИЗ РЕЖИМА ПРОГРАММИРОВАНИЯ ЧЕРЕЗ .5. МИНУТ //ExitRegProg(); // ВЫБИРАЕМ НОВОЕ УСТРОЙСТВО VUSelect(); } // ЭТОТ МЕТОД ЗАНИМАЕТСЯ ПЕРЕКЛЮЧЕНИЯМИ УСТРОЙСТВ КАЖДЫЕ ЦИКЛ ИСПОЛНЕНИЯ Т.Е. СНАЧАЛА ИМЕЕТСЯ 1 ЭТОТ КОД БЫЛ ИСПОЛНЕН // ЗАТЕМ ДОЛЖЕН ИСПОЛНИТСЯ КОД 2, КАК ТОЛЬКО ОН ИСПОЛНИТСЯ СНОВА ИСПОЛНЯЕТСЯ КОД 1 И Т.Д. void VUSelect() { if (SelectDevice == 2) { SelectDevice = 0; } SelectDevice++; }
Когда прикладыаю карту строка №106 не выполняется.
проводок отпаялся.
проводок отпаялся.
Вы знаете какой признак интересный, 1 раз карту прочитывает а дальше вылетает на методах
проводок отпаялся.
Вы знаете какой признак интересный, 1 раз карту прочитывает а дальше вылетает на методах
Разобрался, просто вот сюда между, т.к. если их не поставить как выше, и случайно в коде что то
забудите их при выходе там написать, все отваливается, а как туда загониш точно все гда работать будет.