Guest User

Untitled

a guest
Mar 20th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. #include <Servo.h>
  2. Servo myservo;
  3. #include <SPI.h> // SPI-Bibiothek hinzufügen
  4.  
  5. #include <MFRC522.h> // RFID-Bibiothek hinzufügen
  6.  
  7. #define SS_PIN 10 // SDA an Pin 10 (bei MEGA anders)
  8.  
  9. #define RST_PIN 9 // RST an Pin 9 (bei MEGA anders)
  10.  
  11. MFRC522 mfrc522(SS_PIN, RST_PIN); // RFID-Empfänger benennen
  12.  
  13.  
  14.  
  15. /*Variablen initialisieren*/
  16. int state=0;
  17. int analogPin = 3;
  18. int val = 0;
  19. int pos = 0;
  20. int ledrot=3;
  21. int ledgrn=4;
  22. int rfid=0;
  23. void setup(){
  24. /*Seriellen Port initialisieren*/
  25. myservo.attach(8);
  26.  
  27. SPI.begin(); // SPI-Verbindung aufbauen
  28.  
  29. mfrc522.PCD_Init(); // Initialisierung des RFID-Empfängers
  30.  
  31. }
  32.  
  33. void loop(){
  34. /* Wert einlesen */
  35. val = analogRead(analogPin);
  36. {
  37.  
  38. if ( ! mfrc522.PICC_IsNewCardPresent()) // Wenn keine Karte in Reichweite ist...
  39.  
  40. {
  41.  
  42. return; // ...springt das Programm zurück vor die if-Schleife, womit sich die Abfrage wiederholt.
  43.  
  44. }
  45.  
  46.  
  47.  
  48. if ( ! mfrc522.PICC_ReadCardSerial()) // Wenn kein RFID-Sender ausgewählt wurde
  49.  
  50. {
  51.  
  52. return; // ...springt das Programm zurück vor die if-Schleife, womit sich die Abfrage wiederholt.
  53. }
  54.  
  55.  
  56.  
  57. Serial.print("Die ID des RFID-TAGS lautet:"); // "Die ID des RFID-TAGS lautet:" wird auf den Serial Monitor geschrieben.
  58.  
  59.  
  60.  
  61. for (byte i = 0; i < mfrc522.uid.size; i++)
  62.  
  63. {
  64. rfid=((rfid+mfrc522.uid.uidByte[i])*10);
  65. 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
  66.  
  67. Serial.print(" "); // Der Befehl „Serial.print(" ");“ sorgt dafür, dass zwischen den einzelnen ausgelesenen Blöcken ein Leerzeichen steht.
  68.  
  69. }
  70.  
  71.  
  72. Serial.println(); // Mit dieser Zeile wird auf dem Serial Monitor nur ein Zeilenumbruch gemacht.
  73.  
  74. /* gelesenen Wert auf dem Seriallen Port ausgeben*/
  75. /*if (val > 1000) {
  76. myservo.write(90);
  77. digitalWrite(ledrot, LOW);
  78. digitalWrite(ledgrn, HIGH);
  79. delay(3000);
  80. digitalWrite(ledrot, HIGH);
  81. digitalWrite(ledgrn, LOW);
  82. myservo.write(175);
  83. */
  84. digitalWrite (ledrot, HIGH);
  85.  
  86. if (rfid = 1189314137 && state == 0) {
  87. myservo.write(175); //Gradzahl,auf die der Servo fährt
  88. digitalWrite(ledrot, LOW);
  89. digitalWrite(ledgrn, HIGH);
  90. state=1;
  91. rfid=0;
  92. delay(500);
  93. }
  94.  
  95. if (state==1 && rfid==0 && val>800) {
  96. myservo.write(90);
  97. digitalWrite(ledrot, HIGH);
  98. digitalWrite(ledgrn, LOW);
  99. state=0;
  100. delay(500);
  101. }
  102. }}
Add Comment
Please, Sign In to add comment