Arduino mega + rfid считыватель меток + приемник 433mHz

max-nvkz
Offline
Зарегистрирован: 25.03.2015

Друзья, помогите разобраться в чем причина: Есть плата mega,к ней подключен приемник на 433mHz и rfid считыватель меток, проблема в том, что скетч обрабатывает сигнал с пульта 433 mHz только в том случае, если закоментирован код, который отвечает за считывание меток Rfid, в противном случае ардуина (или скетч) не реагирует на радио пульт, но считыватель меток работает... уже не знаю куда копать.... Спасибо!!! Ниже скетч:

// Подключение библиотек
#include
#include
// константы подключения контактов SS и RST
#define RST_PIN 5
#define SS_PIN 53
// Инициализация MFRC522
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
unsigned long uidDec, uidDecTemp; // для храниения номера метки в десятичном формате

#include //для приемника 433
RCSwitch mySwitch = RCSwitch(); //для приемника 433

void setup()
{
Serial.begin(9600); // инициализация последовательного порта
SPI.begin(); // инициализация SPI
mfrc522.PCD_Init(); // инициализация MFRC522
mySwitch.enableReceive(0); // Receiver on inerrupt 0 => that is pin #2

}
void loop()
{
//-------код для RFID считвания
// Поиск новой метки
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Выбор метки
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
uidDec = 0;
// Выдача серийного номера метки.
for (byte i = 0; i < mfrc522.uid.size; i++)
{
uidDecTemp = mfrc522.uid.uidByte[i];
uidDec = uidDec * 256 + uidDecTemp;
}
Serial.println("Card UID: ");
Serial.println(uidDec); // Выводим UID метки в консоль.

//--------код для считывания 433-------------------------------------------------—
if (mySwitch.available()) {

int value = mySwitch.getReceivedValue();

if (value == 0) {
Serial.print("Unknown encoding");
} else {
Serial.print("Received ");
Serial.print( mySwitch.getReceivedValue() );
Serial.print(" / ");
Serial.print( mySwitch.getReceivedBitlength() );
Serial.print("bit ");
Serial.print("Protocol: ");
Serial.println( mySwitch.getReceivedProtocol() );
}

mySwitch.resetAvailable();
}

} //СПАСИБО;)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

max-nvkz пишет:

уже не знаю куда копать....

Для начала, вот сюда.

max-nvkz
Offline
Зарегистрирован: 25.03.2015

ЕвгенийП, каким образом можно данную тему редактировать, чтобы разместить код по правилам!?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Первый пост темы не редактируется. Всатвьте код отдельным постом.

max-nvkz
Offline
Зарегистрирован: 25.03.2015
// Подключение библиотек
 #include  
#include  
// константы подключения контактов SS и RST
#define RST_PIN 5
#define SS_PIN 53
// Инициализация MFRC522
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
unsigned long uidDec, uidDecTemp; // для храниения номера метки в десятичном формате

#include //для приемника 433
RCSwitch mySwitch = RCSwitch(); //для приемника 433

void setup()
{
Serial.begin(9600); // инициализация последовательного порта
SPI.begin(); // инициализация SPI
mfrc522.PCD_Init(); // инициализация MFRC522
mySwitch.enableReceive(0); // Receiver on inerrupt 0 => that is pin #2

}
void loop()
{
//-------код для RFID считвания
// Поиск новой метки
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Выбор метки
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
uidDec = 0;
// Выдача серийного номера метки.
for (byte i = 0; i < mfrc522.uid.size; i++)
{
uidDecTemp = mfrc522.uid.uidByte[i];
uidDec = uidDec * 256 + uidDecTemp;
}
Serial.println("Card UID: ");
Serial.println(uidDec); // Выводим UID метки в консоль.

//--------код для считывания 433-------------------------------------------------—
if (mySwitch.available()) {

int value = mySwitch.getReceivedValue();

if (value == 0) {
Serial.print("Unknown encoding");
} else {
Serial.print("Received ");
Serial.print( mySwitch.getReceivedValue() );
Serial.print(" / ");
Serial.print( mySwitch.getReceivedBitlength() );
Serial.print("bit ");
Serial.print("Protocol: ");
Serial.println( mySwitch.getReceivedProtocol() );
}

mySwitch.resetAvailable();
}

} //СПАСИБО;)

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вы, будьте любезны, выкладывать ТОТ САМЫЙ скетч, который у Вас некорректно работает. Вы знаете, что такое копи-паст? Что Вы выложили? Это не то что не работает, а даже не компилируется! Нам самим догадываться, что там на самом деле у Вас написано в строках 2 и 3? Так хрустальные шары на этом форуме запрещены :(

max-nvkz
Offline
Зарегистрирован: 25.03.2015

Извеняюсь, вроде копировал все с скетча, который запускался, наверное недокопировал, дома посмотрю.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Классно сделано, чо: 6сли никакой метки не приложено - пофиг на приёмник 433 MHz, мы его даже опрашивать не будем, а просто вывалимся из loop :) Строчки 27 и 31 являются этому пруфом.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

DIYMan пишет:

 Строчки 27 и 31 являются этому пруфом.

ну, Вы, блин, герой! Я дальше строк 2 и 3 даже смотреть не стал :)

max-nvkz
Offline
Зарегистрирован: 25.03.2015

Спасибо!