Lampu tidur yang menyala sendiri apabila ada orang (Arduino)
PercumaINO

Lampu tidur yang menyala sendiri apabila ada orang (Arduino)

Buat lampu tidur LED 5V yang menyala apabila ada orang lalu dalam gelap: Arduino Nano, sensor PIR, perintang peka cahaya. Kod sumber percuma.

Fail muat turun

Lesen CC BY 4.0 — guna secara percuma, nyatakan sumber “OctaX.vn”. Demo versi sebenar memerlukan akaun percuma untuk memuat turun.

Mahu ubah suai mengikut keperluan anda?

Pembantu OctaX mengubah saiz, kandungan, jenama mengikut permintaan — anggaran ≈ 3 kredit.

✦ Disesuaikan dengan AI

Gunakan bekalan 5V sahaja. Jangan sambung sendiri ke bekalan elektrik utama 220V jika tiada kepakaran.

Bahan

  • Arduino Nano
  • Sensor gerakan PIR HC-SR501
  • Perintang peka cahaya + perintang 10 kΩ
  • MOSFET IRLZ44N + perintang 220 Ω, 100 kΩ
  • Jalur LED 5V (≤ 1 m)
  • Bekalan kuasa 5V 2A

Langkah-langkah

  1. Sambung sensor PIR HC-SR501: VCC → 5V, GND → GND, OUT → pin D2.
  2. Sambung perintang peka cahaya dengan perintang 10 kΩ sebagai pembahagi voltan ke pin A0.
  3. Sambung jalur LED 5V melalui MOSFET saluran N aras logik (cth. IRLZ44N): terminal G → D9 melalui perintang 220 Ω, tambah perintang 100 kΩ dari G ke GND.
  4. Muat naik kod sumber, ukur nilai A0 semasa lampu bilik dimatikan, kemudian laraskan NGUONG_TOI dengan sewajarnya.
  5. Masukkan ke dalam kotak, halakan sensor ke laluan, kira-kira 30–50 cm dari lantai.

Kod 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 dalam kumpulan yang sama

Stesen pengukur suhu – kelembapan WiFi (ESP32)
PercumaINO

Stesen pengukur suhu – kelembapan WiFi (ESP32)

Buat sendiri stesen pengukur suhu dan kelembapan dengan ESP32 dan DHT22, lihat bacaan pada telefon melalui WiFi. Panduan langkah demi langkah, kod sumber percuma.

🛠️ DIY – Buat sendiri
Rak buku kayu 3 tingkat lekap dinding
PercumaCSV

Rak buku kayu 3 tingkat lekap dinding

Bina rak buku kayu 3 tingkat lekap dinding 800×600 mm: senarai potongan papan, alatan, langkah pemasangan dan penggantungan kukuh. CSV percuma.

🛠️ DIY – Buat sendiri