Sebelumnya jika mau ngecek hasil videonya silahkan klik link video berikut ini yaa, sudah saya posting di youtube.
Hasil uji coba ada di video berikut ini, silahkan klik
1. Satu buah arduino, 1 servo sg90 dan 1 sensor proximity d80nk, dirakit menjadi satu tempat sampah otomatis pake program ini :
_________________
#include <Servo.h>
const int pinSensor = 2;
const int pinServo = 9;
Servo myservo;
// Pengaturan kecepatan (semakin besar angka delay, semakin pelan)
int kecepatan = 0;
void setup() {
pinMode(pinSensor, INPUT);
myservo.attach(pinServo);
myservo.write(0); // Posisi awal tertutup
Serial.begin(9600);
}
void loop() {
int deteksi = digitalRead(pinSensor);
if (deteksi == LOW) {
Serial.println("Membuka perlahan...");
// Gerakan membuka dari 0 ke 90 derajat secara bertahap
for (int sudut = 0; sudut <= 60; sudut++) {
myservo.write(sudut);
delay(kecepatan); // Jeda tiap 1 derajat
}
delay(3000); // Biarkan sampah masuk (5 detik)
Serial.println("Menutup perlahan...");
// Gerakan menutup dari 90 kembali ke 0 derajat secara bertahap
for (int sudut = 60; sudut >= 0; sudut--) {
myservo.write(sudut);
delay(kecepatan);
}
}
delay(100);
}
2. Satu buah arduino, dirakit untuk 2 tempat sampah otomatis, jadi masing2 tempat sampah cukup menggunakan 1 kontroler arduino, bisa pake program ini :
#include <Servo.h>
// Definisi Pin Sensor
const int pinSensorA = 2;
const int pinSensorB = 3;
// Objek Servo
Servo servoA;
Servo servoB;
// Definisi Pin Servo
const int pinServoA = 4;
const int pinServoB = 5;
const int pinbuzA = 12;
const int pinbuzB = 13;
// Variabel status sensor (D80NK output LOW saat mendeteksi objek)
int statusA = HIGH;
int statusB = HIGH;
void setup() {
// Inisialisasi Servo
servoA.attach(pinServoA);
servoB.attach(pinServoB);
// Posisi awal tertutup (0 derajat)
servoA.write(5);
servoB.write(5);
// Inisialisasi Sensor (D80NK menggunakan internal pull-up lebih stabil)
pinMode(pinSensorA, INPUT);
pinMode(pinSensorB, INPUT);
pinMode(pinbuzA, OUTPUT);
pinMode(pinbuzB, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Baca sinyal dari sensor
statusA = digitalRead(pinSensorA);
statusB = digitalRead(pinSensorB);
// LOGIKA TEMPAT SAMPAH A
if (statusA == LOW) { // Jika mendeteksi objek
Serial.println("Sensor A Mendeteksi Sampah!");
servoA.write(60); // Buka 60 derajat
digitalWrite(pinbuzA, HIGH); // bunyi nyala alarm
delay(2000); // Tunggu 3 detik sebelum menutup kembali
} else {
servoA.write(5); // Tetap tertutup
digitalWrite(pinbuzA, LOW);
Serial.println("Menutup tong A!");
}
// LOGIKA TEMPAT SAMPAH B
if (statusB == LOW) { // Jika mendeteksi objek
Serial.println("Sensor B Mendeteksi Sampah!");
servoB.write(80); // Buka 80 derajat
digitalWrite(pinbuzB, HIGH); // bunyi nyala alarm
delay(2000); // Tunggu 3 detik sebelum menutup kembali
} else {
servoB.write(5); // Tetap tertutup
digitalWrite(pinbuzB, LOW);
Serial.println("Menutup tong B!");
}
delay(100); // Delay kecil untuk stabilitas pembacaan
}
Berikut ini dokumen foto hasil project tempat sampah sensor otomatis :
Hasil uji coba ada di video berikut ini, silahkan klik
Semoga bermanfaat !!
by Mening Maker




No comments:
Post a Comment