Я новичок в ардуино, пытаюсь разобраться что к чему, купил себе Grove RFID reader 125kHz, здесь (seeedstudio.com/wiki/Grove_-_125KHz_RFID_Reader) нашел код для демо, но никак не могу разобраться как мне из него вывести в Serial.println ID меток, помогите // link between the computer and the SoftSerial Shield //at 9600 bps 8-N-1 //Computer is connected to Hardware UART //SoftSerial Shield is connected to the Software UART2&D3 #include <SoftwareSerial.h> SoftwareSerial SoftSerial(2, 3); unsigned char buffer[64]; // buffer array for data recieve over serial port int count=0; // counter for buffer array void setup() { SoftSerial.begin(9600); // the SoftSerial baud rate Serial.begin(9600); // the Serial port of Arduino baud rate. } void loop() { if (SoftSerial.available()) // if date is comming from softwareserial port ==> data is comming from SoftSerial shield { while(SoftSerial.available()) // reading data into char array { buffer[count++]=SoftSerial.read(); // writing data into array if(count == 64)break; } Serial.write(buffer,count); // if no data transmission ends, write buffer to hardware serial port clearBufferArray(); // call clearBufferArray function to clear the storaged data from the array count = 0; // set counter of while loop to zero } if (Serial.available()) // if data is available on hardwareserial port ==> data is comming from PC or notebook SoftSerial.write(Serial.read()); // write it to the SoftSerial shield } void clearBufferArray() // function to clear buffer array { for (int i=0; i<count;i++) { buffer=NULL;} // clear all index of array with command NULL }
Вот, держите: Код (Text): #include <SoftwareSerial.h> SoftwareSerial rfid = SoftwareSerial(5, 6); void setup() { rfid.begin(9600); Serial.begin(9600); } void loop() { if (rfid.available()) { while (rfid.available()) Serial.write(rfid.read()); } }
Спасибо большое, только это не совсем то, что я хочу( поясню: нужно собрать что-то "аля сигнализации", допустим есть 3 метки, одна известная и является ключом, остальные не являются таковыми, так вот нужно сделать переключатель: если поднесли метку известную, то сигнализация включена, если опять ее же поднесем, то сигнализация выключена, на остальные метки система не реагирует. нашел в интернете библиотеку для рфид и сделал с помощью примера вот такое: Код (Text): if(RFID.isIdAvailable()) { tag = RFID.readId(); if ((tag.mfr == 22528 ) && (tag.id == 9917223) && (tag.chk == 187)) { AlarmSetOn = !AlarmSetOn; delay(10); } где tag.mfr, tag.id, tag.chk просто разбиение ID метки на части и перевод их в DEC (вытащил их из библиотеки) проблема возникает у меня и в дальнейшем: Код (Text): if (AlarmSetOn == false) если после этой строки прошу сделать что-нить - он делает это только 1 раз, а что делать и как быть, если я , допустим хочу, чтобы диодик мигал пока AlarmSetOn == false ? а как только AlarmSetOn == true, гас и начинал мигать другой ?