Yuk berkontribusi, menjadi akselerator IPTEK anak bangsa !

Breaking News

Cara Bikin Hand Sanitizer Otomatis Tanpa Menyentuh Pakai Arduino

Semakin maraknya wabah virus corona membuat orang berbondong-bondong membuat hand sanitizer. Namun dalam penggunaannya, orang seringkali mengabaikan bahwa saat menekan hand sanitizer masih ada kontak langsung dengan tangan. Dan bisa jadi tempat menekan itu adalah sarang virus dan bakteri.

Viral di media sosial, seorang anak membuat proyek arduino yang mampu mengeluarkan cairan hand sanitizer tanpa menyentuh. Alat ini dilengkapi sensor ultrasonik yang fungsinya untuk mendeteksi gerak berdasarkan jarak benda. Sensor ini nantinya akan menjadi sinyal input yang selanjutnya diolah oleh arduino untuk mengontrol motor servo dalam menggerakkan tombol pada hand sanitizer. Gimana sih cara pembuatannya ? Yuk simak...

Dalam vide tersebut alat yang digunakan adalah motor servo 2 arah, arduino nano / mega, sensor ultrasonik, kabel dan botol hand sanitizer.

Langkah pertama, susun rangkaian seperti pada gambar.

Keterangan gambar :

  • Pin 5V pada arduino hubungkan pada VCC motor servo dan VCC pada sensor ultrasonik
  • Pin GND (Ground) pada arduino hubungkan dengan ground pada motor servo dan ground pada sensor ultrasonik.

Keterangan Sensor Ultrasonik:

  • Vcc ke 5V
  • Trig ke Pin 11
  • Echo ke Pin 12
  • Gnd ke Gnd (Ground)

Keterangan Motor Servo:

  • Kabel Merah ke 5 V
  • Kabel Kuning ke Pin 9
  • Kabel Hitan ke Gnd (Ground)

Setelah itu sambungkan arduino pada laptop dengan kabel serial

Download dan intall program arduino

Setelah terinstall, buka dan jalankan program

Klik menu "tools" --> Board --> Arduino Uno

Klik menu "tools" --> Port --> pilih port yang ada di komputer anda

Masukkan program yang ada di bawah ini :

#include <Servo.h>
// membuat nama objek servo untuk pengontrolan servo 
Servo myservo;          
// variable
int pos = 0;
int trig= 11;            // membuat varibel trig yang di set ke-pin 3
int echo= 12;            // membuat variabel echo yang di set ke-pin 2 
long durasi;             // membuat variabel durasi
int jarak;               // membuat variabel jarak
int pinSpeaker= 8;       // membuat variabel Buzzer yang di set ke-pin 8

void setup() {
  pinMode(trig, OUTPUT);    // set pin trig menjadi OUTPUT
  pinMode(echo, INPUT);     // set pin echo menjadi INPUT
  pinMode(pinSpeaker, OUTPUT);  // set pin buzzer menjadi OUTPUT
  Serial.begin(9600);       // digunakan untuk komunikasi Serial dengan komputer
  myservo.attach(9);        // objek servo diletakan pada pin 9 
}

void loop() {
  // start dari 0 derajar sampai 180 derajat 
 for(pos = 0; pos < 180; pos += 1)  
 {
  // pada posisi 1 derajat
  // memberitahu servo untuk pergi ke posisi  'pos'
  myservo.write(pos);
  // tunggu 50ms untuk pencapaian  posisi servo    
  delay(50);
  jarak = calculateDistance();    // mencatat jarak
  if(jarak <= 10)                 // Ketika ada objek musuh mendekat dengan jarak kurang dari 10 cm dari Sensor Ultrasonik maka Buzzer akan menyala
  {
    digitalWrite(pinSpeaker, HIGH);
  }else{
    digitalWrite(pinSpeaker, LOW);
  }
 } 
 // start dari 180 derajat ke 0 derajat 
 for(pos = 180; pos>=1; pos-=1)  
 {
  // memberitahu servo untuk pergi ke posisi  'pos'                                
  myservo.write(pos);                 
  // tunggu 50ms untuk pencapaian  posisi servo    
  delay(50);
  jarak = calculateDistance();    // mencatat jarak          
  if(jarak <= 10)                 // Ketika ada objek musuh mendekat dengan jarak kurang dari 10 cm dari Sensor Ultrasonik maka Buzzer akan menyala
  {
    digitalWrite(pinSpeaker, HIGH);
  }else{
    digitalWrite(pinSpeaker, LOW);
  } 
 }
}

void playTone(long duration, int freq) {
    duration *= 1000;
    int period = (1.0 / freq) * 1000000;
    long elapsed_time = 0;
    while (elapsed_time < duration) {
        digitalWrite(pinSpeaker,HIGH);
        delayMicroseconds(period / 2);
        digitalWrite(pinSpeaker, LOW);
        delayMicroseconds(period / 2);
        elapsed_time += (period);
    }
}

int calculateDistance(){
  // program dibawah ini agar trigger memancarakan suara ultrasonic
  digitalWrite(trig, LOW);
  delayMicroseconds(2);
  digitalWrite(trig, HIGH);
  delayMicroseconds(10);
  digitalWrite(trig, LOW);
  delayMicroseconds(8);
  
  durasi= pulseIn(echo, HIGH);  // menerima suara ultrasonic
  jarak= (durasi/2) / 29.1;     // mengubah durasi menjadi jarak (cm)
  Serial.println(jarak);        // menampilkan jarak pada Serial Monitor
}

SELAMAT MENCOBA :)

Source : create.arduino.cc

ARTIKEL TERKAIT

Profile Kontributor

arka

Surabaya - Kupang

“#SuccessBefore30”