İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Konsept:
Her zaman dikkat edilmesi gereken bir lamba yaptım. Eşimden ilham aldım. Ben bir yüksek lisans öğrencisiyim, bu yüzden her zaman okul işimle meşgulüm. Eve geldiğimde eşim benimle konuşmak istiyor. Ona çok az dikkat ettiğimde somurtuyor ve yumurta kabuğu üzerinde yürüyorum. Onun karakteristiğini bu lambaya koydum. Lambayı yakmaya devam etmek için, kullanıcının her saatte bir anahtarı açması gerekir. Zamanlayıcı 0 dakikaya gittiğinde lamba kapanacaktır.
Bu lambayı yaparsanız, lütfen ona iyi davranın. (Tik tak sesi sizin için bir bonus.)
Satın alma listeleri:
Arduino Nano (ATmega328P)
Temel Masa Lambası
5V 5W USB Ampul
USB Tip A Dişi Priz Koparma kartı
Metal Saat Tuşları
Pişirme zamanlayıcısı
Hall Etkisi Sensörü (A1301/A1302)
Mıknatıslar (6 X 2mm)
Düz Yıldız Başlı Vida 6/32 (2 inç uzunluğunda)
Somunlar, 6/32
Adım 1: Lazer Alt Kısmı Kesip Lambayı Sökün
Alt kısım için akrilik panelleri lazer kesim makinesi ile tasarlayıp kestim.
Lambayı sökün.
Adım 2: Mıknatısları ve Sensörü Takın / Bir USB Lambası Bağlayın
1. Dönen kısımdaki mıknatısı algılamak için salon manyetik sensörünü gövde kısmına yerleştirin.
2. Bir USB lambası, salon manyetik sensörü ve Arduino Nano bağlayın.
3. Mıknatısları deliklere yerleştirin.
Adım 3: Kod ve Şematik
şematik ^
kod
/////// HALL EFEKT SENSÖRÜ ////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED(USB Yuvası Breakout kartı) dijital pin 3'e
int led = 3;
// Hall efekt sensöründen analog pin 0'a
int salon = A0;
// Aşağıdaki satırlar https://playground.arduino.cc/Code/HallEffect by Rob Tillaart'tan alınmıştır.
int gauss;
int gaussX; int gauss2;
void setup() { pinMode(led, OUTPUT); pinMode(salon, GİRİŞ); Seri.başla(9600); }
geçersiz DoMeasurement()
{ int ham = analogRead(salon); uzun telafi = ham - NOFIELD; // uygulanmamış alana göre ayarla uzun gauss = telafi edildi * TOMILLIGAUSS / 1000; // ölçeği Gauss gauss olarak ayarlaX = constrain(gauss, 0, 500); gauss2 = harita(gaussX, 0, 500, 0, 255); Seri.println(gauss2); // Serial.println(ham);
analogWrite(led, gauss2);
}
boşluk döngüsü()
{ DoMeasurement(); gecikme(100); }
4. Adım: Son Adım
Tamamlandı.