Advertisement
Guest User

Arduino Tripwire

a guest
May 28th, 2015
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.05 KB | None | 0 0
  1.  
  2. //Testing the DC Motors
  3. //Define Pins
  4. //Motor A
  5. int enableA = 4;
  6. int pinA1 = 6;
  7. int pinA2 = 5;
  8.  
  9. int sensor0 = 0;
  10.  
  11. int sensorVal0;
  12.  
  13. int statusCache;
  14. int lastStatus;
  15.  
  16. void setup() {
  17.   Serial.begin (9600);
  18.   //configure pin modes
  19.   pinMode (enableA, OUTPUT);
  20.   pinMode (pinA1, OUTPUT);
  21.   pinMode (pinA2, OUTPUT);
  22.  
  23.   //open cache
  24.   //enabling motor A
  25.   Serial.println ("Enabling Motor A");
  26.   digitalWrite (enableA, HIGH);
  27.  
  28.   Serial.println ("Opening...");
  29.  
  30.   digitalWrite (enableA, HIGH);
  31.   digitalWrite (pinA1, HIGH);
  32.   digitalWrite (pinA2, LOW);
  33.   delay(850); //calculated time for opening
  34.  
  35.   Serial.println ("Standby...");
  36.   Serial.println ("Waiting for interaction...");
  37.   digitalWrite (pinA1, LOW);
  38.   digitalWrite (pinA2, LOW);
  39.  
  40.   statusCache = 1; //set status to open
  41.   lastStatus = 1;
  42.   //wait for 5s to let everything settle
  43.   delay (5000);
  44. }
  45.  
  46.  
  47. void loop() {
  48.  
  49.   statusCache = getSensorVal();
  50.   Serial.print ("Status: ");
  51.   Serial.println (statusCache);
  52.  
  53.   if (statusCache == 1 && lastStatus != 1) {
  54.     // open
  55.     Serial.println ("Opening...");
  56.     digitalWrite (enableA, HIGH);
  57.     digitalWrite (pinA1, HIGH);
  58.     digitalWrite (pinA2, LOW);
  59.     delay(850); //calculated time for opening
  60.  
  61.     Serial.println ("Standby...");
  62.     Serial.println ("Waiting for interaction...");
  63.     digitalWrite (pinA1, LOW);
  64.     digitalWrite (pinA2, LOW);
  65.     lastStatus = 1;
  66.   }
  67.  
  68.   if (statusCache == 0 && lastStatus != 0) {
  69.     Serial.println ("Closing...");
  70.     digitalWrite (enableA, HIGH);
  71.     digitalWrite (pinA1, LOW);
  72.     digitalWrite (pinA2, HIGH);
  73.     delay (850);
  74.     digitalWrite (enableA, LOW);
  75.     lastStatus = 0;
  76.   }
  77.  
  78.  
  79.   delay (250); //delay 1/4 of second
  80.  
  81. }
  82.  
  83.  
  84. //read sesnor val and returns if to close or to open
  85. int getSensorVal () {
  86.   int stat;
  87.   //read analog sensor
  88.   sensorVal0 = analogRead(sensor0);
  89.   //print sensor value
  90.   Serial.println (sensorVal0);
  91.   if ((sensorVal0 < 700) || (sensorVal0 > 1010))
  92.     stat = 0; //to close
  93.   else
  94.     stat = 1; //open
  95.  
  96.   return stat;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement