Script Arduino Uno Lampu Pintar

Alat dan Bahan:

    1. Arduino Uno
    2. Sensor PIR (Passive Infrared)
    3. LCD 16×2 dengan I2C
    4. Relay
    5. Lampu (dihubungkan dengan relay)
  1. Kabel jumper
  2. Skema Koneksi:
  • Sensor PIR:
    • VCC → 5V Arduino
    • GND → GND Arduino
    • OUT → Pin 7 Arduino
  • Relay:
    • VCC → 5V Arduino
    • GND → GND Arduino
    • IN → Pin 8 Arduino
  • LCD (I2C):
    • SDA → Pin A4 Arduino
    • SCL → Pin A5 Arduino
    • VCC → 5V Arduino
    • GND → GND Arduino

Script Code :

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

// Inisialisasi LCD 16x2 dengan alamat I2C 0x27
LiquidCrystal_I2C lcd(0x27, 16, 2);

int pirPin = 7; // Pin untuk sensor PIR
int relayPin = 8; // Pin untuk relay
int pirState = LOW; // Variabel untuk menyimpan status sensor PIR

void setup() {
// Inisialisasi pin
pinMode(pirPin, INPUT);
pinMode(relayPin, OUTPUT);

// Inisialisasi LCD
lcd.init();
lcd.backlight();

// Menampilkan pesan awal di LCD
lcd.setCursor(0, 0);
lcd.print("Lampu Pintar");
lcd.setCursor(0, 1);
lcd.print("Sabar Dulu");

delay(3000);
lcd.clear();
}

void loop() {
int pirVal = digitalRead(pirPin); // Membaca input dari sensor PIR

if (pirVal == HIGH) {
if (pirState == LOW) {
// Jika ada gerakan terdeteksi, nyalakan lampu
digitalWrite(relayPin, HIGH);

// Tampilkan status di LCD
lcd.setCursor(0, 0);
lcd.print("Lampu: ON ");
lcd.setCursor(0, 1);
lcd.print("Gerakan terdeteksi");

pirState = HIGH; // Update status PIR
}
} else {
if (pirState == HIGH) {
// Jika tidak ada gerakan, matikan lampu
digitalWrite(relayPin, LOW);

// Tampilkan status di LCD
lcd.setCursor(0, 0);
lcd.print("Lampu: OFF ");
lcd.setCursor(0, 1);
lcd.print("Tidak ada gerakan");

pirState = LOW; // Update status PIR
}
}

delay(4000); // Memberikan jeda untuk sensor
}
This site uses cookies to offer you a better browsing experience. By browsing this website, you agree to our use of cookies.