Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <IRremote.h>
  2. int IRPin = 7;
  3. int greenLED = 3;
  4. int yellowLED = 4;
  5. int redLED = 5;
  6. int rightForward = 13;
  7. int rightBackward = 12;
  8. int leftForward = 11;
  9. int leftBackward = 10;
  10. int leftFan = 2;
  11. int rightFan = 8;
  12.  
  13. IRrecv irrecv(IRPin);
  14. decode_results results;
  15.  
  16.  
  17. void setup() {
  18.   pinMode(greenLED, OUTPUT);
  19.   pinMode(yellowLED, OUTPUT);
  20.   pinMode(redLED, OUTPUT);
  21.   pinMode(rightForward, OUTPUT);
  22.   pinMode(rightBackward, OUTPUT);
  23.   pinMode(leftBackward, OUTPUT);
  24.   pinMode(leftForward, OUTPUT);
  25.   pinMode(leftFan, OUTPUT);
  26.   pinMode(rightFan, OUTPUT);
  27.   ledDebug(-2, 4, true, 0.5);
  28.   //Inital Check of LED
  29.   irrecv.enableIRIn();
  30.   activateLeftFan(2);
  31.   activateRightFan(2);
  32.  
  33.   /*
  34.   moveLeft(2.0);
  35.   moveRight(2.0);
  36.   moveForward(2.0);
  37.   moveBackward(2.0);
  38.   tiltLeft(2.0);
  39.   tiltRight(2.0);
  40.   */
  41. }
  42.  
  43.  
  44. void loop() {
  45.   digitalWrite(greenLED, HIGH);
  46.   if (irrecv.decode(&results)) {
  47.   }
  48. }
  49.  
  50.  
  51. void activateLeftFan(double duration) {
  52.   long startTime = millis();
  53.   ledDebug(2, duration, true, 0.7);
  54.   while ((duration == -1) ? true : millis() < startTime + duration * 1000) {
  55.     digitalWrite(leftFan, HIGH);
  56.   }
  57. }
  58.  
  59. void activateRightFan(double duration) {
  60.   long startTime = millis();
  61.   ledDebug(2, duration, true, 0.2);
  62.   while ((duration == -1) ? true : millis() < startTime + duration * 1000) {
  63.     digitalWrite(rightFan, HIGH);
  64.   }
  65. }
  66.  
  67.  
  68. void moveLeft(double duration) {
  69.   long startTime = millis();
  70.   ledDebug(1, duration, true, 0.7);
  71.   while ((duration == -1) ? true : millis() < startTime + duration * 1000) {
  72.     digitalWrite(rightForward, HIGH);
  73.   }
  74.  
  75. }
  76. void moveRight(double duration) {
  77.   long startTime = millis();
  78.   ledDebug(1, duration, true, 0.7);
  79.   while ((duration == -1) ? true : millis() < startTime + duration * 1000) {
  80.     digitalWrite(leftForward, HIGH);
  81.   }
  82. }
  83. void moveForward(double duration) {
  84.  
  85.   long startTime = millis();
  86.   ledDebug(1, duration, true, 0.2);
  87.   while ((duration == -1) ? true : millis() < startTime + duration * 1000) {
  88.     digitalWrite(rightForward, HIGH);
  89.     digitalWrite(leftForward, HIGH);
  90.   }
  91. }
  92. void moveBackward(double duration) {
  93.  
  94.   long startTime = millis();
  95.   ledDebug(1, duration, true, 0.7);
  96.   while ((duration == -1) ? true : millis() < startTime + duration * 1000) {
  97.     digitalWrite(rightForward, HIGH);
  98.   }
  99.  
  100. }
  101.  
  102. void tiltLeft(double duration) {
  103.   long startTime = millis();
  104.   ledDebug(1, duration, true, 0.2);
  105.   while ((duration == -1) ? true : millis() < startTime + duration * 1000) {
  106.     digitalWrite(rightForward, HIGH);
  107.     digitalWrite(leftForward, LOW);
  108.   }
  109.  
  110. }
  111.  
  112. void tiltRight(double duration) {
  113.   long startTime = millis();
  114.   ledDebug(1, duration, true, 0.2);
  115.   while ((duration == -1) ? true : millis() < startTime + duration * 1000) {
  116.     digitalWrite(rightForward, LOW);
  117.     digitalWrite(leftForward, HIGH);
  118.   }
  119. }
  120.  
  121. void ledDebug(int code, double duration) {
  122.   long startTime = millis();
  123.   while ((duration == -1) ? true : millis() < startTime + duration * 1000) {
  124.     Serial.println("Running");
  125.     switch (code) {
  126.       case 0:
  127.         digitalWrite(greenLED, HIGH);
  128.         break;
  129.       case 1:
  130.         digitalWrite(yellowLED, HIGH);
  131.         break;
  132.       case 2:
  133.         digitalWrite(redLED, HIGH);
  134.         break;
  135.       case -1:
  136.         digitalWrite(greenLED, LOW);
  137.         digitalWrite(yellowLED, LOW);
  138.         digitalWrite(redLED, LOW);
  139.         break;
  140.       case -2:
  141.         digitalWrite(greenLED, HIGH);
  142.         digitalWrite(yellowLED, HIGH);
  143.         digitalWrite(redLED, HIGH);
  144.         break;
  145.       default:
  146.         Serial.println("Unknown debug code.");
  147.         return;
  148.     }
  149.   } //Reset to off.
  150.   digitalWrite(greenLED, LOW);
  151.   digitalWrite(yellowLED, LOW);
  152.   digitalWrite(redLED, LOW);
  153. }
  154.  
  155. void ledDebug(int code, double duration, boolean toBlink, double delay) {
  156.   long startTime = millis();
  157.   long endTime = millis() + duration * 1000;
  158.   int index = 0;
  159.   while (millis() < endTime) {
  160.     if (millis() - delay * 1000 != startTime) {
  161.       continue;
  162.     }
  163.     if (index == 1) {
  164.       index = 0;
  165.     } else {
  166.       index = 1;
  167.     }
  168.     switch (code) {
  169.       case 0:
  170.         if (toBlink) {
  171.           if (index == 1) {
  172.             digitalWrite(greenLED, HIGH);
  173.           }
  174.           else {
  175.             digitalWrite(greenLED, LOW);
  176.           }
  177.           break;
  178.         }
  179.         digitalWrite(greenLED, HIGH);
  180.         break;
  181.       case 1:
  182.         if (toBlink) {
  183.           if (index == 1) {
  184.             digitalWrite(yellowLED, HIGH);
  185.           }
  186.           else {
  187.             digitalWrite(yellowLED, LOW);
  188.           }
  189.         }
  190.         digitalWrite(yellowLED, HIGH);
  191.         break;
  192.       case 2:
  193.         if (toBlink) {
  194.           if (index == 1) {
  195.             digitalWrite(redLED, HIGH);
  196.           }
  197.           else {
  198.             digitalWrite(redLED, LOW);
  199.           }
  200.           break;
  201.         }
  202.         digitalWrite(redLED, HIGH);
  203.         break;
  204.       case -2:
  205.         digitalWrite(greenLED, HIGH);
  206.         digitalWrite(yellowLED, HIGH);
  207.         digitalWrite(redLED, HIGH);
  208.         break;
  209.       case -1:
  210.         digitalWrite(greenLED, LOW);
  211.         digitalWrite(yellowLED, LOW);
  212.         digitalWrite(redLED, LOW);
  213.         break;
  214.       default:
  215.         Serial.println("Unknown debug code.");
  216.         break;
  217.     }
  218.   }
  219.   digitalWrite(greenLED, LOW);
  220.   digitalWrite(yellowLED, LOW);
  221.   digitalWrite(redLED, LOW);
  222. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement