Étape 5: Comprendre le Code
/////////////////////////////////////////////
#include < Servo.h > / / inclut des bibliothèques (fichiers informatiques) qui incluent des lignes de code pour l’asservissement
Servo myservo ; Le servo du donne un nom
int RFIDResetPin = 0 ;
Enregistrer vos tags RFID ici
char tag1 [13] = "---" ; Tout d’abord tag ID, j’ai remplacé les lettres et chiffres avec une quantité correspondante de tirets (j’ai eu plutôt vous
pas pirater mon système...)
char tag2 [13] = "---" ; Deuxième tag ID
void setup() {/ / tout dans le setup Sub exécute le code une fois au démarrage
Serial.Begin(9600) ; Établit une connexion à l’ordinateur lorsque prototypage, incroyablement utile pour savoir quoi qui se passe dans
le code parce qu’il peut imprimer des lignes de code sur un écran d’ordinateur
myservo.Attach(8) ; Attache le servo sur une broche spécifique sur l’arduino, c’est comme la voie d’une autoroute pour plus d’informations
myservo.Write(178) ; Définit la rotation limitée (0-180 degrés) servo à 178, la position de ralenti
pinMode (RFIDResetPin, sortie) ; Efface l’ardoise pour une balise de détection
digitalWrite (RFIDResetPin, élevé) ; Il met sur le « état d’alerte élevé »
}
void loop() {//everything dans la boucle Sub est exécuté par le biais de façon linéaire maintes et maintes fois
char tagString [0] ; les deux prochaines lignes fonctionnent avec les données entrantes pour qu’il devienne de chiffres et de lettres qui forment
int index = 0 ; l’étiquette d’identification
lecture booléen = false ;
while(Serial.available()) {//while y est une connexion série (alors que le lecteur communique au Conseil d’administration...)
readByte int = Serial.read() ; lire le prochain octet disponible //code qui commence decodage (haha) le fichier binaire
if(ReadByte == 2) lecture = true ; Date du début de la balise
if(ReadByte == 3) lecture = false ; fin de balise
Si (lecture & & readByte! = 2 & & readByte! = 10 & & readByte! = 13) {}
stocker la balise
tagString [index] = readByte ;
index ++ ;
}
}
checkTag(tagString) ; Vérifier si c’est un match
clearTag(tagString) ; Désactivez le char de toute valeur
resetReader() ; réinitialiser le lecteur RFID
}
void checkTag (char tag[]) {//Check le tag lecture contre tags connus
if(strlen(tag) == 0) return ; vide, sans devoir contunue
Si (compareTag (tag, tag1)) {/ / si appariés tag1, procédez comme suit
servoGo() ; Activer le servo !
Serial.println ("carte 1 lu") ; imprimer « carte 1 lire » à l’ordinateur, aide à voir si le code a atteint ce point quand et comment il
devrait
}
/*
ElseIf (compareTag (tag, tag2)) {//if appariés tag2, cela
servoGo() ; Activer le servo !
Serial.println (« carte 2 lire ») ;
}*/
/ * {else}
Serial.println(tag) ; lecture de n’importe quelle balise inconnue
Serial.println ("carte inconnue") ;
}*/
}
void servoGo() {}
Serial.println ("Servo activé") ; imprime une ligne à l’ordinateur qui me dit qui son atteint ce point
myservo.Write(20) ; écrit le servo dans une position qui va tirer le cordon qui saute du tronc
Delay(500) ;
myservo.Write(178) ; réinitialise la position pour la prochaine activation
Delay(2000) ;
Serial.println ("Servo Action complète") ; imprime une ligne à l’ordinateur confirmant l’achèvement de cette méthode (code externe de
trie)
}
Le reste est le code utilisé pour contrôler le système qui lit le code
void resetReader() {}
Réinitialiser le lecteur RFID à relire.
digitalWrite (RFIDResetPin, basse) ;
digitalWrite (RFIDResetPin, élevé) ;
Delay(150) ;
}
Sub clearTag (char one[]) {}
effacer le tableau de char en le remplissant avec null - ASCII 0
Pensera même balise a été lue autrement
pour (int i = 0; i < strlen(one); i ++) {}
un [i] = 0 ;
}
}
Boolean compareTag (char [un], char two[]) {}
comparer deux valeurs pour voir s’il y a même,
strcmp ne fonctionne pas 100 %, si nous faisons cela
if(strlen(One) == 0) return false ; vide
pour (int i = 0; i < 12; i ++) {}
Si (un [i]! = two[i]) return false ;
}
retourne la valeur true ; aucune incompatibilités
}
photo : http://www.thinkgeek.com/images/products/additional/large/wrapping_paper-binary.jpg