選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

78 行
1.8 KiB

  1. // ---------------------------------------------------------------- //
  2. // Arduino Ultrasoninc Sensor HC-SR04
  3. // Re-writed by Arbi Abdul Jabbaar
  4. // Using Arduino IDE 1.8.7
  5. // Using HC-SR04 Module
  6. // Tested on 17 September 2019
  7. // ---------------------------------------------------------------- //
  8. #define echoPin 2 // attach pin D2 Arduino to pin Echo of HC-SR04
  9. #define trigPin 3 //attach pin D3 Arduino to pin Trig of HC-SR04
  10. #include <Servo.h>
  11. Servo myServo;
  12. long duration;
  13. int distance;
  14. void setup() {
  15. pinMode(trigPin, OUTPUT);
  16. pinMode(echoPin, INPUT);
  17. pinMode(9, OUTPUT);
  18. pinMode(13, OUTPUT);
  19. digitalWrite(9, HIGH);
  20. Serial.begin(9600);
  21. Serial.println("Projet BTS Mathieu N.");
  22. Serial.println("BTS Ecole Technique EME");
  23. myServo.attach(10);
  24. myServo.write(5);
  25. }
  26. void loop() {
  27. digitalWrite(trigPin, LOW);
  28. delayMicroseconds(2);
  29. digitalWrite(trigPin, HIGH);
  30. delayMicroseconds(10);
  31. digitalWrite(trigPin, LOW);
  32. duration = pulseIn(echoPin, HIGH);
  33. distance = duration * 0.034 / 2;
  34. Serial.println(distance);
  35. myServo.write(5);
  36. if (distance < 30 && distance > 1) {
  37. delay(500);
  38. Serial.println("1ere verification validée, on passe à la suivante");
  39. digitalWrite(trigPin, LOW);
  40. delayMicroseconds(2);
  41. digitalWrite(trigPin, HIGH);
  42. delayMicroseconds(10);
  43. digitalWrite(trigPin, LOW);
  44. duration = pulseIn(echoPin, HIGH);
  45. distance = duration * 0.034 / 2;
  46. if (distance < 30 && distance > 1) {myServo.write(170); ouverture(); }
  47. }
  48. if (distance > 30) { myServo.write(170);}
  49. }
  50. void ouverture(){
  51. Serial.println("Ouverture du bouchon");
  52. digitalWrite(13, HIGH);
  53. delay(3000);
  54. Serial.println("Fermeture du bouchon");
  55. digitalWrite(13, LOW);
  56. delay(2000);
  57. }