I'm in a cool project from school for blind and visually impaired people. I'm trying to make a RFID reader connected with an Arduino BT, a little motor and a piëzo element.
I also have an Arduino w/ a serial USB port and an Atmega8-16PU for testing.
Everything is working great...the motor, the leds, even melodies on the piëzo element, BUT!!
My problem is that the ports 0 RX and port 1 TX on the Arduino not really communicate w/ the Skyetek module or the other way ;).
Here is the SkyeModule M1-Mini Product Reference Guide
Can anybody help me please...i'm really stuck @ this moment >:(
It helped me a lot, but it's still not working...
How can I send commands from the Arduino to my Skyetek RFID reader.
The readTag command for the reader is 0x24.
I also want to know how I can check the data that the Arduino is recieving.
I already tried the Arduino Software Serial Interface page but it seems that it is not possible to send data trough the tx port.
Does their exist an Serial write or something??
I already tried the Arduino Software Serial Interface page but it seems that it is not possible to send data trough the tx port.
Does their exist an Serial write or something??
I allready tried this page...but my Skyetek reader is still not communicate w/ the arduino.
What I want is to program some code on the Skyetek reader trough the arduino to activate the Skyetek reader...
Can I do that??
I've searched the forum and can't find any reference to "Skyetek" specifically, unfortunately not all devices work out-of-the-box with Arduino, though the Skyetek data sheet makes it sound simple, its probably not.
I've searched the forum and can't find any reference to "Skyetek" specifically, unfortunately not all devices work out-of-the-box with Arduino, though the Skyetek data sheet makes it sound simple, its probably not.
That's the reason why I posted, lol
The problem is that when I put this code in Arduino.
#include <SoftwareSerial.h>
#define rxPin 3
#define txPin 2
#define ledPin 13
// set up a soft serial port
SoftwareSerial mySerial(rxPin, txPin);
byte pinState = 0;
void setup() {
// define pin modes for tx, rx, led pins:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
pinMode(ledPin, OUTPUT);
// set txPin high (as recommended in forum)
digitalWrite(txPin, HIGH);
// set the data rate for the serial ports
mySerial.begin(9600);
Serial.begin(9600);
// say something
Serial.println("Hello World!");
}
void loop() {
byte someChar = 0;
someChar = mySerial.read();
// print out the character:
Serial.print(someChar, HEX);
// toggle an LED just so you see the thing's alive.
// this LED will go on with every OTHER character received:
toggle(13);
}
void toggle(int pinNum) {
// set the LED pin using the pinState variable:
digitalWrite(pinNum, pinState);
// if pinState = 0, set it to 1, and vice versa:
pinState = !pinState;
}
When I monitor this code, I get
Hello World
EE46DA ---->This is a random number
This happens without touching any tag, when I disconnect the tx wire, there's a lot of zero's with sometimes hex numbers trough it.
Can anybody tell me, how I can see if the RFID reader is sending any info from the tag??
Try reading through what others have done with different hardware devices, the Skyetek hasn't been done by anyone else so there's no off-the-shelf answers. Some people spend days just wiring LEDs to blink on and off, weeks or months with more complex devices - even when there's references available.
I know if you dig deep enough, you'll find the answers your looking for
I know if you dig deep enough, you'll find the answers your looking for
Thanks, but I'm looking very deep.
The Skyetek reader is not that different component then the kind of components that are on this forum. Its just an extra component on the Arduino! Is there not any component that needs to be programmed by the Arduino board??? Because thats what I like to know.
Can you program code on the arduino that program another chip that's only using a TTL connection??
// set up a soft serial port
SoftwareSerial mySerial(rxPin, txPin);
// create some space for receiving data from tag reader #define d_size 64
byte dta[ d_size];
void setup() {
// define pin modes for tx, rx, led pins:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
pinMode(ledPin, OUTPUT);
// set txPin high (as recommended in forum)
digitalWrite(txPin, HIGH);
// set the data rate for the serial ports
mySerial.begin(9600);
Serial.begin(9600);
Serial.println("begin ");
}
void loop() {
int in_count;
// send command
mySerial.print( 0x0d, BYTE); //send CR
mySerial.print( "0");
mySerial.print( "0");
mySerial.print( "1");
mySerial.print( "4");
mySerial.print( "0");
mySerial.print( "0");
mySerial.print( 0x0d, BYTE); //send CR
// get first byte of answer
byte ch = mySerial.read();
// if it was not a LF, send read command again
// if it was, store all bytes until ending LF was received
if (ch == 0x0a)
{
ch = mySerial.read();
Serial.println(" if ");
in_count = 0;
while( (ch != 0x0a) && ( in_count < d_size))
{
Serial.println(" while ");
dta[in_count] = ch;
in_count++;
ch = mySerial.read();
}
// and print the received characters to Serial
for ( int i = 0; i < in_count; i++) Serial.print( dta*, BYTE);*
// set up a soft serial port
SoftwareSerial mySerial(rxPin, txPin);
// create some space for receiving data from tag reader #define d_size 64
byte dta[ d_size];
void setup() {
// define pin modes for tx, rx, led pins:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
pinMode(ledPin, OUTPUT);
// set txPin high (as recommended in forum)
digitalWrite(txPin, HIGH);
// set the data rate for the serial ports
mySerial.begin(9600);
Serial.begin(9600);
Serial.println("begin ");
}
void loop() {
int in_count;
// send command
mySerial.print( 0x0d, BYTE); //send CR
mySerial.print( "0");
mySerial.print( "0");
mySerial.print( "1");
mySerial.print( "4");
mySerial.print( "0");
mySerial.print( "0");
mySerial.print( 0x0d, BYTE); //send CR
// get first byte of answer
byte ch = mySerial.read();
// if it was not a LF, send read command again
// if it was, store all bytes until ending LF was received
if (ch == 0x0a)
{
ch = mySerial.read();
in_count = 0;
while( (ch != 0x0a) && ( in_count < d_size))
{
dta[in_count] = ch;
in_count++;
ch = mySerial.read();
}
// and print the received characters to Serial
for ( int i = 0; i < in_count; i++) Serial.print( dta*, BYTE);*
}*
Serial.println(); * } ITS finally working....!!! ;D