Advertisement
Guest User

Untitled

a guest
Dec 10th, 2018
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.50 KB | None | 0 0
  1.  
  2.  
  3. #include <Wire.h>
  4. #include <MPU6050.h>
  5. #include <Servo.h>
  6.  
  7. MPU6050 mpu;
  8. Servo servo1;
  9.  
  10. void setup()
  11. {
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.   pinMode(6, OUTPUT);
  24.   pinMode(7, OUTPUT);
  25.   pinMode(8, OUTPUT);
  26.   pinMode(9, OUTPUT);
  27.   servo1.attach(5);
  28.   servo1.write(15);
  29.  
  30.   Serial.begin(115200);
  31.  
  32.   Serial.println("Initialize MPU6050");
  33.  
  34.   while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G))
  35.   {
  36.     Serial.println("Could not find a valid MPU6050 sensor, check wiring!");
  37.     delay(500);
  38.   }
  39.  
  40.   // If you want, you can set accelerometer offsets
  41.   // mpu.setAccelOffsetX();
  42.   // mpu.setAccelOffsetY();
  43.   // mpu.setAccelOffsetZ();
  44.  
  45.   checkSettings();
  46. }
  47.  
  48. void checkSettings()
  49. {
  50.   Serial.println();
  51.  
  52.   Serial.print(" * Sleep Mode:            ");
  53.   Serial.println(mpu.getSleepEnabled() ? "Enabled" : "Disabled");
  54.  
  55.   Serial.print(" * Clock Source:          ");
  56.   switch(mpu.getClockSource())
  57.   {
  58.     case MPU6050_CLOCK_KEEP_RESET:     Serial.println("Stops the clock and keeps the timing generator in reset"); break;
  59.     case MPU6050_CLOCK_EXTERNAL_19MHZ: Serial.println("PLL with external 19.2MHz reference"); break;
  60.     case MPU6050_CLOCK_EXTERNAL_32KHZ: Serial.println("PLL with external 32.768kHz reference"); break;
  61.     case MPU6050_CLOCK_PLL_ZGYRO:      Serial.println("PLL with Z axis gyroscope reference"); break;
  62.     case MPU6050_CLOCK_PLL_YGYRO:      Serial.println("PLL with Y axis gyroscope reference"); break;
  63.     case MPU6050_CLOCK_PLL_XGYRO:      Serial.println("PLL with X axis gyroscope reference"); break;
  64.     case MPU6050_CLOCK_INTERNAL_8MHZ:  Serial.println("Internal 8MHz oscillator"); break;
  65.   }
  66.  
  67.   Serial.print(" * Accelerometer:         ");
  68.   switch(mpu.getRange())
  69.   {
  70.     case MPU6050_RANGE_16G:            Serial.println("+/- 16 g"); break;
  71.     case MPU6050_RANGE_8G:             Serial.println("+/- 8 g"); break;
  72.     case MPU6050_RANGE_4G:             Serial.println("+/- 4 g"); break;
  73.     case MPU6050_RANGE_2G:             Serial.println("+/- 2 g"); break;
  74.   }  
  75.  
  76.   Serial.print(" * Accelerometer offsets: ");
  77.   Serial.print(mpu.getAccelOffsetX());
  78.   Serial.print(" / ");
  79.   Serial.print(mpu.getAccelOffsetY());
  80.   Serial.print(" / ");
  81.   Serial.println(mpu.getAccelOffsetZ());
  82.  
  83.   Serial.println();
  84. }
  85.  
  86. int vverx()
  87. {
  88.   int good_result = 0;
  89.   for (int p=0; p<5; p=p+1)
  90.   {
  91.     Vector  rawAccel = mpu.readRawAccel();
  92.  
  93.     if (rawAccel.XAxis > 6000)
  94.     {
  95.      good_result=good_result+1;
  96.      }
  97.      delay(40);
  98.   }
  99.  
  100.   Serial.println(good_result);
  101.  
  102.   if (good_result == 5)
  103.     return 1;
  104.  
  105.   return 0;
  106. }
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  int vniz()
  114. {
  115.   int good_result = 0;
  116.   for (int p=0; p<5; p=p+1)
  117.   {
  118.     Vector  rawAccel = mpu.readRawAccel();
  119.  
  120.     if (abs(rawAccel.XAxis) < 6000)
  121.     {
  122.      good_result=good_result+1;
  123.      }
  124.      delay(40);
  125.   }
  126.  
  127.   if (good_result == 5)
  128.     return 1;
  129.  
  130.   return 0;
  131. }
  132.  
  133.  
  134.  
  135.  
  136. int i = 0;
  137.  
  138. void loop()
  139. {
  140.  
  141.   digitalWrite(6, HIGH);
  142.   digitalWrite(7, HIGH);
  143.   digitalWrite(8, HIGH);
  144.   digitalWrite(9, HIGH);
  145.  
  146.  
  147.   Vector rawAccel = mpu.readRawAccel();
  148.  
  149.   while (vverx() == 0)
  150.   {
  151.      // do nothing
  152.   }
  153.  
  154.  
  155.  
  156.   Serial.println("vverh");/////////////
  157.   servo1.write(110);
  158.  
  159.  
  160.   while (vniz() == 0)
  161.   {
  162.    
  163.      // do nothing
  164.   }
  165.   delay(1000); // time to up
  166.  servo1.write(0);
  167.   Serial.println("vniz"); //////////////
  168.  
  169.   digitalWrite(6, LOW);
  170.   digitalWrite(7, LOW);
  171.   digitalWrite(8, LOW);
  172.   digitalWrite(9, LOW);
  173.  
  174.    delay(2000);
  175.  
  176.  
  177.   i = i + 1;    
  178.   Serial.println(i);
  179.  
  180.  
  181.  
  182.  
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement