• Arduino
    • Sensor
    • program Arduino
  • Project
  • Produk
  • IOT
Jumat, Oktober 3, 2025
mikroavr.com
No Result
View All Result
  • Login
  • Arduino
    • Sensor
    • program Arduino
  • Project
  • Produk
  • IOT
  • Arduino
    • Sensor
    • program Arduino
  • Project
  • Produk
  • IOT
No Result
View All Result
mikroavr
No Result
View All Result
Home Arduino

4 Contoh Kasus Kontrol Lampu Otomatis Menggunakan Arduino

Jimmi Sitepu by Jimmi Sitepu
April 24, 2019
0 0
0
4 Contoh Kasus Kontrol Lampu Otomatis Menggunakan Arduino
41
SHARES
13.8k
VIEWS
Share on FacebookShare on Twitter

Kontrol Lampu Otomatis

Overview

Kontrol Lampu Otomatis? Otomatis adalah sebuah aksi yang terjadi dengan sendiri nya dengan kondisi atau keadaan tertentu. Otomatis ini juga bisa menggantikan manusia dalam pengoprasian nya. Contoh kali ini adalah kontrol lampu otomatis.

Dalam kondisi nyata, ketika malam misal nya, kita ( manusia ) menghidupkan lampu dengan switch, ketika terang mematikan lampu. Nah peran manusia ini akan di gantikan oleh sebuah alat untuk menghidupkan lampu dengan sendiri nya. Pengantian peran ini bisa di sebut dengan Otomatis.

READ ALSO

4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

Tutorial Menggunakan Weather Station DFRobot SEN0186 dengan Arduino ESP32

kontrol-lampu-otomatis

Otomatis ini memiliki Triger dalam kendali nya, pemicu, apa yang membuat dia menyalakan mau pun mematikan. Pada contoh tutorial dari mikroavr kali ini, ada 4 triger yang akan memicu lampu menyala secara otomatis, yuk kita bahas satu satu contoh nya.

Otomatis dengan Sensor Cahaya

Kontrol Lampu Otomatis dengan sensor cahaya adalah contoh otomatis yang sangat sederhana. Ada dua metode sederhana disini, yang pertama menggunakan rangkaian analog, dan yang kedua menggunakan Mikrokontroller ( contoh nya Arduino ).

Rangkaian Analog

Berikut Rangkaian analog kontrol otomatis nya,

relay-ldr

Pada rangkaian di atas, trimpot pada pembagi tegangan LDR akan mengatur nilai intensitas cahaya yang akan di terima oleh LDR sebagai penentu apakah relah akan aktif atau relay akan on. Pada rangkain di atas sifat nya baku, ada kesulitan sendiri jika ingin mengembangkanya menjadi lebih luas. Namun cost atau biaya pembuatan alat akan semakin kecil.

Rangkaian LDR Arduino

Nah selanjut nya bagaimana kah kontrol lampu otomatis menggunakan LDR dengan modul belajar Arduino kita?

output sensor LDR dan pembagi tegangan ini akan kita hubungkan ke pin Analog A0 Arduino Nano. Kita akan membahas fungsi analogRead disini. Jika teman-teman ingin belajar teori dasar tentang analogRead. cukup Tekan tombol merah di bawa ini

analogRead Arduino

Rangkaian nya sebagagai berikut


Tugas kita selanjut nya adalah membaca output dari sensor LDR tersebut. Yuk kita buat program nya.

Program baca sensor LDR

karena output rangkaian sensor LDR di hubungkan ke pin A0, maka akan kita baca data ADC nya di pin A0. Program analisa output sensor LDR nya sebagai berikut.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(16, 2);

const byte pin_ldr = A0;
String line1, line2;
int adc_ldr;

void setup() {
  pinMode(pin_ldr, INPUT);
  lcd.autoAddress();
  lcd.begin();
}

void loop() {
   update_lcd();
   adc_ldr = baca_ldr();
   delay(250);
}

int baca_ldr(){
  int data_adc = analogRead(pin_ldr);
  delay(2);
  return data_adc;
}

void update_lcd(){
  line1 = "baca LDR";
  line2 = String("ADC: ") + adc_ldr;
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(line1);
  lcd.setCursor(0,1);
  lcd.print(line2);
}

Sebelum compile program di atas, agar tidak error, pastikan teman-teman sudah add library i2c LCD auto scan, atau bisa langsung tekan tombol merah di bawah ini untuk tutorial nya,

auto scan lcd

Nah setelah di compile dan di upload ke Modul belajar Arduino kita, sekarang, coba lihat data LDR nya di LCD. Perhatikan dengan jelas, kondisi berapa nilai nya gelap, dan kondisi berapa nilai nya terang, tutup saja LDR nya dengan tangan.

Pada pengujian saya, kondisi gelap adalah ketika nilai ADC 0 sampai 85, nah sekarang kita program lagi ini, bagaimana cara nya agar relay satu hidup ketika nilai ADC di antara 0 – 85,

Pastikan berapa nilai ADC terang dan gelap, lihat di LCD

Nah, setelah dapat nilai nya, sekarang kita akan kontrol relay di modul belajar arduino nya. Pada modul ini relay satu di kontrol oleh pin A2. yuk kita modifikasi program nya.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(16, 2);

const byte pin_ldr = A0;
const byte pin_relay = A2;
const int limit_ldr = 85;
String line1, line2;
int adc_ldr;

void setup() {
  pinMode(pin_ldr, INPUT);
  pinMode(pin_relay,OUTPUT);
  lcd.autoAddress();
  lcd.begin();
}

void loop() {
   control();
   delay(250);
}

int baca_ldr(){
  int data_adc = analogRead(pin_ldr);
  delay(2);
  return data_adc;
}

void update_lcd(){
  line1 = "baca LDR";
  line2 = String("ADC: ") + adc_ldr;
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(line1);
  lcd.setCursor(0,1);
  lcd.print(line2);
}

void control(){
  update_lcd();
  adc_ldr = baca_ldr();
  if ( adc_ldr >= limit_ldr ){
    digitalWrite(pin_relay, HIGH);
  }
  else{
    digitalWrite(pin_relay, LOW);
  }
}

jangan copy paste program

usahakan ketik langsung

Program bekerja sebagai berikut, Data ADC yang di baca di pin A0 akan kita tampilkan di LCD 16×2 I2C. Nah ketika data ADC lebih kecil atau sama denga limit_ldr maka relay akan aktif, namun sebalik nya, ketika pin data ADC lebih besar dari limit_ldr, maka relay akan aktif. Silahkan ambil modul belajar nya, kemudian praktikan langsung, saya sudah praktikan dan program ini sudah berhasil.

Otomatis dengan Waktu

Setelah praktik di atas sudah kita coba langsung dan berhasil, langkah selanjut nya adalah membuat otomatis lampu berdasarkan waktu. Pada waktu tertentu, Lampu akan menyala, dan pada waktu tertentu lampu akan mati. Nah siapkan modul belajar Arduino nya, colokkan modul DS3231 sebagai RTC. Jika teman-teman ingin mendapatkan modul nya, cukup tekan tombol merah di bawah ini.

Modul Belajar Arduino

Langkah selanjut nya, kita buat jam digital dulu, menampilkan jam digital pada LCD, library yang kita gunakan adalah RTClib, tinggal visit aja tutorial nya di bawah ini,

  1. Cara mudah membuat jam digital dengan RTC DS3231

berikut program nya,

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "RTClib.h" // library yang kita add tadi
LiquidCrystal_I2C lcd(16, 2);

RTC_DS3231 rtc;
char hari[7][12] = {"Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"};
String text;
int jam, menit, detik;

void setup() {
  Serial.begin(9600);
  lcd.autoAddress();
  lcd.begin();
   if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }  

//rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); //--> ambil waktu dari laptop atau komputer

}
void loop() {
  update_lcd();
}
void printDT ( int DT ){
  if ( DT < 10 ){ 
    lcd.print('0'); 
    lcd.print(DT); 
    } else{ 
      lcd.print(DT); 
      } 
    } 
void update_lcd(){ 
  DateTime now = rtc.now(); 
  jam = now.hour(); 
  menit = now.minute(); 
  detik = now.second(); 
  text = String("Hari: ")+ hari[now.dayOfTheWeek()] +(" --> ")+jam +(":")+ menit +(":") + detik;
  Serial.println(text);

   lcd.setCursor(1,0);
   lcd.print(hari[now.dayOfTheWeek()]);
   lcd.print(":");
   printDT(now.day());
   lcd.print("-");
   printDT(now.month());
   lcd.print("-");
   printDT(now.year());

   lcd.setCursor(4,1);
   printDT(now.hour());
   lcd.print(":");
   printDT(now.minute());
   lcd.print(":");
   printDT(now.second());
   delay(500);
}

Program di atas akan menampilkan waktu pada LCD. Perhatikan program di bawah ini, sebuah program setting waktu dari laptop / pc kita pribadi

rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); //ambil waktu dari laptop atau komputer

Pertama program masukkan line program di atas, setelah waktu nya sudah pas, jadikan program di atas sebagai comentar, dan program ulang, menjadi nya komentar cukup mudah tinggal rubah seperti program di bawah ini

//rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // ambil waktu dari laptop atau komputer

Tahap ini, kita sudah mendapatkan data waktu, nah bagaimana kah cara memprogram nya agar detik 0 – 10 relay aktif, kemudian yang lain relay non aktif? yuk kita coba buat program sederhana nya,

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "RTClib.h" // library yang kita add tadi
LiquidCrystal_I2C lcd(16, 2);
const byte pin_relay = A2;

RTC_DS3231 rtc;
char hari[7][12] = {"Min", "Sen", "Sel", "Rab", "Kam", "Jum", "Sab"};
int jam, menit, detik;

void setup() {
  lcd.autoAddress();
  lcd.begin();
   if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }
  pinMode(pin_relay,OUTPUT);

//rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); //--> ambil waktu dari laptop atau komputer

}
void loop() {
  control();
}
void printDT ( int DT ){
  if ( DT < 10 ){ 
    lcd.print('0'); 
    lcd.print(DT); 
    } else{ 
      lcd.print(DT); 
    } 
  } 
  void update_lcd(){ 
    DateTime now = rtc.now(); 
    jam = now.hour(); 
    menit = now.minute(); 
    detik = now.second(); 
    lcd.setCursor(1,0); 
    lcd.print(hari[now.dayOfTheWeek()]); 
    lcd.print(":"); 
    printDT(now.day()); 
    lcd.print("-"); 
    printDT(now.month()); 
    lcd.print("-"); 
    printDT(now.year()); 
    lcd.setCursor(4,1); 
    printDT(now.hour()); 
    lcd.print(":"); 
    printDT(now.minute()); 
    lcd.print(":"); 
    printDT(now.second()); 
    delay(500); } 
void control(){ 
   update_lcd(); 
      if ( detik >= 0 && detik <= 10 ){ 
        digitalWrite(pin_relay, HIGH); 
      } 
      if ( detik > 10 && detik <= 59 ){
        digitalWrite(pin_relay, LOW);
      }
}

Program di atas akan menghidupkan relay pada detik 0 sampai 10, kemudian mematikan relay pada detik 11 sampai 59. Silahkan modifikasi program di atas sesuai dengan kebutuhan.

Otomatis Dengan Jarak

Praktik Selanjut nya adalah otomatis Lampu dengan Jarak. Lampu akan hidup jika mendapatkan jarak tertentu, kemudian lampu akan padam dengan jarak tertentu.

Pada kasus ini kita akan kembali menggunakan modul belajar Arduino dan sensor jarak ultrasonik. Sensor jarak ini sudah kita bahas pada artikel sebelum nya, jika teman-teman ingin pelajari tentang sensor ultrasonik, cukup tekan button merah di bawah ini.

Sensor Jarak

Pada modul arduino ini, kita memiliki konfigurasi sebagai berikut,

PIN ArduinoPIN HC-04
D2Echo
D3Triger
+5vVCC
GNDGND

Membaca Jarak

Setelah kita tahu pin konfigurasi nya, langkah selanjut nya adalah membuat program untuk membaca jarak. Program nya adalah sebagai berikut,

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(16, 2);

const byte Echo = 2;//kaki ultrasonik
const byte Trig = 3;//kaki ultrasonik
long duration;
int distance;
int jarak;
String line1, line2;
unsigned long old_time;

void setup() {
   lcd.autoAddress();
   lcd.begin();
   pinMode(Echo, INPUT);
   pinMode(Trig, OUTPUT);
}

void loop() {
   if( millis() - old_time >= 250 ){
    get_data();
    old_time = millis();
   }
}
void baca_sensor(int trigPin, int echoPin){
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin,LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034/2;
}
void get_data(){
  baca_sensor(Trig,Echo);
  jarak = distance;
  line1 = "Ukur Jarak";
  line2 = String("Jarak: ") + jarak + (" cm");
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(line1);
  lcd.setCursor(0,1);
  lcd.print(line2);
}

Perhatikan di LCD modul belajar kita, disana akan tertampil jarak cm terhadap objek. Selanjut nya adalah meng aktifkan relay pada pin A2, rule nya sebagai berikut,

Jika jarak 0 cm  sampai dengan 10cm maka relay pada A2 akan hidup, jika lebih besar maka relay akan tidak aktif, gimana kah program nya? yuk kita coba lagi coding sederha nya,

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(16, 2);

const byte Echo = 2;//kaki ultrasonik
const byte Trig = 3;//kaki ultrasonik
const byte pin_relay = A2;
const byte limit_jarak = 10;
long duration;
int distance;
int jarak;
String line1, line2;
unsigned long old_time;

void setup() {
   lcd.autoAddress();
   lcd.begin();
   pinMode(Echo, INPUT);
   pinMode(Trig, OUTPUT);
   pinMode(pin_relay, OUTPUT);
}

void loop() {
   if( millis() - old_time >= 250 ){
    control();
    old_time = millis();
   }
}
void baca_sensor(int trigPin, int echoPin){
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin,LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034/2;
}
void get_data(){
  baca_sensor(Trig,Echo);
  jarak = distance;
  line1 = "Ukur Jarak";
  line2 = String("Jarak: ") + jarak + (" cm");
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print(line1);
  lcd.setCursor(0,1);
  lcd.print(line2);
}
void control(){
  get_data();
  if ( jarak >= limit_jarak ){
    digitalWrite(pin_relay, HIGH);
  }
  else{
    digitalWrite(pin_relay, LOW);
  }
}

Otomatis dengan Suhu

Pembahasan dua jenis otomatis ini akan di bahas dan di update secara berkala yah, Mayan capek juga ngetik nya,

untuk dapatkan materi belajar arduino bisa visit di modul belajar arduino di bawah ini

Modul Belajar Arduino

thanks

Learning And Sharing

mikroavr.com

Share41Tweet
Previous Post

Apakah Kamu Bingung Fungsi analogWrite pada Arduino? Berikut Penjelasan dan Contoh Aplikasi nya

Next Post

Membuat Robot Sederhana dengan Arduino dan Ultrasonik, Lengkap dengan Pengujian dan Coding nya

Jimmi Sitepu

Jimmi Sitepu

Hobbyist Embedded System, Robotic, IOT and write all about them. So we have nice quote "Learning and Sharing"

Related Posts

4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega
Arduino

4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

Juni 13, 2022
Tutorial Menggunakan Weather Station DFRobot SEN0186 dengan Arduino ESP32
Arduino

Tutorial Menggunakan Weather Station DFRobot SEN0186 dengan Arduino ESP32

Maret 9, 2022
ethernet arduino
Arduino

Arduino Ethernet Tutorial, Project dengan Arduino Uno dan Mega

Februari 24, 2022
solder i2c arduino lcd
Arduino

Tutorial Program Arduino Lcd i2c dan Library nya

Februari 24, 2022
tft lcd arduino shield
Arduino

Tutorial Mudah TFT lcd Arduino untuk Membuat Jam Digital

Februari 24, 2022
jangka sorong arduino
Arduino

Sensor Pengukur Jarak dengan Jangka Sorong Digital Presisi 0.01mm

Februari 24, 2022
Next Post
Membuat Robot Sederhana dengan Arduino dan Ultrasonik, Lengkap dengan Pengujian dan Coding nya

Membuat Robot Sederhana dengan Arduino dan Ultrasonik, Lengkap dengan Pengujian dan Coding nya

Pendeteksi Banjir Berbasis Arduino dan GSM

Pendeteksi Banjir Berbasis Arduino dan GSM

Please login to join discussion

Tulisan Terbaru

sensor URM14 Arduino

Membaca Sensor URM14 RS485 dengan ESP32 Arduino

Juli 7, 2022
4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

Juni 13, 2022
Mendapatkan Waktu Akurat dengan NTP GPS

Mendapatkan Waktu Akurat dengan NTP GPS

Mei 8, 2022
Custome GPS Logger Arduino dengan Akeses Internet SIM7600 4G

Custome GPS Logger Arduino dengan Akeses Internet SIM7600 4G

April 14, 2022
Tutorial Menggunakan Weather Station DFRobot SEN0186 dengan Arduino ESP32

Tutorial Menggunakan Weather Station DFRobot SEN0186 dengan Arduino ESP32

Maret 9, 2022
ethernet arduino

Arduino Ethernet Tutorial, Project dengan Arduino Uno dan Mega

Februari 24, 2022

Browse by Category

  • Arduino
  • Ebook
  • ESP32
  • IOT
  • jasa
  • Komponen
  • PCB
  • Produk
  • program Arduino
  • Project
  • Rangkaian
  • Sensor
  • Tips
  • Uncategorized

Recent News

sensor URM14 Arduino

Membaca Sensor URM14 RS485 dengan ESP32 Arduino

Juli 7, 2022
4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

4G GSM Modul Arduino SIM7600 Cocok Untuk ESP32, STM32 atau Arduino Mega

Juni 13, 2022
  • About US
  • Blog
  • MIKROAVR

© 2020 mikroavr.com - Learning and sharing.

Welcome Back!

Sign In with Google
OR

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist

No Result
View All Result
  • About US
  • Blog
  • MIKROAVR

© 2020 mikroavr.com - Learning and sharing.