Advertisement
zockerlein

Abstandsmessung

Jun 20th, 2019
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.96 KB | None | 0 0
  1. #include <Servo.h>
  2.  
  3. Servo servo;
  4.  
  5.  
  6. //=========================================================================
  7. //===============================DEFINITIONEN==============================
  8. //=========================================================================
  9.  
  10.  
  11. #define triggerPin 7                            // Trigger-Pin des Ultraschallsensors an Pin7 des Arduino-Boards
  12. #define echoPin 6                               // Echo-Pin des Ultraschallsensors an Pin6 des Arduino-Boards
  13. #define anzahlMittelWerte 5                     // Anzahl an Messungen, über die gemittelt wird
  14. #define potiPin A0                              // Pin an den das Potentiometer angeschlossen wird
  15.  
  16.  
  17. //=========================================================================
  18. //============================GLOBALE VARIABLEN============================
  19. //=========================================================================
  20.  
  21.  
  22. // Positionsmessung
  23. int position = 0;                             // Errechnete Position
  24. int min = 0;                                  // minimale Position
  25. int max = 200;                                // maximale Position
  26.  
  27. int gemittelteposition = 0;                   // Gemittelter Wert
  28. int mittelarray[anzahlMittelWerte];           // Werte-Matrix ungemittelter Werte
  29. int mittelzaehler = 0;
  30.  
  31. // Servo
  32. int servostellung = 0;
  33. int null = 0;                                   // Nur für Ausgabeformatierung
  34.  
  35. // Eingabe
  36. int sollwert = 0;
  37.  
  38. // Regelung
  39. float Kp = 0;
  40. float Ki = 0;
  41. float Kd = 0;
  42. float regeldifferenz = 0;
  43.  
  44.  
  45. //=========================================================================
  46. //==================================SETUP==================================
  47. //=========================================================================
  48.  
  49.  
  50. void setup()
  51. {
  52.   Serial.begin (115200);                       // Serielle kommunikation starten
  53.   pinMode(triggerPin, OUTPUT);                  // Trigger-Pin ist ein Ausgang
  54.   pinMode(echoPin, INPUT);                      // Echo-Pin ist ein Eingang
  55.   pinMode(potiPin, INPUT);                      // Sollwert-Pin ist ein Eingang
  56.  
  57.   servo.attach(9);                              //PWM-Signal für Servo an Pin 9
  58.  
  59.   for (int i = 0; i < anzahlMittelWerte; i++)   //Mittelwert-Array "nullen"
  60.   {
  61.     mittelarray[i] = 0;
  62.   }
  63.  
  64.   //referenzAnfahren();                         //min und max setzen (Anlernen)
  65. }
  66.  
  67.  
  68. //=========================================================================
  69. //==================================LOOP===================================
  70. //=========================================================================
  71.  
  72.  
  73. void loop()
  74. {
  75.   position = messung();
  76.   gemittelteposition = mittelung(position);
  77.   //sollwert = potiAuslesen(min, max);
  78.   //regeldifferenz = gemittelteposition - sollwert;
  79.  
  80.   //servostellung = servoBerechnen(gemittelteposition);
  81.  
  82.   serielleAusgabe(position, gemittelteposition, servostellung);
  83.   //servoStellen(servostellung);
  84.   delay(20);
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement