#1 2021-01-22 00:47:43

slava_573
Учасник
Зареєстрований: 2015-08-25
Повідомлень: 9

Rfid Антена і Ардуіно

Прошу допомогти знатоків.
Вже декілька тижнів по вечорам сижу і ніяк не розберусь з антеною.
є антенна дальнбого зчитуванння
https://www.aliexpress.com/i/32656012971.html?ws_ab_test=searchweb0_0%2Csearchweb201602_0%2Csearchweb201603_0%2CppcSwitch_0&algo_pvid=abd73e95-ded7-4829-b6c2-4e79628de83b&aff_platform=portals-tool&sk=_Ao9adF&aff_trace_key=789d6c3fcf9c4205bf664ab0469fb1e2-1610999051736-09580-_Ao9adF&terminal_id=e7b9506ff36b4ad0add310c071420c60&algo_expid=abd73e95-ded7-4829-b6c2-4e79628de83b-27

неможу ніяк подружити її з ардуіно(
антена реагує, пікаї, діод моргає, данні на ардуіно передає. але якусь абракадабру

є браслети з рфід 125 кгц. потрібно порівнювати в базі і дозволяти або ні доступ.
але то вже геть інша історія.

допоможіть будь ласка подружити його з ардуіно. щоб можна було бачити в моніторі порта код ключа.

mini_izobrazhenie_viber_2021-01-21_23-44-18.jpgmini_izobrazhenie_viber_2021-01-21_23-43-25.jpg

Неактивний

#2 2021-01-22 01:02:14

slava_573
Учасник
Зареєстрований: 2015-08-25
Повідомлень: 9

Re: Rfid Антена і Ардуіно

максимум чого вдалось добитись це цим скетчом.


/* Crazy People
 * By Mike Cook April 2009
 * Three RFID readers outputing 26 bit Wiegand code to pins:-
 * Reader A (Head) Pins 2 & 3
 * Interrupt service routine gathers Wiegand pulses (zero or one) until 26 have been recieved
 * Then a sting is sent to processing
 */

volatile long reader1 = 0;
volatile int reader1Count = 0;

void reader1One(void) {
  reader1Count++;
  reader1 = reader1 << 1;
  reader1 |= 1;
}

void reader1Zero(void) {
  reader1Count++;
  reader1 = reader1 << 1;
}

void setup()
{
  Serial.begin(9600);
  // Attach pin change interrupt service routines from the Wiegand RFID readers
  attachInterrupt(0, reader1Zero, RISING);//DATA0 to pin 2
  attachInterrupt(1, reader1One, RISING); //DATA1 to pin 3
  delay(10);
  // the interrupt in the Atmel processor mises out the first negitave pulse as the inputs are already high,
  // so this gives a pulse to each reader input line to get the interrupts working properly.
  // Then clear out the reader variables.
  // The readers are open collector sitting normally at a one so this is OK
  for(int i = 2; i<4; i++){
  pinMode(i, OUTPUT);
   digitalWrite(i, HIGH); // enable internal pull up causing a one
  digitalWrite(i, LOW); // disable internal pull up causing zero and thus an interrupt
  pinMode(i, INPUT);
  digitalWrite(i, HIGH); // enable internal pull up
  }
  delay(10);
  // put the reader input variables to zero
  reader1 = 0;
  reader1Count = 0;
  //digitalWrite(13, HIGH);  // show Arduino has finished initilisation
}

void loop() {
  if(reader1Count >=26){
//Serial.print(" Reader 1 ");
//Serial.println(reader1,HEX);
 // Serial.println("A");
 //Serial.println(reader1& 0xfffffff);
 int serialNumber=(reader1 >> 1) & 0x3fff;
 int siteCode= (reader1 >> 17) & 0x3ff;

 Serial.print(siteCode);
 Serial.print("  ");
 Serial.println(serialNumber);
  reader1 = 0;
  reader1Count = 0;
  digitalWrite(13,HIGH);
  delay(2000);
  digitalWrite(13,LOW);
     }
}

але отримую відповідь
477  1475
477  1475
989  1475
989  1475
477  1475
477  1475


один і той самий ключ.
видає такі цифри.
хоча фактично код ключа

56 5A 11 40 BE

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму