marwanpro

samet capteur ir

May 16th, 2016
374
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.22 KB | None | 0 0
  1. // Programme Barrière Infrarouge
  2.  
  3.  
  4. const int IRSensorPin = A0; // Définition du port du capteur IR en A0 (Port Analogique)
  5. const int IRSensorPin2 = A1; // Définition du port du capteur IR en A1 (Port Analogique)
  6. const int LED = 13; // Définition du port de la LED
  7.  
  8. int IRValue; // Initialisation de la variable destiné à avoir la valeur Infrarouge
  9. int IRSensorValue; // Initialisation de la variable destiné à avoir la valeur Infrarouge de A0
  10. int IRSensorValue2; // Initialisation de la variable destiné à avoir la valeur Infrarouge de A1
  11.  
  12. float Vms; // Initialisation de Vms
  13. double D = 0.095; // Définition de D
  14.  
  15. // Initialisation de la variable destiné à retenir le temps avant une action
  16. unsigned long T1;
  17. unsigned long T2;
  18. unsigned long Tf;
  19.  
  20.  
  21. // Initialisation du port Serial et de la LED
  22. void setup() {
  23.   pinMode(LED, OUTPUT);
  24.   digitalWrite (LED, LOW);
  25.   Serial.begin (9600);
  26. }
  27.  
  28.  
  29. void loop () {
  30.   IRSensorValue = analogRead(IRSensorPin); // Lecture de A0 et enregistrement dans IRSensorValue
  31.   IRSensorValue2 = analogRead(IRSensorPin2); // Lecture de A1 et enregistrement dans IRSensorValue2
  32.  
  33.   delay(5); // Délai de 5ms
  34.  
  35.   // Si les deux capteurs sont en dessous de 1000 alors éteindre la LED
  36.   if (IRSensorValue < 1000 && IRSensorValue2 < 1000) { digitalWrite(LED, LOW); }
  37.   else { digitalWrite(LED, HIGH); }
  38.  
  39.   /* J'ai mis entre commentaire les 6 prochaines lignes, un else c'est plus simple
  40.   if (IRSensorValue > 1000)
  41.     digitalWrite(LED, HIGH);
  42.   if (IRSensorValue2 > 1000)
  43.     digitalWrite(LED, HIGH);
  44.   if (IRSensorValue2 > 1000 && IRSensorValue > 1000)
  45.     digitalWrite(LED, HIGH);
  46.   */
  47.  
  48.   // Millisecondes avant que le capteur A0 dépasse 1000
  49.   Serial.print(" T1= ");
  50.   while (analogRead (IRSensorPin) < 1000);
  51.   T1 = millis();
  52.   Serial.println(T1);
  53.  
  54.   // Millisecondes avant que le capteur A1 dépasse 1000
  55.   Serial.print(" T2= ");
  56.   while (analogRead (IRSensorPin2) < 1000);
  57.   T2 = millis();
  58.   Serial.println(T2);
  59.  
  60.   // Calcul de Delta de T2 et T1 dans Tf
  61.   Serial.print(" T= ");
  62.   Serial.println(T2 - T1);
  63.   Tf = T2 - T1;
  64.  
  65.   // Affichage de la vitesse en fonction de Tf et D
  66.   Serial.print(" vitesse (m/s) = ");
  67.   Vms = 1000 * (D / Tf);
  68.   Serial.println(Vms);
  69. }
Add Comment
Please, Sign In to add comment