Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Konsep:
Saya membuat lampu yang selalu membutuhkan perhatian. Itu terinspirasi oleh istri saya. Saya seorang mahasiswa pascasarjana jadi saya selalu sibuk dengan tugas sekolah saya. Istri saya ingin berbicara dengan saya ketika saya pulang. Ketika saya kurang memperhatikannya, dia menjadi cemberut, dan saya berjalan di atas kulit telur. Saya memasukkan karakteristiknya ke dalam lampu ini. Untuk terus menyalakan lampu, pengguna harus memutar kunci setiap satu jam. Lampu akan mati saat timer mencapai 0 menit.
Jika Anda membuat lampu ini, perlakukan dengan baik. (Suara tik-tok adalah bonus untuk Anda.)
Daftar pembelian:
Arduino Nano (ATmega328P)
Lampu Meja Dasar
Bola Lampu USB 5V 5W
Papan Breakout Wadah USB Tipe A Wanita
Tombol Jam Logam
Pengatur waktu memasak
Sensor Efek Hall (A1301/A1302)
Magnet (6 X 2mm)
Sekrup Kepala Phillips Datar 6/32 (panjang 2 inci)
Kacang, 6/32
Langkah 1: Potong Bagian Bawah Laser dan Bongkar Lampu
Untuk bagian bawah, saya mendesain dan memotong panel akrilik dengan menggunakan mesin potong laser.
Bongkar lampu.
Langkah 2: Masukkan Magnet dan Sensor / Hubungkan Lampu USB
1. Letakkan sensor magnet hall di bagian tubuh untuk mendeteksi magnet di bagian rotasi.
2. Hubungkan lampu USB, sensor magnetik hall, dan Arduino Nano.
3. Masukkan magnet ke dalam lubang.
Langkah 3: Kode dan Skema
Skema ^
Kode
/////// HALL EFFECT SENSOR /////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED (papan Breakout Wadah USB) ke pin digital 3
int dipimpin = 3;
// Sensor efek hall ke pin analog 0
int ruang = A0;
// Baris di bawah ini dari https://playground.arduino.cc/Code/HallEffect oleh Rob Tillaart
int gauss;
int gaussX; int gauss2;
void setup() { pinMode(led, OUTPUT); pinMode(ruang, INPUT); Serial.begin(9600); }
batal DoMeasurement()
{ int mentah = analogRead(ruang); kompensasi panjang = mentah - NOFIELD; // sesuaikan relatif terhadap tidak ada bidang yang diterapkan long gauss = kompensasi * TOMILLIGAUSS / 1000; // sesuaikan skala ke Gauss gaussX = constrain(gauss, 0, 500); gauss2 = peta(gaussX, 0, 500, 0, 255); Serial.println(gauss2); // Serial.println(mentah);
analogWrite(led, gauss2);
}
lingkaran kosong()
{ Pengukuran(); penundaan(100); }
Langkah 4: Langkah Terakhir
Selesai.