Делимся опытом Наступив на грабли - сообщи другим! Обмен опытом разработки и ремонта электронных устройств. |
04.06.2020, 18:23
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2006
Сообщений: 874
Сказал спасибо: 234
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
помогите поправить ардуино скетч
братцы
подключил ардуйно нано к читателю rc522
залил скеть
#include ‹SPI.h›
#include ‹MFRC522.h›
#define RST_PIN 9 // Configurable, see typical pin layout above
#define SS_1_PIN 10 // Configurable, take a unused pin, only HIGH/LOW required, must be diffrent to SS 2
#define SS_2_PIN 8 // Configurable, take a unused pin, only HIGH/LOW required, must be diffrent to SS 1
#define NR_OF_READERS 2
byte ssPins[] = {SS_1_PIN, SS_2_PIN};
MFRC522 mfrc522[NR_OF_READERS]; // Create MFRC522 instance.
/**
* Initialize.
*/
void setup() {
Serial.begin(9600); // Initialize serial communications with the PC
while (!Serial); // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
SPI.begin(); // Init SPI bus
for (uint8_t reader = 0; reader ‹ NR_OF_READERS; reader++) {
mfrc522[reader].PCD_Init(ssPins[reader], RST_PIN); // Init each MFRC522 card
//Serial.print(F("Reader "));
///Serial.print(reader);
// Serial.print(F(": "));
mfrc522[reader].PCD_DumpVersionToSerial();
}
}
/**
* Main loop.
*/
void loop() {
for (uint8_t reader = 0; reader ‹ NR_OF_READERS; reader++) {
// Look for new cards
if (mfrc522[reader].PICC_IsNewCardPresent() && mfrc522[reader].PICC_ReadCardSerial()) {
dump_byte_array(mfrc522[reader].uid.uidByte, mfrc522[reader].uid.size);
MFRC522::PICC_Type piccType = mfrc522[reader].PICC_GetType(mfrc522[reader].uid.sak);
// mfrc522[reader].PICC_HaltA();
// mfrc522[reader].PCD_StopCrypto1();
} //if (mfrc522[reader].PICC_IsNewC
} //for(uint8_t reader
}
/**
* Helper routine to dump a byte array as hex values to Serial.
*/
void dump_byte_array(byte *buffer, byte bufferSize) {
for (byte i=0; i ‹ bufferSize ;i++) {
//Serial.print(buffer[i] ‹ 0x10 ? " 0" : " ");
Serial.print(buffer[i], HEX);
}
}
//----------------------------------------------
подношу карту 13мгц и он выдает, например,
40A744DA.
все четко, нo нужно поменять последовательность байтов на обратное т.е.
нужно получить DA44A740
ну, я подумал сделать так;
for (byte i=bufferSize; i›0 ;i--)
ну, последовательность то меняется, но теряются байты
0401957
попробовал так for (byte i=bufferSize-1; i›0 ;i--)
получил
401957 и опять не зватает одного
знатоки помогите пожалуйста в чем тут дело?
|
|
|
|
04.06.2020, 19:06
|
|
Почётный гражданин KAZUS.RU
Регистрация: 30.09.2006
Сообщений: 1,560
Сказал спасибо: 158
Сказали Спасибо 661 раз(а) в 431 сообщении(ях)
|
Re: помогите поправить ардуино скетч
for (byte i=bufferSize; i›=0 ;i--)
|
|
|
|
04.06.2020, 19:35
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2006
Сообщений: 874
Сказал спасибо: 234
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: помогите поправить ардуино скетч
спасибо братец Ara41
я даже не могу проследить за кодом.
раньше при поднесении карты выдавал один код ,но после того как ввел
›=0 то непрерывно появляются большой частотой.
|
|
|
|
04.06.2020, 21:35
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2006
Сообщений: 874
Сказал спасибо: 234
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: помогите поправить ардуино скетч
и к тому же выдает совсем другой код
|
|
|
|
04.06.2020, 21:39
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2006
Сообщений: 874
Сказал спасибо: 234
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: помогите поправить ардуино скетч
в общем, реальная карта дает D5571940
а надо
401957D5
помогите брательнику.
|
|
|
|
04.06.2020, 22:06
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2006
Сообщений: 874
Сказал спасибо: 234
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: помогите поправить ардуино скетч
нашел другой скеч который только читает но не работает а ошибку не найду
#include ‹SPI.h›
#include ‹MFRC522.h›
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN, RST_PIN);
// Данные о номере карты храняться в 5 переменных, будем запоминать их, чтобы проверять, считывали ли мы уже такую карту
int serNum0;
int serNum1;
int serNum2;
int serNum3;
int serNum4;
void setup()
{
Serial.begin(9600);
SPI.begin();
rfid.init();
}
void loop()
{
if (rfid.isCard()) {
if (rfid.readCardSerial()) { // Сравниваем номер карты с номером предыдущей карты
if (rfid.serNum[0] != serNum0
&& rfid.serNum[1] != serNum1
&& rfid.serNum[2] != serNum2
&& rfid.serNum[3] != serNum3
&& rfid.serNum[4] != serNum4
) {
/* Если карта - новая, то считываем*/
Serial.println(" ");
Serial.println("Card found");
serNum0 = rfid.serNum[0];
serNum1 = rfid.serNum[1];
serNum2 = rfid.serNum[2];
serNum3 = rfid.serNum[3];
serNum4 = rfid.serNum[4];
//Выводим номер карты
Serial.println("Cardnumber:");
Serial.print("Dec: ");
Serial.print(rfid.serNum[0],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[1],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[2],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[3],DEC);
Serial.print(", ");
Serial.print(rfid.serNum[4],DEC);
Serial.println(" ");
Serial.print("Hex: ");
Serial.print(rfid.serNum[0],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[1],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[2],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[3],HEX);
Serial.print(", ");
Serial.print(rfid.serNum[4],HEX);
Serial.println(" ");
} else {
/* Если это уже считанная карта, просто выводим точку */
Serial.print(".");
}
}
}
rfid.halt();
}
|
|
|
|
04.06.2020, 22:08
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2006
Сообщений: 874
Сказал спасибо: 234
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: помогите поправить ардуино скетч
выдает
'rfid' daes not name a tipe
|
|
|
|
04.06.2020, 23:29
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2006
Сообщений: 874
Сказал спасибо: 234
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: помогите поправить ардуино скетч
господин raxp
еще раз помогите пожалуйста!!
|
|
|
|
05.06.2020, 17:40
|
|
Гражданин KAZUS.RU
Регистрация: 18.07.2006
Сообщений: 874
Сказал спасибо: 234
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: помогите поправить ардуино скетч
братцы, нашелся еще один, лучший представитель человечества.
настоящий человек и большая умница.
это - COS Fi.
гениальность в простоте.
он предложил вот такую строку в конце первого скеча.
Serial.print(buffer[i-1], HEX);
и чудо свершилось .работает на высшем уровне!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
пока я не знаю как из личного кабинета с ним связаться ,чтобы отблагодарить, но надеюсь, что увидит этот пост.
|
|
|
|
05.06.2020, 19:22
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: помогите поправить ардуино скетч
Сообщение от begun
|
пока я не знаю как из личного кабинета с ним связаться
|
Вот так. Жмакнуть по треугольнику и выбрать из менюшки.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:46.
|
|