Advertisement
safwan092

Untitled

Jan 23rd, 2024
16
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. #include <Servo.h>
  2. #include <Wire.h>
  3. #include <LiquidCrystal_I2C.h> //https://github.com/johnrickman/LiquidCrystal_I2C/
  4.  
  5. Servo myservo;
  6. LiquidCrystal_I2C lcd(0x27, 16, 2);
  7.  
  8. float DistanceSec = 20;
  9. int pos = 0;
  10. const int echoPin = A0;
  11. const int trigPin = A1;
  12. const int cameraPin = 10;
  13. const int motorPin = 11;
  14. const int ledPin = 12;
  15. const int buzzerPin = 13;
  16. float distanceCm, duration;
  17.  
  18. void setup() {
  19. myservo.attach(motorPin);
  20. lcd.init();
  21. lcd.init();
  22. lcd.backlight();
  23. pinMode(trigPin, OUTPUT);
  24. pinMode(echoPin, INPUT);
  25. pinMode(cameraPin, OUTPUT);
  26. pinMode(ledPin, OUTPUT);
  27. pinMode(buzzerPin, OUTPUT);
  28. digitalWrite(cameraPin, LOW);
  29. digitalWrite(ledPin, LOW);
  30. digitalWrite(buzzerPin, LOW);
  31. }
  32.  
  33. void loop() {
  34. for (pos = 0; pos <= 180; pos += 1) {
  35. myservo.write(pos);
  36. ReadUltrasonicSensor();
  37. ShowDataOnLCD();
  38. AlertCondition();
  39. delay(80);
  40. }
  41. for (pos = 180; pos >= 0; pos -= 1) {
  42. myservo.write(pos);
  43. ReadUltrasonicSensor();
  44. ShowDataOnLCD();
  45. AlertCondition();
  46. delay(80);
  47. }
  48. }
  49.  
  50. void ReadUltrasonicSensor() {
  51. digitalWrite(trigPin, LOW);
  52. delayMicroseconds(2);
  53. digitalWrite(trigPin, HIGH); //envoyer une impulsion de 10 micro seconds
  54. delayMicroseconds(10);
  55. digitalWrite(trigPin, LOW);
  56. duration = pulseIn(echoPin, HIGH);
  57. distanceCm = duration * 0.034 / 2;
  58. }
  59.  
  60. void ShowDataOnLCD() {
  61. lcd.setCursor(0, 0);
  62. lcd.print("Distance:");
  63. lcd.print(distanceCm);
  64. lcd.print("cm ");
  65. delay(10);
  66. lcd.setCursor(0, 1);
  67. lcd.print("Angle : ");
  68. lcd.print(pos);
  69. lcd.print(" deg ");
  70. }
  71.  
  72. void AlertCondition() {
  73. if (distanceCm <= DistanceSec) {
  74. digitalWrite(cameraPin, HIGH);
  75. digitalWrite(ledPin, HIGH);
  76. digitalWrite(buzzerPin, HIGH);
  77. delay(5000);
  78. digitalWrite(ledPin, LOW);
  79. digitalWrite(buzzerPin, LOW);
  80. digitalWrite(cameraPin, LOW);
  81. delay(2000);
  82. }
  83. else {
  84. digitalWrite(ledPin, LOW);
  85. digitalWrite(buzzerPin, LOW);
  86. digitalWrite(cameraPin, LOW);
  87. }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement