25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

main_Serv_Sensor.ino 2.0 KiB

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