Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Servo.h>
- int maxDistanceDoorEmpty = 30;
- int flag = 0;
- #define trigPin 11
- #define echoPin 10
- #define servoPin 9
- Servo myservo;
- long duration;//1000 ms = 1 sec
- int distanceCM;
- void setup() {
- Serial.begin(9600);
- pinMode(trigPin, OUTPUT);
- pinMode(echoPin, INPUT);
- myservo.attach(servoPin);
- delay(1000);
- Serial.println("Setup Complete");
- }
- void loop() {
- messureDistance();
- if (distanceCM > maxDistanceDoorEmpty)
- distanceCM = maxDistanceDoorEmpty;
- distanceCM = map(distanceCM, 0, maxDistanceDoorEmpty, maxDistanceDoorEmpty, 0);
- Serial.print("Distance: ");
- Serial.println(distanceCM);
- if (distanceCM > 10 && distanceCM < 19)
- {
- Serial.println("protect");
- // protect child
- myservo.write(90);
- delay(500);
- flag = 1;
- }
- else if (distanceCM >= 19 || distanceCM < 10) {
- if (flag == 0) {
- // normal people walking
- Serial.println("normal");
- myservo.write(0);
- delay(50);
- }
- }
- }//end of loop
- void messureDistance() {
- digitalWrite(trigPin, LOW);
- delayMicroseconds(2);
- digitalWrite(trigPin, HIGH);
- delayMicroseconds(10);
- digitalWrite(trigPin, LOW);
- duration = pulseIn(echoPin, HIGH);//1000 ms = 1 sec
- distanceCM = duration * 0.034 / 2;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement