Image of eBits Academy fundamentals illustration

Automatisk skraldespandsrobot

  • February 19, 2025
  • |
  • Jonas Rothausen

Alt bliver smartere, ikke? Så hvorfor ikke din skraldespand? Denne skraldespand åbner og lukker låget, når den registrerer noget foran sig. Du skal bare gå tættere på, så åbner den automatisk og venter på, at du giver den noget affald. Efter et stykke tid lukker den automatisk igen.

Lad os nu have det sjovt med at bygge den :D

Nødvendige komponenter

For at bygge dette projekt skal du bruge komponenterne nedenfor. De kan findes her på eBits.dk.

Antal

Komponentbillede

Komponenter

1

Arduino Uno

1

1 Ultralydssensor HC-SR04
1 Kabel fra 9V-batteri til 5.5mm DC-stik

7 Dupont-kabler
1 Skraldespand
1 9V-batteri

Skraldespanden kan laves af pap, eller du kan bruge en eksisterende, men låget skal være fladt, så det er nemt for servomotoren at åbne låget.

Vejledning

Du skal installere Arduino IDE fra dette link. Med det kan du programmere din Arduino Uno og mange andre mikrocontrollere.

Opsætning af Arduino Uno i Arduino IDE

Først skal du sætte din mikrocontroller op i Arduino IDE. Se dette link.

 

Opbygning af kredsløbet

  • Servoens data (gul) til Arduino-ben 3
  • Servoens VCC (rød) til Arduino 5v
  • Servoens stel (sort/grå) til Arduino Gnd
  • Ultralydssensorens trig til Arduino 6
  • Ultralydssensorens echo til Arduino 5
  • Vcc til Arduino 5v
  • Gnd til Arduino Gnd
  • 9V-batteri tilsluttet Arduino Uno

Programmering af Arduino

Koden fungerer sådan: Hvis den registrerer noget (bogstaveligt talt hvad som helst) inden for 25 cm, drejer servoen til 50 grader og skubber på skraldespandens låg, så det åbner. Den venter i tre sekunder og drejer derefter automatisk til 160 grader, så låget lukker.

#include <Servo.h>
    Servo servo;
int const trigPin = 6;
int const echoPin = 5;
void setup()
{
pinMode(trigPin, OUTPUT); 
pinMode(echoPin, INPUT); 
    servo.attach(3);
}
void loop()
{       int duration, distance;
digitalWrite(trigPin, HIGH); 
delay(1);
digitalWrite(trigPin, LOW);
// Measure the pulse input in echo pin
duration = pulseIn(echoPin, HIGH);
// Distance is half the duration devided by 29.1
distance = (duration/2) / 29.1;
// if distance less than 0.25 meter and more than 0 (0 or less means over range) 
if (distance <= 25 && distance >= 0) {
	servo.write(50);
    delay(3000);
} else {
	
	servo.write(160);
}
// Waiting 60 ms won't hurt any one
delay(60);
}

Placering af delene i skraldespanden

Denne servomotoren placeres under låget, og jeg har sat en plastikdel på servomotoren så den bedre kan åbne låget.

Batteriet og Arduinoen er inde i skraldespanden. Brug gerne længere kabler, så de ikke falder af, når der er noget i skraldespanden. Brug også en affaldspose, så Arduinoen ikke bliver beskidt.

 

Til sidst er ultralydssensoren placeret foran på skraldespanden, så sensoren kan registrere dig, når du vil bruge skraldespanden.

Video af funktionen

 

Efterlad en kommentar

Bemærk venligst, at kommentarer skal godkendes, før de offentliggøres.