Stap 5: Inzicht in de Code
/////////////////////////////////////////////
#include < Servo.h > / / Includes bibliotheken (computerbestanden) waarin regels code voor de servo
Servo myservo; Geeft de servo een naam
int RFIDResetPin = 0;
Registreer hier uw RFID-tags
Label1 char [13] = "---"; Eerste tag ID, verving ik de letters en cijfers met een overeenkomstige hoeveelheid streepjes (ik had eerder u
niet kappen mijn systeem...)
tag2 char [13] = "---"; Tweede label-ID
void setup {/ / alles binnen de void setup de code één keer uitgevoerd bij het opstarten
Serial.begin(9600); Een verbinding met de computer ingesteld wanneer prototyping, ongelooflijk nuttig om erachter te komen wat gebeurt
de code omdat het coderegels op een computerscherm kunt afdrukken
myservo.attach(8); De servo hecht aan een specifieke pin op de arduino, dit is hetzelfde als van de baan van een snelweg voor informatie
myservo.write(178); Hiermee stelt u de beperkte rotatie (0-180 graden) servo naar 178, de niet-actieve positie
pinMode (RFIDResetPin, uitvoer); Hiermee wist u de leisteen voor sensing een tag
digitalWrite (RFIDResetPin, hoge); Zet het op "high alert"
}
void loop {//everything binnen de void lus is doorlopen op een lineaire wijze over en weer
char tagString [0]; de volgende paar regels werken met de binnenkomende gegevens om te zetten in cijfers en letters welk formulier
int index = 0; de id-tag
lezing van Boole = vals;
while(Serial.available()) {//while er is een seriële verbinding (terwijl de lezer communiceert op het bord...)
int readByte = Serial.read(); Lees volgende beschikbaar byte //code die decodering (haha begint) het binaire bestand
if(readByte == 2) lezen = true; die beginnen van tag
if(readByte == 3) lezen = false; einde van tag
Als (lezen & & readByte! = 2 & & readByte! = 10 & & readByte! = 13) {}
opslaan van de tag
tagString [index] = readByte;
index ++;
}
}
checkTag(tagString); Controleer of het is een match
clearTag(tagString); Schakel de char van alle waarde
resetReader(); opnieuw instellen van de RFID-lezer
}
VOID checkTag (char tag[]) {//Check de Lees tag tegen bekende tags
if(STRLEN(tag) == 0) keren; leeg, geen behoefte om te bevorderen
Als (compareTag (label, Label1)) {/ / als gematched Label1, dit doen
servoGo(); Activeer de servo!
Serial.println ("kaart 1 lezen"); "kaart 1 lezen" afdrukken naar de computer, helpt zien als de code dit punt bereikt wanneer en hoe het
moet
}
/*
anders als (compareTag (label, tag2)) {//if gematched tag2, hiervoor
servoGo(); Activeer de servo!
Serial.println ("kaart 2 lezen");
}*/
/ * anders {}
Serial.println(tag); voorlezen aan een onbekende tag
Serial.println ("onbekende kaart");
}*/
}
ongeldig servoGo() {}
Serial.println ("Servo geactiveerd"); drukt een regel op de computer dat mij dat vertelt zijn bereikt dit punt
myservo.write(20); schrijft de servo naar een positie die zal trekken het snoer dat verschijnt van de stam
delay(500);
myservo.write(178); Hiermee stelt u de positie voor de volgende activering
delay(2000);
Serial.println ("Servo actie voltooid"); afdrukken van de lijn naar de computer ter bevestiging van de voltooiing van deze methode (externe code van
soorten)
}
De rest is code die wordt gebruikt om te controleren van het systeem dat wordt gelezen en de code
ongeldig resetReader() {}
Reset de RFID-lezer om opnieuw te lezen.
digitalWrite (RFIDResetPin, laag);
digitalWrite (RFIDResetPin, hoge);
delay(150);
}
VOID clearTag (char one[]) {}
de char-matrix duidelijk door het invullen met null - ASCII 0
Zal denken dat dezelfde tag is anders gelezen
for (int i = 0; ik < strlen(one); i ++) {}
een [i] = 0;
}
}
Booleaanse compareTag (char [een], char two[]) {}
Vergelijk twee waarde om te zien of hetzelfde,
killerid niet 100% werken, zodat we dit doen
if(STRLEN(One) == 0) geretourneerd als false; leeg
for (int i = 0; ik < 12; i ++) {}
Als (een [i]! = two[i]) return false;
}
return true; geen incongruenties
}
Foto: http://www.thinkgeek.com/images/products/additional/large/wrapping_paper-binary.jpg