У меня "ошибка" с моим кодом
Следующий код выдает мне ошибку:
// RFIDunio.h is from http://learn.robotgeek.com/getting-started-guides/39-robot-kits/151-rfiduino.html
#include <RFIDuino.h>
byte keyTag[5] = {0,0,0,0,0};
boolean noise = false;
byte masterTag[5] = {37,0,0,127,24};
byte tagData[5];
byte tagDatas[5];
boolean verifyKey = false;
boolean mastaKey = false;
void setup()
{
Serial.begin(9600);
Serial.println("Welcome to my system!");
}
RFIDuino myRFIDuino(1.2);
void loop()
{
if(myRFIDunio.scanForTag(tagData == true)
{
verifyKey = myRFIDunio.compareTagData(tagData, keyTag);
mastaKey = myRFIDunio.compareTagData(tagData, masterTag);
if(verifyKey == true)
{
digitalWrite(myRFIDunio.led2,HIGH);
if(noise == true)
{
myRFIDunio.successSound();
}
Serial.println("Correct Key!" + " UID = " + tagData[5]);
delay(250);
digitalWrite(myRFIDunio.led2,LOW);
}
else if(mastaKey == true)
{
Serial.println("Programming mode activated!");
delay(500);
Serial.println("Please scan a card.");
myRFIDunio.scanForTag(tagDatas == true)
delay(1000);
tagDatas[5] = tagData[5];
Serial.println("Card has been programmed!");
}
else
{
digitalWrite(myRFIDuno.led1,HIGH);
if(noise == true)
{
myRFIDuino.errorSound();
}
Serial.println("Wrong! " + "UID = " + tagData[5]);
delay(250);
digitalWrite(myRFIDunio.led1,LOW);
}
}
Ошибка заключается в следующем:
C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=106 -IC:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\variants\standard -IC:\Users\*****\Documents\Arduino\libraries\RFIDuino C:\Users\*****\AppData\Local\Temp\build6101268048586666869.tmp\sketch_jul24a.cpp -o C:\Users\*****\AppData\Local\Temp\build6101268048586666869.tmp\sketch_jul24a.cpp.o
sketch_jul24a.ino: In function 'void loop()':
sketch_jul24a:20: error: 'myRFIDunio' was not declared in this scope
sketch_jul24a:20: error: ISO C++ forbids comparison between pointer and integer
sketch_jul24a:21: error: expected `)' before '{' token
sketch_jul24a:55: error: expected statement at end of input
sketch_jul24a:55: error: expected `}' at end of input
@I an Oxy Moron, 👍-2
Обсуждение2 ответа
C++ чувствителен к орфографии; идентификаторы должны быть написаны одинаково каждый раз, когда они используются.
if(myRFIDunio.scanForTag(tagData == true)
Я думаю, что у вас там не хватает кронштейна.
if(myRFIDunio.scanForTag(tagData) == true)
Также я думаю, что вы неправильно написали миРФИДуино. ni <-> в<->
if(myRFIDuino.scanForTag(tagData) == true)
И вам нужно } в конце вашей программы.
Кроме того, вы не можете складывать строки вместе, как это делается в ваших серийных отпечатках. Разбейте их на несколько отпечатков:
Serial.print("Correct Key! UID = ");
Serial.println(tagData[5]);
У вас также есть другие биты, которые вообще не имеют смысла, такие как:
myRFIDuino.scanForTag(tagDatas == true)
Еще одна вещь - эта библиотека никогда не будет работать в Linux или в MAC OS/X, где в файловой системе включена чувствительность к регистру. Файл .cpp содержит файл с неправильным именем .h.
myRFIDunio.scanForTag(tagDatas == true) предназначен для получения информации о карте, чтобы вы могли ее запрограммировать, я нахожусь в Windows. Я изменю серийные отпечатки. http://pastebin.com/RMrE8aD0, @I an Oxy Moron
Эта строка-тарабарщина, если только вы не хотите передать логическое значение функции scanForTag, которая указывает, является ли tagDatas истинным, чего не может быть, поскольку это массив. Почему " = = истинно` даже там?!, @Majenko
Я просто пытаюсь это понять. Есть ли тогда какой-нибудь способ получить данные тега. и поместите его в байт., @I an Oxy Moron
Я понятия не имею. Я не знаю, что такое "данные тегов", только то, что в вашей программе есть синтаксические ошибки, которые я определил. Я не знаю, что должна делать программа - и даже что такое "RFIDuino" или что она делает., @Majenko
Данные тегов-это то, что содержат rfid-метки, все они имеют уникальные идентификаторы. Это их читает. Я могу показать тебе библиотеку, если хочешь., @I an Oxy Moron
Я видел библиотеку. Я даже отправил ему запрос на вывод, чтобы исправить их ошибку в капитализации. Я никогда не видел RFID-метку, у которой был бы только один байт для идентификатора. Если вам нужна помощь в разработке того, как использовать библиотеку, посмотрите на примеры. Сначала исправьте синтаксические ошибки, как я вам уже говорил., @Majenko
@IanOxyMoron: Если у вас есть дополнительные вопросы, то вам будет лучше всего открыть дополнительные вопросы., @Ignacio Vazquez-Abrams
- Как использовать RFID-RC522 с Arduino?
- Как остановить SoftwareSerial от получения данных и повторно включить его в какой-то другой момент?
- NodeMCU с RFID RC522 и LCD-модулем интерфейса I2C вместе
- Использование прерываний с RC522
- Проблема совместного использования MISO с несколькими RFID-считывателями RC522
- rfid_default_keys проверить с помощью RC522
- MFRC522: прошивка неизвестна
- MFRC522 не сканируется карта
Вы вообще читали ошибки?! Это точно говорит вам, что не так.
ошибка: "myRFIDunio" не было объявлено " - потому что вы написали его неправильно. На самом деле, вам удалось написать это тремя разными способами в своем коде: "миРФИДуино"; " миРФИДунио
;миРФИДуно
. Читайте, читайте и читайте снова., @CharlieHanson