25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

main_Serv_Sensor.ino 2.1 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. // Programme réalisé dans le cadre d'un projet BTS
  2. // Servo Moteur :
  3. // #define echoPin 2 // attach pin D2 Arduino to pin Echo of HC-SR04
  4. // #define trigPin 3 //attach pin D3 Arduino to pin Trig of HC-SR04
  5. #include <Servo.h>
  6. Servo myServo;
  7. const int trigPin = 9;
  8. const int echoPin = 10;
  9. const int servoPin = 6;
  10. const int alimentation_Servo = 12;
  11. long duration;
  12. int distance;
  13. void setup() {
  14. Serial.begin(9600);
  15. Serial.println("Projet BTS Mathieu N.");
  16. Serial.println("BTS Ecole Technique EME");
  17. Serial.println("--------------------------------------------------------------------------");
  18. Serial.println("Initialisation du programme");
  19. pinMode(trigPin, OUTPUT);
  20. Serial.print("Pin du Trigger du capteur ultrason : ");
  21. Serial.println(trigPin);
  22. Serial.print("Pin du Echo du capteur ultrason : ");
  23. Serial.println(echoPin);
  24. Serial.print("Pin d'alimentation du servomoteur : ");
  25. Serial.println(alimentation_Servo);
  26. Serial.print("Pin pour controler le servo : ");
  27. Serial.println(servoPin);
  28. delay(200);
  29. pinMode(echoPin, INPUT);
  30. pinMode(alimentation_Servo, OUTPUT);
  31. myServo.attach(servoPin);
  32. myServo.write(5);
  33. }
  34. void loop() {
  35. digitalWrite(trigPin, LOW);
  36. delayMicroseconds(2);
  37. digitalWrite(trigPin, HIGH);
  38. delayMicroseconds(10);
  39. digitalWrite(trigPin, LOW);
  40. duration = pulseIn(echoPin, HIGH);
  41. distance = duration * 0.034 / 2;
  42. Serial.print("Mesure de la valeur : ");
  43. Serial.println(distance);
  44. myServo.write(5);
  45. if (distance < 30 && distance > 1) {
  46. delay(100);
  47. Serial.println("1ere verification validée, on passe à la suivante");
  48. digitalWrite(trigPin, LOW);
  49. delayMicroseconds(2);
  50. digitalWrite(trigPin, HIGH);
  51. delayMicroseconds(10);
  52. digitalWrite(trigPin, LOW);
  53. duration = pulseIn(echoPin, HIGH);
  54. distance = duration * 0.034 / 2;
  55. if (distance < 30 && distance > 1) {myServo.write(170); ouverture(); }
  56. }
  57. if (distance > 30) { myServo.write(170);}
  58. }
  59. void ouverture(){
  60. Serial.println("Ouverture du bouchon");
  61. digitalWrite(13, HIGH);
  62. delay(3000);
  63. Serial.println("Fermeture du bouchon");
  64. digitalWrite(13, LOW);
  65. delay(2000);
  66. }