Lampu tidur otomatis menyala saat ada orang (Arduino)
GratisINO

Lampu tidur otomatis menyala saat ada orang (Arduino)

Buat sendiri lampu tidur LED 5V yang menyala otomatis saat ada orang lewat dalam gelap: Arduino Nano, sensor PIR, fotoresistor. Kode sumber gratis.

File unduhan

  • den_ngu.ino
    Kode sumber Arduino · 1 KB
    Unduh

Lisensi CC BY 4.0 — gratis digunakan, cantumkan sumber “OctaX.vn”. Demo versi sebenarnya memerlukan akun gratis untuk mengunduh.

Ingin menyesuaikan sesuai keinginan?

Asisten OctaX mengubah ukuran, konten, merek sesuai permintaan — perkiraan ≈ 3 credit.

✦ Kustomisasi dengan AI

Hanya gunakan sumber daya 5V. Jangan menyambungkan sendiri ke listrik jala-jala 220V jika tidak memiliki keahlian.

Material

  • Arduino Nano
  • Sensor gerak PIR HC-SR501
  • Fotoresistor + resistor 10 kΩ
  • MOSFET IRLZ44N + resistor 220 Ω, 100 kΩ
  • Strip LED 5V (≤ 1 m)
  • Catu daya 5V 2A

Langkah-langkah

  1. Sambungkan sensor PIR HC-SR501: VCC → 5V, GND → GND, OUT → pin D2.
  2. Sambungkan fotoresistor dengan resistor 10 kΩ sebagai pembagi tegangan ke pin A0.
  3. Sambungkan strip LED 5V melalui MOSFET kanal N level logika (mis. IRLZ44N): kaki G → D9 melalui resistor 220 Ω, tambahkan resistor 100 kΩ dari G ke GND.
  4. Unggah kode sumber, ukur nilai A0 saat lampu ruangan dimatikan lalu sesuaikan NGUONG_TOI.
  5. Masukkan ke dalam kotak, arahkan sensor ke jalur lewat, sekitar 30–50 cm dari lantai.

Kode sumber

// Đèn ngủ tự bật khi có người trong bóng tối — OctaX.vn (CC BY 4.0)
// Bo: Arduino Nano. PIR → D2, quang trở (cầu chia áp với 10 kΩ) → A0, MOSFET điều khiển dải LED → D9 (PWM).
const int PIN_PIR = 2;
const int PIN_LDR = A0;
const int PIN_LED = 9;
const int NGUONG_TOI = 600;              // A0 lớn hơn ngưỡng này coi là tối (đo thực tế rồi chỉnh)
const unsigned long GIU_SANG = 60000UL;  // giữ đèn sáng 60 giây sau lần cuối thấy người
const int DO_SANG = 140;                 // 0–255: đèn ngủ không cần sáng tối đa

unsigned long lanCuoiCoNguoi = 0;
int doSangHienTai = 0;

void setup() {
  pinMode(PIN_PIR, INPUT);
  pinMode(PIN_LED, OUTPUT);
}

void loop() {
  bool coNguoi = digitalRead(PIN_PIR) == HIGH;
  bool troiToi = analogRead(PIN_LDR) > NGUONG_TOI;

  // Chỉ "ghi nhận có người" khi trời tối, để ban ngày đèn không bật
  if (coNguoi && troiToi) lanCuoiCoNguoi = millis();

  int mucTieu = (lanCuoiCoNguoi && millis() - lanCuoiCoNguoi < GIU_SANG) ? DO_SANG : 0;

  // Sáng/tắt dần cho dịu mắt: mỗi vòng thay đổi 1 nấc
  if (doSangHienTai < mucTieu) doSangHienTai++;
  else if (doSangHienTai > mucTieu) doSangHienTai--;
  analogWrite(PIN_LED, doSangHienTai);
  delay(8);
}

Templat sejenis

Rak buku kayu dinding 3 tingkat
GratisCSV

Rak buku kayu dinding 3 tingkat

Buat sendiri rak buku kayu dinding 3 tingkat 800×600 mm: daftar potongan papan, peralatan, langkah perakitan dan pemasangan yang kokoh. Unduh CSV gratis.

🛠️ DIY – Buat sendiri