Advertisement
Maderdash

MustCleanUp

Mar 27th, 2022
1,288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <SPI.h>
  2. #include <Wire.h>
  3. #include <Adafruit_GFX.h>
  4. #include <Adafruit_SSD1306.h>
  5. #include <Arduino.h>
  6. #define OLED_RESET 4
  7.  
  8. int IN1           = 4;  // MOTOR FOR GOING FORWARD
  9. int IN2           = 5;  // MOTOR FOR GOING BACKWARD
  10. int ENA           = 11;
  11. int SPEED         = 150;
  12. int trigpin       = 2;
  13. int trigpin2      = 6;
  14. int trigpin3      = 10;
  15. int echopin       = 3;
  16. int echopin2      = 7;
  17. int echopin3      = 11;
  18.  
  19. long duration     = 0;
  20. long distance     = 0;
  21. long UltraSensor1 = 0;
  22. long UltraSensor2 = 0;
  23. long UltraSensor3 = 0;
  24.  
  25. char data         = 0;
  26. String SerialData = "";
  27.  
  28. // trigpin,echopin = starting sensor
  29. // trigpin2, echopin2 = Open Door Sensor
  30. // trigpin3, echopin3 = Stop Door, move motor back to initial position sensor
  31.  
  32. Adafruit_SSD1306 display(OLED_RESET);
  33.  
  34. void SonarSensor(int trigPinSensor, int echoPinSensor){
  35.  
  36.   digitalWrite(trigPinSensor, LOW);   // put trigpin LOW
  37.   delayMicroseconds(2);               // wait 2 microseconds
  38.   digitalWrite(trigPinSensor, HIGH);  // switch trigpin HIGH
  39.   delayMicroseconds(10);              // wait 10 microseconds
  40.   digitalWrite(trigPinSensor, LOW);   // turn it LOW again
  41.  
  42.   duration = pulseIn(echoPinSensor, HIGH);
  43.   distance = (duration / 2) / 29.1;
  44. }
  45.  
  46.  
  47. void setup() {
  48.   display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  49.   display.clearDisplay();
  50.   delay(1);
  51.   pinMode(trigpin, OUTPUT);
  52.   pinMode(echopin, INPUT);
  53.   pinMode(IN1, OUTPUT);
  54.   pinMode(trigpin2, OUTPUT);
  55.   pinMode(echopin2, INPUT);
  56.   pinMode(IN2, OUTPUT);
  57.  
  58.   pinMode(ENA, OUTPUT);
  59.   analogWrite(ENA, SPEED);
  60.  
  61.   Serial.begin(9600);
  62. }
  63.  
  64. void loop(){
  65.  
  66.   SonarSensor(trigpin, echopin);
  67.   UltraSensor1 = distance;
  68.   SonarSensor(trigpin2, echopin2);
  69.   UltraSensor2 = distance;
  70.   SonarSensor(trigpin3, echopin3);
  71.   UltraSensor3 = distance;
  72.  
  73.   if (UltraSensor1 <= 5 && UltraSensor3 <= 10 && UltraSensor2 < 100) {
  74.     delay(500);
  75.     display.clearDisplay();
  76.     digitalWrite(IN1, LOW);
  77.     digitalWrite(IN2, LOW);
  78.     display.setTextSize(1.8);
  79.     display.setCursor(0, 0);
  80.     display.setTextColor(WHITE);
  81.     display.print("CLOSED");
  82.     display.display();
  83.   }  else if (IN1 == LOW && IN2 == LOW && UltraSensor3 >= 11 && UltraSensor1 > 6 && UltraSensor2 < 100) {
  84.     delay(500);
  85.     display.clearDisplay();
  86.     digitalWrite(IN2, LOW);
  87.     digitalWrite(IN1, HIGH);
  88.     display.setTextSize(1.8);
  89.     display.setTextColor(WHITE);
  90.     display.setCursor(0, 0);
  91.     display.print("OPENING");
  92.     display.display();
  93.   }  else if (IN1 == HIGH && IN2 == LOW && UltraSensor2 >= 100 && UltraSensor1 > 6 && UltraSensor3 >= 11) {
  94.     delay(500);
  95.     display.clearDisplay();
  96.     digitalWrite(IN1, LOW);
  97.     digitalWrite(IN2, HIGH);
  98.     display.setTextSize(1.8);
  99.     display.setTextColor(WHITE);
  100.     display.setCursor(0, 0);
  101.     display.print("RETURNING");
  102.     display.display();
  103.   } else {
  104.     delay(500);
  105.     display.clearDisplay();
  106.     digitalWrite(IN1, LOW);
  107.     digitalWrite(IN2, LOW);
  108.     display.setTextSize(1.8);
  109.     display.setCursor(0, 0);
  110.     display.setTextColor(WHITE);
  111.     display.print("CLOSED");
  112.     display.display();
  113.   }
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement