Код (C++): #include <Wire.h> #include <SPI.h> #include <Adafruit_PN532.h> #define PN532_IRQ 6 Adafruit_PN532 nfc(PN532_IRQ, 100); #define LED_FIRST A0 #define LED_LAST A1 uint8_t uidFirstCard[] = {0x04, 0x22, 0x77, 0xB2, 0xF3, 0x59, 0x80}; boolean comparisonOfUid(uint8_t uidRead[8], uint8_t uidComp[8], uint8_t uidLen) { for (uint8_t i = 0; i < uidLen; i++) { if (uidRead[i] != uidComp[i]) { return false; } if (i == (uidLen)-0x01) { return true; } } } void toggleLed(int led) { if (digitalRead(led) == LOW) { digitalWrite(led, HIGH); delay(850); digitalWrite(led, LOW); } else { digitalWrite(led, HIGH); } } void setup(void) { pinMode(LED_FIRST, OUTPUT); pinMode(LED_LAST, OUTPUT); nfc.begin(); int versiondata = nfc.getFirmwareVersion(); if (!versiondata) { while (1) { Serial.print("Didn't find RFID/NFC reader"); delay(1000); } } Serial.println("Found RFID/NFC reader"); nfc.SAMConfig(); } void loop(void) { uint8_t success; uint8_t uid[8]; uint8_t uidLength; success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength); if (success) { if (comparisonOfUid(uid, uidFirstCard, uidLength)) { toggleLed(LED_FIRST); } { if (comparisonOfUid(uid, uidFirstCard, uidLength)) { toggleLed(LED_LAST); } delay(900); } } }
? Код (Text): #include <Wire.h> #include <SPI.h> #include <Adafruit_PN532.h> #define PN532_IRQ 6 Adafruit_PN532 nfc(PN532_IRQ, 100); #define RELAY_FIRST A0 #define RELAY_LAST A1 uint8_t uidFirstCard[] = {0x04, 0x22, 0x77, 0xB2, 0xF3, 0x59, 0x80}; boolean comparisonOfUid(uint8_t uidRead[8], uint8_t uidComp[8], uint8_t uidLen) { for (uint8_t i = 0; i < uidLen; i++) { if (uidRead[i] != uidComp[i]) { return false; } if (i == (uidLen)-0x01) { return true; } } } void toggleLed(int led) { if (digitalRead(led) == HIGH) { digitalWrite(led, LOW); delay(850); digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } } void setup(void) { pinMode(LED_FIRST, OUTPUT); pinMode(LED_LAST, OUTPUT); nfc.begin(); int versiondata = nfc.getFirmwareVersion(); if (!versiondata) { while (1) { Serial.print("Didn't find RFID/NFC reader"); delay(1000); } } Serial.println("Found RFID/NFC reader"); nfc.SAMConfig(); } void loop(void) { uint8_t success; uint8_t uid[8]; uint8_t uidLength; success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength); if (success) { if (comparisonOfUid(uid, uidFirstCard, uidLength)) { toggleLed(LED_FIRST); } { if (comparisonOfUid(uid, uidFirstCard, uidLength)) { toggleLed(LED_LAST); } delay(900); } } }
реле при включение ардуино включается и потом как подносишь карту выключается и возвращается исходное положения . надо чтоб он был изначально выключен
Так? Код (Text): #include <Wire.h> #include <SPI.h> #include <Adafruit_PN532.h> #define PN532_IRQ 6 Adafruit_PN532 nfc(PN532_IRQ, 100); #define LED_FIRST A0 #define LED_SECOND A1 uint8_t uidCard[] = {0x04, 0x22, 0x77, 0xB2, 0xF3, 0x59, 0x80}; boolean comparisonOfUid(uint8_t uidRead[8], uint8_t uidComp[8], uint8_t uidLen) { for (uint8_t i = 0; i < uidLen; i++) { if (uidRead[i] != uidComp[i]) { return false; } if (i == (uidLen)-0x01) { return true; } } } void toggleLed(int led) { if (digitalRead(led) == LOW) { digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } } void setup(void) { pinMode(LED_FIRST, OUTPUT); pinMode(LED_SECOND, OUTPUT); Serial.begin(9600); nfc.begin(); int versiondata = nfc.getFirmwareVersion(); if (!versiondata) { while (1) { Serial.print("Didn't find RFID/NFC reader"); delay(1000); } } Serial.println("Found RFID/NFC reader"); nfc.SAMConfig(); Serial.println("Waiting for a card ..."); } void loop(void) { uint8_t success; uint8_t uid[8]; uint8_t uidLength; success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength); if (success) { // Переключаем первый светодиод если функция сравнения // ID вернёт true иначе оставляем всё как есть if (comparisonOfUid(uid, uidCard, uidLength)) { toggleLed(LED_FIRST); Serial.println("FirstTAG"); } else { if (comparisonOfUid(uid, uidThirdCard, uidLength)) { toggleLed(LED_THIRD); Serial.println("ThirdTAG"); } else { Serial.println("NoTAG"); } } delay(1000); } }
Код (C++): #include <Wire.h> #include <SPI.h> #include <Adafruit_PN532.h> #define PN532_IRQ 6 Adafruit_PN532 nfc(PN532_IRQ, 100); #define LED_FIRST A0 #define LED_LAST A1 uint8_t uidFirstCard[] = {0x04, 0x22, 0x77, 0xB2, 0xF3, 0x59, 0x80}; boolean comparisonOfUid(uint8_t uidRead[8], uint8_t uidComp[8], uint8_t uidLen) { for (uint8_t i = 0; i < uidLen; i++) { if (uidRead[i] != uidComp[i]) { return false; } if (i == (uidLen)-0x01) { return true; } } } void toggleLed(int led) { if (digitalRead(led) == HIGH) { digitalWrite(led, LOW); delay(850); digitalWrite(led, HIGH); } else { digitalWrite(led, HIGH); } } void setup(void) { pinMode(LED_FIRST, OUTPUT); pinMode(LED_LAST, OUTPUT); nfc.begin(); int versiondata = nfc.getFirmwareVersion(); if (!versiondata) { while (1) { Serial.print("Didn't find RFID/NFC reader"); delay(1000); } } Serial.println("Found RFID/NFC reader"); nfc.SAMConfig(); } void loop(void) { uint8_t success; uint8_t uid[8]; uint8_t uidLength; success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength); if (success) { if (comparisonOfUid(uid, uidFirstCard, uidLength)) { toggleLed(LED_FIRST); } { if (comparisonOfUid(uid, uidFirstCard, uidLength)) { toggleLed(LED_LAST); } delay(900); } } }
вот что то похоже уже . но опять исходное положение включенное . не могу сделать чтоб был выключенное
А комментарии в коде не надо оставлять? Я вот вижу, что по результату проверки одной и той же функции выполняются последователь два разных действия.А раз так, то последнее действие будет доминирующим.
вот понимаю друг мой .. я не силен в этом может поможешь . надо чтоб исходное положение двух реле было отключенное
Код (C++): #include <Wire.h> #include <SPI.h> #include <Adafruit_PN532.h> #define PN532_IRQ 6 Adafruit_PN532 nfc(PN532_IRQ, 100); #define LED_FIRST A0 #define LED_LAST A1 uint8_t uidFirstCard[] = {0x04, 0x22, 0x77, 0xB2, 0xF3, 0x59, 0x80}; boolean comparisonOfUid(uint8_t uidRead[8], uint8_t uidComp[8], uint8_t uidLen) { for (uint8_t i = 0; i < uidLen; i++) { if (uidRead[i] != uidComp[i]) { return false; } if (i == (uidLen)-0x01) { return true; } } } void toggleLed(int led) { if (digitalRead(led) == HIGH) { digitalWrite(led, LOW); delay(850); digitalWrite(led, HIGH); } else { digitalWrite(led, HIGH); } } void setup(void) { pinMode(LED_FIRST, OUTPUT); pinMode(LED_LAST, OUTPUT); nfc.begin(); int versiondata = nfc.getFirmwareVersion(); if (!versiondata) { while (1) { Serial.print("Didn't find RFID/NFC reader"); delay(1000); } } Serial.println("Found RFID/NFC reader"); nfc.SAMConfig(); } void loop(void) { uint8_t success; uint8_t uid[8]; uint8_t uidLength; success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength); if (success) { if (comparisonOfUid(uid, uidFirstCard, uidLength)) { toggleLed(LED_FIRST); } { if (comparisonOfUid(uid, uidFirstCard, uidLength)) { toggleLed(LED_LAST); } delay(900); } } }
$Alienoveron$, друг мой, сколько можно постить один и тот же код? Может вы уже напрягетесь и внятно скажете, что вам нужно? Вы хотели, что бы вам поменяли полярность включения реле - BAR_MEN это сделал. Что вас теперь не устраивает? Если вам лень написать лишние два-три предложения, чтобы внятно выразить свои мысли - вам никто не поможет. Тогда не отвлекайте других, разбирайтесь сами
Код (C++): #include <Wire.h> #include <SPI.h> #include <Adafruit_PN532.h> #define PN532_IRQ 6 Adafruit_PN532 nfc(PN532_IRQ, 100); #define LED_FIRST A0 #define LED_LAST A1 uint8_t uidFirstCard[] = {0x04, 0x22, 0x77, 0xB2, 0xF3, 0x59, 0x80}; boolean comparisonOfUid(uint8_t uidRead[8], uint8_t uidComp[8], uint8_t uidLen) { for (uint8_t i = 0; i < uidLen; i++) { if (uidRead[i] != uidComp[i]) { return false; } if (i == (uidLen)-0x01) { return true; } } } void toggleLed(int led) { if (digitalRead(led) == HIGH) { digitalWrite(led, LOW); delay(850); digitalWrite(led, HIGH); } else { digitalWrite(led, HIGH); } } void setup(void) { pinMode(LED_FIRST, OUTPUT); pinMode(LED_LAST, OUTPUT); digitalWrite(LED_FIRST, HIGH); digitalWrite(LED_LAST, HIGH); nfc.begin(); int versiondata = nfc.getFirmwareVersion(); if (!versiondata) { while (1) { Serial.print("Didn't find RFID/NFC reader"); delay(1000); } } Serial.println("Found RFID/NFC reader"); nfc.SAMConfig(); } void loop(void) { uint8_t success; uint8_t uid[8]; uint8_t uidLength; success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength); if (success) { if (comparisonOfUid(uid, uidFirstCard, uidLength)) { toggleLed(LED_FIRST); } { if (comparisonOfUid(uid, uidFirstCard, uidLength)) { toggleLed(LED_LAST); } delay(900); } } } Держи друг