Guest User

Arduino RFID; SERVO;

a guest
May 8th, 2014
205
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.78 KB | None | 0 0
  1. #include <SoftwareSerial.h> // allerede inkluderet. (Behøves ikke)
  2. #define RFID_READ 0x01
  3. #define txPin 6 // transmition pin (kan ændres) - SIN på RFID
  4. #define rxPin 8 // Receive pin (kan ændres) - SOUT på RIFD
  5. #include <Servo.h> // servo lel...
  6. Servo myservo;  // laver et servo objekt
  7. SoftwareSerial mySerial(rxPin, txPin);
  8. int val; // val=mySerial.read();
  9.  
  10. void setup()
  11. {
  12.   Serial.begin(9600);
  13.   Serial.write(1);
  14. //  Serial.println("RFID Read/Write Test");
  15.   mySerial.begin(9600);
  16.   pinMode(txPin, OUTPUT);    
  17.   pinMode(rxPin, INPUT);
  18.   myservo.attach(10);  // tilknytter DIGITAL 10 til SERVO motoren
  19.  
  20. }
  21.  
  22. void suppressAll()                                // Forhindre NULL resultat i at blive printet.
  23. {
  24.     if(mySerial.available() > 0)
  25.     { mySerial.read();
  26.       suppressAll();
  27.     }
  28. }
  29.  
  30. void servo_left()
  31. {
  32.     int posl = 90;    // servo pin
  33.     for(posl = 0; posl < 90; posl += 1)  // goes from 0 degrees to 180 degrees
  34.   {                                  // in steps of 1 degree
  35.     myservo.write(posl);              // tell servo to go to position in variable 'pos'
  36.     delay(15);                       // waits 15ms for the servo to reach the position
  37.   }
  38. }
  39.  
  40.   void servo_right()
  41.   {
  42.     int posr = 90;    // servo pin
  43.     for(posr = 180; posr>=1; posr-=1){                                
  44.     myservo.write(posr);              // tell servo to go to position in variable 'pos'
  45.     delay(15);
  46.   }
  47.   }
  48.  
  49. void loop()
  50. {
  51.  int val;
  52.   mySerial.print("!RW");
  53.   mySerial.write(byte(RFID_READ));
  54.   mySerial.write(byte(32));
  55.  
  56.  
  57.   if(mySerial.available() > 0)
  58.   {      
  59.     val = mySerial.read();                        //The mySerial.read() procedure is called, but the result is not printed because I don't want the "error message: 1" cluttering up the serial monitor
  60.       if (val != 1)                                   //If the error code is anything other than 1, then the RFID tag was not read correctly and any data collected is meaningless. In this case since we don't care about the resultant values they can be suppressed
  61.        {suppressAll();}                              
  62.   }      
  63.  
  64.  
  65. if(mySerial.available() > 0) {
  66.  
  67.     val = mySerial.read();
  68.     val = mySerial.read();
  69.     val = mySerial.read();
  70.     val = mySerial.read(); // vi læser 2 bytes * 4
  71.    
  72.     if (val == 0X96){
  73.            Serial.print("\nread 96. korer til 1.\n");
  74.            Serial.println(1);
  75.            servo_right();
  76.            delay(1000);
  77.          
  78.     }
  79.     else if (val == 0X12){
  80.            Serial.print("\nread 12. korer til 180.\n");
  81.            Serial.println(2);
  82.            servo_left();
  83.            delay(1000);
  84.     }
  85.     else {
  86.         Serial.println("kunne ikke genkende.");
  87.         delay(1000);
  88.     }
  89.     val = 0;
  90.    
  91.   }  
  92. delay(750);
  93. }
Advertisement
Add Comment
Please, Sign In to add comment