zockerlein

Scanner

Mar 15th, 2020
531
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.11 KB | None | 0 0
  1. #include <Servo.h>
  2. #include <Wire.h>
  3. #include <VL53L1X.h>
  4.  
  5.  
  6. Servo phiservo;
  7. Servo etaservo;
  8. VL53L1X sensor;
  9.  
  10. int phi = 0;
  11. int eta = 0;
  12. int r[180];
  13. int i = 0;
  14.  
  15.  
  16. void excelAusgabe();
  17.  
  18. void setup() {
  19.   Serial.begin(2000000);
  20.   //  Serial.println("Setup gestartet!");
  21.  
  22.   Wire.begin();
  23.   Wire.setClock(400000); // use 400 kHz I2C
  24.  
  25.   sensor.setTimeout(5000);
  26.   if (!sensor.init())
  27.   {
  28.     Serial.println("Failed to detect and initialize sensor!");
  29.     while (1);
  30.   }
  31.  
  32.   sensor.setDistanceMode(VL53L1X::Long);
  33.   sensor.setMeasurementTimingBudget(50000);
  34.  
  35.   //excelSetup();
  36.  
  37.   phiservo.attach(D3);
  38.   phiservo.write(0);
  39.   etaservo.attach(D4);
  40.   etaservo.write(0);
  41.  
  42.   sensor.startContinuous(50);
  43.  
  44.  
  45. }
  46.  
  47. void loop() {
  48.   for (eta = 45; eta <= 135; eta += 1)
  49.   {
  50.     etaservo.write(eta);                       // tell servo to go to position in variable 'pos'
  51.     delay(15);
  52.     phi = 175;
  53.  
  54.     if (eta == 45)
  55.     {
  56.       Serial.print("warte auf eta...");
  57.       Serial.println();
  58.       delay(100);
  59.     }
  60.     i = 0;
  61.     phiservo.write(175);                       // tell servo to go to position in variable 'pos'
  62.     delay(500);
  63.     for (phi = 175; phi >= 5; phi -= 1)       // goes from 0 degrees to 180 degrees in steps of 1 degree
  64.     {
  65.       phiservo.write(phi);                       // tell servo to go to position in variable 'pos'
  66.       delay(15);
  67.       etaservo.write(eta);                       // tell servo to go to position in variable 'pos'
  68.  
  69.       while (sensor.dataReady() == false)
  70.       {
  71.         delay(1);
  72.       }
  73.  
  74.       sensor.read();
  75.  
  76.       r[i] = sensor.ranging_data.range_mm;
  77.  
  78.       if (VL53L1X::rangeStatusToString(sensor.ranging_data.range_status) == "wrap target fail")
  79.       {
  80.         r[i] = 0;
  81.       }
  82.  
  83.       else if (r[i] > 4000)
  84.       {
  85.         r[i] = 0;
  86.       }
  87.  
  88.       else if (sensor.timeoutOccurred())
  89.       {
  90.         r[i] = 0;
  91.       }
  92.       //      Serial.print(r[i]);
  93.       //      Serial.println();
  94.  
  95.       Serial.print(i);
  96.       Serial.print(",");
  97.       Serial.print(r[i]);
  98.       Serial.println();
  99.  
  100.       i++;
  101.     }
  102.     //excelAusgabe();
  103.   }
  104. }
Advertisement
Add Comment
Please, Sign In to add comment