Hola compañeros, soy nuevo en este foro, y en el uso del arduino.
El proyecto que tengo en mente, es la contrucción de un sistema para controlar los tiempos por vuelta de karts en un circuito.
Mi idea es utilizar un módulo arduino (El modelo UNO es el que tengo) y un módulo RFID (tengo el Adafruit PN530 de 13,56MHz).
Conseguí ponerlo a funcionar utilizando el siguiente código:
#include <Adafruit_NFCShield_I2C.h>
#include <Wire.h>
#include <Adafruit_NFCShield_I2C.h>
#define IRQ (2)
#define RESET (3) // Not connected by default on the NFC Shield
Adafruit_NFCShield_I2C nfc(IRQ, RESET);
int SerialValue = 0;
int dato;
void setup(void) {
pinMode(13, OUTPUT);
Serial.begin(9600);
Serial.println("Hello!");
nfc.begin();
uint32_t versiondata = nfc.getFirmwareVersion();
if (! versiondata) {
Serial.print("Didn't find PN53x board");
while (1); // halt
}
// Got ok data, print it out!
Serial.print("Found chip PN5"); Serial.println((versiondata>>24) & 0xFF, HEX);
Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC);
Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);
// Set the max number of retry attempts to read from a card
// This prevents us from waiting forever for a card, which is
// the default behaviour of the PN532.
nfc.setPassiveActivationRetries(0xFF);
// configure board to read RFID tags
nfc.SAMConfig();
Serial.println("Waiting for an ISO14443A card");
}
void loop(void) {
if (Serial.available()) {
SerialValue = Serial.read();
if (SerialValue==50)
{
digitalWrite(13, HIGH);
}
if (SerialValue==10)
{
digitalWrite(13, LOW);
}
}
if (Serial.available()) {
dato = Serial.read();
if (dato==20)
{
Serial.println();
}
}
boolean success;
uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // Buffer to store the returned UID
uint8_t uidLength; // Length of the UID (4 or 7 bytes depending on ISO14443A card type)
// Wait for an ISO14443A type cards (Mifare, etc.). When one is found
// 'uid' will be populated with the UID, and uidLength will indicate
// if the uid is 4 bytes (Mifare Classic) or 7 bytes (Mifare Ultralight)
success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0], &uidLength);
if (success) {
Serial.println("Found a card!");
digitalWrite(13, HIGH);
Serial.print("UID Length: ");Serial.print(uidLength, DEC);Serial.println(" bytes");
Serial.print("UID Value: ");
for (uint8_t i=0; i < uidLength; i++)
{
Serial.print(" 0x");Serial.print(uid[i], HEX);
}
Serial.println("");
// Wait 1 second before continuing
delay(100);
digitalWrite(13, LOW);
}
else
{
// PN532 probably timed out waiting for a card
Serial.println("Timed out waiting for a card");
}
}
Me lee las tarjetas correctamente, pero no consigo que el led conectado en el Pin 13 se encienda.
Mi idea, es conectar esa salida a un relé, para que maneje el semáforo del circuito con el programa de control que irá en el PC.
Al módulo que tengo de RFID, creo que no se le puede conectar una antena externa, y aquí es donde viene una de mis dudas. Que me aconsejáis que utilize para poder enviar y recibir las señales con la antena en el circuito? La pista es de 5,50m de ancho, y los tags/transponders irán colocados a unos 25-30 cm del suelo.
La antena irá en el suelo, a lo ancho de la pista.
Leí en algún post del foro, de un compañero que estaba preparando un sistema similar, pero para maratones, y le aconsejaron que utilizase "Tiris". Tengo pensado que el dispositivo que vaya en el kart, sea Tag, tiris o el que me aconsejeis, que sea alimentado, porque parece ser que tienen mayor alcance, cierto?
Bueno, espero no haber dicho demasiadas tonterías, , ya que soy nuevo en esto del arduino
Mi duda principal, es como puedo hacer que la antena sea de unos 5,50m de largo, y que envíe/reciba la señal hasta una altura de 25/30cm. También, si pudiera ser, colocaría la antena "doble", quiero decir, ida y vuelta, que es como la ponen algunas casa de cronometraje de karting, con una separación de unos 40 cm entre los cables
http://www.chronelec.com/supports/manuals/loop/en/How%20to%20install%20the%20loop%20on%20circuit.pdf
Muchas gracias de antemano por vuestros consejos y opiniones