Advertisement
Guest User

Calcul_place_libre

a guest
Feb 22nd, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. float t=0; //initialisation à Zero de notre chronomètre
  2. float vitesse = 0.09; // vitesse du véhicule (ici, théorique)en m.s^-1
  3. float distance = 0; //initialisation de notre compteur de distance
  4. const int pingPin = 7; //ultrason
  5.  
  6. void setup() {
  7. Serial.begin(9600);
  8. }
  9.  
  10. void loop() {
  11. long duration, cm;
  12.   pinMode(pingPin, OUTPUT);
  13.   digitalWrite(pingPin, LOW);
  14.   delayMicroseconds(2);
  15.   digitalWrite(pingPin, HIGH);
  16.   delayMicroseconds(5);
  17.   digitalWrite(pingPin, LOW);
  18.  
  19.   pinMode(pingPin, INPUT);
  20.   duration = pulseIn(pingPin, HIGH);
  21. // cf codes précédents
  22.  
  23.   // convert the time into a distance
  24.   cm = microsecondsToCentimeters(duration);
  25.  
  26.   Serial.print("distance ultrason : ");
  27.   Serial.print(cm);
  28.   Serial.println(" cm");
  29.   delay(100); // délai pour faciliter la lecture dans la console
  30.  
  31.   while (cm <=30)
  32.   {
  33.  vitesse = 0.09;
  34.   Serial.print("vitesse du vehicule");
  35.   Serial.print(vitesse);
  36.   Serial.println("m.s-1"); // on affiche la vitesse sur la console à chaque étape
  37.   delay(100);
  38.   break; //sortir du while
  39.  
  40. }
  41.  
  42. if(cm>30) // ici, on estime arbitrairement, que si la valeur relevée par l'ultrason est supérieure à 30cm, une place est potentiellement disponible
  43. {
  44. mesure_temps_et_longueur();
  45. if(distance >0.26) // si la longueur de la place est supérieure à la longueur de l'empattement de la voiture
  46.   {
  47.   vitesse = 0 ;// le véhicule s'arrête et la voiture pourra commencer à se garer dés qu'elle a detecter une place de libre
  48.   }
  49. }
  50.  
  51. Serial.print("vitesse du vehicule");//on réaffiche la vitesse dans la console
  52. Serial.print(vitesse);
  53. Serial.println("m.s-1");
  54. }
  55.  
  56. void mesure_temps_et_longueur()
  57. {
  58.   t = t+0.01;
  59.   Serial.print("le temps est ");
  60.   Serial.print(t);
  61.   Serial.println("s "); // chronomètre qui nous permettra de calculer la distance
  62.  
  63.   if (vitesse !=0)
  64.   {
  65.   distance = vitesse*t; // calcul de la distance via le produit de la vitesse et du temps
  66.   }
  67. Serial.print("la longueur de la place est ");
  68. Serial.print(distance);
  69. Serial.println("m");
  70. delay(10);
  71.  
  72. }
  73. long microsecondsToCentimeters(long microseconds) {
  74.   // The speed of sound is 340 m/s or 29 microseconds per centimeter.
  75.   // The ping travels out and back, so to find the distance of the object we
  76.   // take half of the distance travelled.
  77.   return microseconds / 29 / 2;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement