PROJECT PEMBUATAN MULTIKONTROLER MENGGUNAKAN ARDUINO UNO


 1. SISTEM PARKIR AMAN 

# memanfaatkan sensor jarak : HC-SR04 Ultrasonic Distance Sensor

# Kode Program : 

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

const int trigPin = 2;
const int echoPin = 3;
const int buzzer = 11;
const int led = 7;
const int button = 6;
int tombol = 0;

LiquidCrystal_I2C lcd(0x27,16,2);

long duration;
int distance;

void setup() {
  // Pengaturan Pin
  Serial.begin(9600); //Kecepatan pengiriman data 9600 bit per detik
  pinMode(trigPin, OUTPUT); //Setting Trigger sebagai output
  pinMode(echoPin, INPUT); //Setting Echo sebagai input
  pinMode(buzzer, OUTPUT); //Setting Buzzer sebagai output
  pinMode(led, OUTPUT); //Setting led sebagai output
  pinMode(button, INPUT); //Setting button sebagai input

   //Pengaturan LCD
  lcd.init(); //LCD mulai menyala
  lcd.backlight(); //Settingan agar lampu belakang LCD menyala
  lcd.setCursor(0,0); //Posisi karakter akan ditampilkan dalam LCD
  lcd.print("  Parkir Aman"); //Karakter yang akan ditampilkan dalam LCD
  lcd.setCursor(0,1); //Posisi karakter akan ditampilkan dalam LCD
  lcd.print("by Santri Fisika"); //Karakter yang akan ditampilkan dalam LCD
  delay(5000); //Durasi waktu karakter tampil dalam LCD yaitu 5 detik
}

void loop() {
  // Mengaktifkan sensor jarak
  lcd.clear(); //Hapus karakter di layar LCD
  digitalWrite(trigPin, LOW); //Trigger off mengirimkan sinyal
  delayMicroseconds(2); //Selang waktu 0.002 detik
  digitalWrite(trigPin, HIGH); //Trigger on mengirimkan sinyal
  delayMicroseconds(10); // Selang waktu 0.01 detik
  digitalWrite(trigPin, LOW); //Trigger off mengirimkan sinyal  
 
  duration = pulseIn(echoPin, HIGH); //Waktu tempuh sinyal dari dikirim Trigger, memantul, sampai diterima Echo  
  distance = duration * 0.0343/2; //Jarak = (Waktu x Kecepatan)/2

 // Menampilkan Hasil Pada LCD
  lcd.setCursor(0,0);
  lcd.print("Jarak: ");
  lcd.print(distance); //Menampilkan hasil pengukuran jarak
  lcd.print(" cm");
  delay(1000); //Karakter tampil selama 1 detik

 // Mengkondisikan Buzzer dan LED
  if(distance <=30){ //Jika jarak benda <= 30 cm
    tombol = digitalRead(button); //Membaca kondisi nilai pin digital 1/0
    if(tombol == HIGH){ //Jika tombol aktif atau dalam keadaan 1
      digitalWrite(led, LOW); //Lampu off
      noTone(buzzer); //Buzzer off
      delay(1000); //Lampu & buzzer off selama 0.5 detik
      digitalWrite(led, HIGH); //lampu on
      tone(buzzer, 700); //Buzzer on, f= 0.7 KHz  
      delay(200); //Lampu & buzzer on selama 0.2 detik
    }
    if(tombol == LOW){ //Jika tombol dalam keadaan 0
      digitalWrite(led, HIGH); //Lampu on
      tone(buzzer, 500); //Buzzer on, f = 0.5 KHz  
    }
    lcd.setCursor(0,1); //Menampilkan posisi karakter yang akan ditampilkan dalam LCD
    lcd.print("Terlalu Dekat");delay(1000); //Karakter akan tampil pada LCD selama 1 detik
  }
  if(distance >30){ //Jika jarak benda > 30 cm
    digitalWrite(led, LOW); //Lampu off
    noTone(buzzer); //Buzzer off
  }
}


2. SISTEM LAMPU OTOMATIS

- Menggunakan sensor cahaya : Photoresistor (LDR) Sensor

- Kode Program :

#include <Wire.h> 

#include <LiquidCrystal_I2C.h>

#define led 5

int cahaya;

LiquidCrystal_I2C lcd(0x27,16,2);


if(cahaya > 400){

digitalWrite(led, 1);

lcd.setCursor(0,1); 

lcd.print("Terlalu Terang");

 delay(500);

else {

digitalWrite(led, 0);

lcd.setCursor(0,1); 

lcd.print("Perlu Cahaya");

delay(500);

.


3. SISTEM OPERASI KIPAS OTOMATIS

# Menggunakan sensor suhu dan kelembaban : DHT22

# Kode Program :

#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "RGB.h"

#define DHTPIN 11
#define pinRed 3
#define pinGreen 5
#define pinBlue 6
#define pinBuzzer 9

DHT dht(DHTPIN, DHT22);
LiquidCrystal_I2C lcd(0x27,16,2);

float kelembaban, suhu;

void setup() {
  lcd.init();
  lcd.backlight();
  dht.begin();

  pinMode(pinBuzzer, OUTPUT);
}

void loop() {
  suhu = dht.readTemperature();
  kelembaban = dht.readHumidity();

  tampilLCD();
  indikatorSuhu();
}

void tampilLCD(){
  lcd.setCursor(0,0);
  lcd.print("Suhu: ");
  lcd.print(suhu);
  lcd.print(" C");
  lcd.print("    ");
  lcd.setCursor(0,1);
  lcd.print("Lembab: ");
  lcd.print(kelembaban);
  lcd.print(" %");
  lcd.print("    ");
  delay(200);
}

void indikatorSuhu(){
  noTone(pinBuzzer);
  if(suhu <= 13){
    ledRGB(pinRed, pinGreen, pinBlue, 0, 0, 255);
  } else if(suhu > 13 && suhu < 35){
    ledRGB(pinRed, pinGreen, pinBlue, 0, 255, 0);
  } else if (suhu >=35){
    ledRGB(pinRed, pinGreen, pinBlue, 255, 0, 0);
    tone(pinBuzzer, 1500);
  }
}

Untuk Video Penjelasannya in syaa Allah akan bisa di lihat di :

https://www.youtube.com/c/SantriFisika/

Tidak ada komentar:

Posting Komentar