Smart Dustbin Arduino Code

#include <Servo.h>

Servo lidServo;

const int trigPin = 9;
const int echoPin = 10;
const int servoPin = 3;

long duration;
int distance;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);

  lidServo.attach(servoPin);
  lidServo.write(0);   // Lid closed

  Serial.begin(9600);
}

void loop() {

  // Send ultrasonic pulse
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Read echo
  duration = pulseIn(echoPin, HIGH);

  // Calculate distance in cm
  distance = duration * 0.034 / 2;

  Serial.print(“Distance: “);
  Serial.print(distance);
  Serial.println(” cm”);

  // If hand is detected within 15 cm
  if (distance > 0 && distance < 15) {

    lidServo.write(90);    // Open lid
    delay(3000);           // Keep open for 3 seconds

    lidServo.write(0);     // Close lid
  }

  delay(200);
}

Leave a Comment