Advertisement
shadow7777

Untitled

Apr 16th, 2022
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.26 KB | None | 0 0
  1. #define left 7
  2. #define right 8
  3. #define button_left A5
  4. #define button_right A4
  5. #define button_stop A3
  6. #define velocity 6
  7. #define echo 2
  8. #define trigger 4
  9.  
  10.  
  11. #include <Wire.h>
  12. #include <LiquidCrystal_I2C.h>
  13.  
  14. LiquidCrystal_I2C lcd(0x27,16,2);
  15.  
  16.  
  17. void setup() {
  18.  
  19.  
  20.   pinMode(velocity, OUTPUT);
  21.   pinMode(left, OUTPUT);
  22.   pinMode(right, OUTPUT);
  23.   pinMode(button_left, INPUT_PULLUP);
  24.   pinMode(button_right, INPUT_PULLUP);
  25.   pinMode(button_stop, INPUT_PULLUP);
  26.   pinMode(trigger, OUTPUT);
  27.   pinMode(echo, INPUT);
  28.   lcd.init();
  29.   lcd.backlight();
  30.   lcd.setCursor(0,0);
  31.   lcd.print("Sterowanie brama");
  32.   lcd.setCursor(4,1);
  33.   lcd.print("garazowa");
  34.   delay(1000);
  35.   lcd.clear();
  36.   delay(100);
  37.  
  38. }
  39.  
  40. void loop()  
  41. {  
  42.  
  43. Serial.begin(9600);
  44.   buttons_function();
  45.   scope(0,20);
  46.   measure();
  47. delay(500);
  48.  
  49. }
  50.  
  51.  
  52.  
  53. void motor_left()
  54.  
  55. {
  56.  analogWrite(velocity, 190);
  57.   digitalWrite(left, LOW);
  58.   digitalWrite(right, HIGH);
  59.   delay(100);
  60. }
  61.  
  62.  
  63. void motor_right()
  64.  
  65. {
  66.  
  67.  analogWrite(velocity, 190);
  68.   digitalWrite(left, HIGH);
  69.   digitalWrite(right, LOW);
  70.   delay(100);
  71.  
  72. }
  73.  
  74. void motor_stop()
  75.  
  76. {
  77.  
  78.  analogWrite(velocity, 0);
  79.   digitalWrite(left,  LOW);
  80.   digitalWrite(right, LOW);
  81.   delay(1000);
  82. }
  83.  
  84. int measure() {
  85.   long l_time, distance;
  86.  
  87.   digitalWrite(trigger, LOW);
  88.   delayMicroseconds(2);
  89.   digitalWrite(trigger, HIGH);
  90.   delayMicroseconds(10);
  91.   digitalWrite(trigger, LOW);
  92.  
  93.   l_time = pulseIn(echo, HIGH);
  94.   distance = l_time / 58;
  95.  
  96.   return distance;
  97. }
  98.  
  99.  
  100. void scope(int a, int b) {
  101.   int howFar = measure();
  102.   if (howFar > 20)  {
  103.       lcd.clear();
  104.     lcd.setCursor(0,0);
  105.   lcd.setCursor(0,0);
  106.   lcd.print("Sterowanie brama");
  107.   lcd.setCursor(4,1);
  108.   lcd.print("garazowa");
  109.   delay(500);
  110.   } else
  111.   {
  112. lcd.clear();
  113.       lcd.setCursor(0,0);
  114.   lcd.print("Alarm!");
  115.   motor_stop();
  116.   delay(500);
  117.   }
  118. }
  119.  
  120.  
  121. void buttons_function()
  122.  
  123. {
  124.  
  125.    if(digitalRead(button_left)==LOW)
  126.    {
  127.  
  128.     motor_left();
  129.  
  130.    }
  131.     if(digitalRead(button_right)==LOW)
  132.    {
  133.  
  134.     motor_right();
  135.  
  136.    
  137.     }
  138.    
  139.  
  140.       if(digitalRead(button_right)==LOW)
  141.    {
  142.  
  143.     motor_right();
  144.  
  145.    
  146.     }
  147.          if(digitalRead(button_stop)==LOW)
  148.    {
  149.  
  150.     motor_stop();
  151.  
  152.    
  153.     }
  154.  
  155. }
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement