Paso 5: Entender el código
/////////////////////////////////////////////
#include < Servo.h > / / incluye librerías (ficheros informáticos) que incluyen líneas de código para el servo
Servo myservo; Da un nombre al servo
int RFIDResetPin = 0;
Registre aquí sus etiquetas RFID
char tag1 [13] = "---"; En primer lugar la etiqueta ID, reemplacé las letras y números con una cantidad correspondiente de guiones (lo tuviera algo
no se hackear mi sistema...)
char la etiqueta2 [13] = "---"; Segundo ID de etiqueta
void setup() {/ / todo dentro de la configuración de vacía ejecuta el código una vez en la puesta en
Serial.Begin(9600); Establece una conexión con el ordenador cuando prototipos, muy útil para averiguar cuál es en
el código ya puede imprimir líneas de código en una pantalla de ordenador
myservo.Attach(8); Se fija el servo a un pin específico en el arduino, esto es como el carril de una autopista de información
myservo.Write(178); Establece la rotación limitada (0-180 grados) servo a 178, la posición de ralentí
pinMode (RFIDResetPin, salida); Borra la pizarra para la detección de una etiqueta
digitalWrite (RFIDResetPin, alto); pone en "alerta máxima"
}
void loop() {//everything dentro del bucle vacío se ejecuta a través de una forma lineal una y otra vez
char tagString [0]; el siguiente par de líneas de trabajo con los datos entrantes para convertirlo en números y letras que forman
Índice de int = 0; la etiqueta de identificación
lectura boolean = false;
while(serial.Available()) {//while allí es una conexión en serie (mientras que el lector se comunica a la Junta...)
readByte int = Serial.read(); leer siguiente //code bytes disponibles que comienza decodificación (jaja) el binario
if(readByte == 2) de lectura = true; Inicio de etiqueta
if(readByte == 3) de lectura = false; final de la etiqueta
Si (lectura & & readByte! = 2 & & readByte! = 10 & & readByte! = 13) {}
Guarde la etiqueta
tagString [index] = readByte;
Índice ++;
}
}
checkTag(tagString); Comprobar si es un partido
clearTag(tagString); Claro al char de todo valor
resetReader(); reiniciar el lector de RFID
}
void checkTag (char tag[]) {//Check la etiqueta leída contra conocidas etiquetas
if(strlen(TAG) == 0) volver; vacío, no hay necesidad de continuar
Si (compareTag (etiqueta, tag1)) {/ / si tag1, ello
servoGo(); Activar el servo!
Serial.println ("tarjeta 1 leer"); Imprimir "tarjeta 1 leer" a la computadora, ayuda a ve si el código alcanza este punto, Cuándo y cómo se
debe
}
/*
else if (compareTag (etiqueta, etiqueta2)) {//if emparejado tag2, ello
servoGo(); Activar el servo!
Serial.println ("tarjeta 2 leer");
}*/
/ * else {}
Serial.println(TAG); leer cualquier etiqueta desconocido
Serial.println ("tarjeta desconocida");
}*/
}
void servoGo() {}
Serial.println ("Servo activada"); imprime una línea en el equipo que me dice que sus alcances este punto
myservo.Write(20); escribe el servo a la posición que se tire el cable que sale del tronco
Delay(500);
myservo.Write(178); restablece la posición para la siguiente activación
Delay(2000);
Serial.println ("Servo acción completa"); imprime una línea en el equipo confirmando la realización de este método (código externo de
clases)
}
El resto es código que se utiliza para controlar el sistema que lee el código de
void resetReader() {}
Reiniciar el lector de RFID para leer otra vez.
digitalWrite (RFIDResetPin, bajo);
digitalWrite (RFIDResetPin, alto);
Delay(150);
}
void clearTag (char one[]) {}
claro el array de char por relleno de null - ASCII 0
Pensará la misma etiqueta ha sido leer de otra manera
para (int i = 0; i < strlen(one); i ++) {}
uno [i] = 0;
}
}
Boolean compareTag (char uno [], char two[]) {}
comparar dos valor a si mismo,
strcmp no funcionando al 100% por lo que lo hacemos
if(strlen(One) == 0) devuelven el valor false; vacío
para (int i = 0; i < 12; i ++) {}
Si (una [i]! = false return two[i]);
}
verdaderas; no hay desajustes
}
imagen: http://www.thinkgeek.com/images/products/additional/large/wrapping_paper-binary.jpg