Arduino mega + rfid считыватель меток + приемник 433mHz
- Войдите на сайт для отправки комментариев
Друзья, помогите разобраться в чем причина: Есть плата 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();
}
} //СПАСИБО;)
уже не знаю куда копать....
Для начала, вот сюда.
ЕвгенийП, каким образом можно данную тему редактировать, чтобы разместить код по правилам!?
Первый пост темы не редактируется. Всатвьте код отдельным постом.
// Подключение библиотек #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(); } } //СПАСИБО;)Вы, будьте любезны, выкладывать ТОТ САМЫЙ скетч, который у Вас некорректно работает. Вы знаете, что такое копи-паст? Что Вы выложили? Это не то что не работает, а даже не компилируется! Нам самим догадываться, что там на самом деле у Вас написано в строках 2 и 3? Так хрустальные шары на этом форуме запрещены :(
Извеняюсь, вроде копировал все с скетча, который запускался, наверное недокопировал, дома посмотрю.
Классно сделано, чо: 6сли никакой метки не приложено - пофиг на приёмник 433 MHz, мы его даже опрашивать не будем, а просто вывалимся из loop :) Строчки 27 и 31 являются этому пруфом.
Строчки 27 и 31 являются этому пруфом.
ну, Вы, блин, герой! Я дальше строк 2 и 3 даже смотреть не стал :)
Спасибо!