Allt blir smartare, eller hur? Så varför inte din soptunna? Den här soptunnan öppnar och stänger locket när den upptäcker något framför sig. Du behöver bara gå närmare så öppnas den automatiskt och väntar på att du matar den med skräp. Efter en viss tid stängs den automatiskt igen.
Nu ska vi ha kul och bygga den :D
Komponenter som behövs
För att bygga detta projekt behöver du komponenterna nedan. De finns här på eBits.dk.
|
Antal |
Komponentbild |
Komponenter |
|
1 |
![]() |
Arduino Uno |
|
1 |
![]() |
|
| 1 | ![]() |
Ultraljudssensor HC-SR04 |
| 1 | ![]() |
Kabel från 9V-batteri till 5.5mm DC-kontakt |
| 7 | ![]() |
Dupont-kablar |
| 1 | Soptunna | |
| 1 | 9V-batteri |
Soptunnan kan göras av kartong eller så kan du använda en befintlig, men locket behöver vara plant så att det blir enkelt för servomotorn att öppna locket.
Guide
Du behöver installera Arduino IDE via denna länk. Med det kan du programmera din Arduino Uno och många andra mikrokontroller.
Konfigurera Arduino Uno i Arduino IDE
Först behöver du konfigurera din mikrokontroller i Arduino IDE. Se denna länk.
Bygg kretsen

- Servons data (gul) till Arduino-stift 3
- Servons VCC (röd) till Arduino 5v
- Servons jord (svart/grå) till Arduino Gnd
- Ultraljudssensorns trig till Arduino 6
- Ultraljudssensorns echo till Arduino 5
- Vcc till Arduino 5v
- Gnd till Arduino Gnd
- 9V-batteri anslutet till Arduino Uno
Programmera Arduino
Koden fungerar så här: Om den upptäcker något (bokstavligen vad som helst) inom 25 cm går servon till 50 grader och trycker på soptunnans lock så att det öppnas. Den väntar i tre sekunder och vrider sig sedan automatiskt till 160 grader så att locket stängs.
#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);
}
Placera delarna i soptunnan

Denna servomotorn placeras under locket, och jag har satt en plastdel på servomotorn så att den lättare kan öppna locket.

Batteriet och Arduino finns inuti soptunnan. Använd gärna längre kablar så att de inte lossnar när soptunnan innehåller skräp. Använd också en soppåse så att Arduino inte blir smutsig.

Slutligen sitter ultraljudssensorn på soptunnans framsida så att sensorn kan upptäcka dig när du vill använda soptunnan.
Video av funktionen




