Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- Servo myservo;
- #include <SPI.h> // SPI-Bibiothek hinzufügen
- #include <MFRC522.h> // RFID-Bibiothek hinzufügen
- #define SS_PIN 10 // SDA an Pin 10 (bei MEGA anders)
- #define RST_PIN 9 // RST an Pin 9 (bei MEGA anders)
- MFRC522 mfrc522(SS_PIN, RST_PIN); // RFID-Empfänger benennen
- /*Variablen initialisieren*/
- int state=0;
- int analogPin = 3;
- int val = 0;
- int pos = 0;
- int ledrot=3;
- int ledgrn=4;
- int rfid=0;
- void setup(){
- /*Seriellen Port initialisieren*/
- myservo.attach(8);
- SPI.begin(); // SPI-Verbindung aufbauen
- mfrc522.PCD_Init(); // Initialisierung des RFID-Empfängers
- }
- void loop(){
- /* Wert einlesen */
- val = analogRead(analogPin);
- {
- if ( ! mfrc522.PICC_IsNewCardPresent()) // Wenn keine Karte in Reichweite ist...
- {
- return; // ...springt das Programm zurück vor die if-Schleife, womit sich die Abfrage wiederholt.
- }
- if ( ! mfrc522.PICC_ReadCardSerial()) // Wenn kein RFID-Sender ausgewählt wurde
- {
- return; // ...springt das Programm zurück vor die if-Schleife, womit sich die Abfrage wiederholt.
- }
- Serial.print("Die ID des RFID-TAGS lautet:"); // "Die ID des RFID-TAGS lautet:" wird auf den Serial Monitor geschrieben.
- for (byte i = 0; i < mfrc522.uid.size; i++)
- {
- rfid=((rfid+mfrc522.uid.uidByte[i])*10);
- Serial.print(mfrc522.uid.uidByte[i], DEC); // Dann wird die UID ausgelesen, die aus vier einzelnen Blöcken besteht und der Reihe nach an den Serial Monitor gesendet. Die Endung Hex bedeutet, dass die vier Blöcke der UID als HEX-Zahl (also auch mit Buchstaben) ausgegeben wird
- Serial.print(" "); // Der Befehl „Serial.print(" ");“ sorgt dafür, dass zwischen den einzelnen ausgelesenen Blöcken ein Leerzeichen steht.
- }
- Serial.println(); // Mit dieser Zeile wird auf dem Serial Monitor nur ein Zeilenumbruch gemacht.
- /* gelesenen Wert auf dem Seriallen Port ausgeben*/
- /*if (val > 1000) {
- myservo.write(90);
- digitalWrite(ledrot, LOW);
- digitalWrite(ledgrn, HIGH);
- delay(3000);
- digitalWrite(ledrot, HIGH);
- digitalWrite(ledgrn, LOW);
- myservo.write(175);
- */
- digitalWrite (ledrot, HIGH);
- if (rfid = 1189314137 && state == 0) {
- myservo.write(175); //Gradzahl,auf die der Servo fährt
- digitalWrite(ledrot, LOW);
- digitalWrite(ledgrn, HIGH);
- state=1;
- rfid=0;
- delay(500);
- }
- if (state==1 && rfid==0 && val>800) {
- myservo.write(90);
- digitalWrite(ledrot, HIGH);
- digitalWrite(ledgrn, LOW);
- state=0;
- delay(500);
- }
- }}
Add Comment
Please, Sign In to add comment