Otomatisasi Keran Air Menggunakan HCSR04 dan Arduino Nano


Dalam proyek arduino ini, saya telah membuat keran air otomatis berhenti menggunakan sensor Arduino dan Ultrasonik. 
Ketika seseorang meletakkan tangan di bawah sensor keran air, air akan mulai mengalir dan setelah melepaskan tangan, air akan berhenti secara otomatis. Anda bisa dengan mudah membuat kran air otomatis ini di rumah.

Rangkaian Keran Air Berhenti Otomatis


Sirkuitnya sangat sederhana. Karena saya telah menggunakan katup solenoid 12v, maka suplai DC 12v dimasukkan ke input. Kemudian ubah 12v menjadi 5v dengan regulator 7805. Di sini saya telah menggunakan transistor daya TIP122 untuk mengontrol katup solenoid. Untuk kran air ini, jika menggunakan solenoid valve tegangan tinggi maka saya akan menyarankan menggunakan modul relay sebagai pengganti transistor.

Komponen yang Diperlukan


  1. Arduino Nano atau Arduino UNO
  2. Sensor Ultrasonik HC-SR04
  3. Katup solenoida 12v
  4. 7805 5v regulator
  5. Transistor daya TIP122 NPN
  6. resistor 1k
  7. 1N4007 dioda
  8. LED hijau
  9. kapasitor 22uF
  10. Adaptor DC 12v

Program Arduino untuk Sensor Keran Air

// define pins numbers
const int trigPin = 5;
const int echoPin = 4;
const int greenLedPin = 13;
const int switchPin = 2;

// define Trigger Distance in CM
const int trigDistance = 15; //change this value from 2 to 400

// define variables
long duration;
int distance;

void setup() {
  pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
  pinMode(echoPin, INPUT); // Sets the echoPin as an Input
  pinMode(switchPin, OUTPUT); // Sets the greenLedPin as an Output
  pinMode(greenLedPin, OUTPUT); // Sets the redLedPin as an Output
  Serial.begin(9600); // Starts the serial communication
}

void loop() {
  digitalWrite(trigPin, LOW); // Clears the trigPin
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH); // Sets the trigPin on HIGH state for 10 micro seconds
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);  
  duration = pulseIn(echoPin, HIGH); // Reads the echoPin, returns the sound wave travel time in microseconds  
  distance= duration*0.034/2; // Calculating the distance  
  Serial.print("Distance: "); // Prints the distance on the Serial Monitor
  Serial.println(distance);

  if (distance < trigDistance){
      digitalWrite(switchPin, HIGH);   // turn the water switch on
      digitalWrite(greenLedPin, HIGH);   // turn the green led on
      Serial.println("TAP open");
      delay(500);
  }
  else{
      digitalWrite(switchPin, LOW);   // turn the water switch OFF
      digitalWrite(greenLedPin, LOW);   // turn the green led OFF
      Serial.println("TAP close");
      delay(500);
  }
}

Post a Comment

Lebih baru Lebih lama