Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Konsepsiya:
Həmişə diqqətə ehtiyacı olan bir lampa hazırladım. Həyat yoldaşımdan ilham aldı. Mən aspirantam, buna görə də məktəb dərslərimlə həmişə məşğul oluram. Evə gələndə həyat yoldaşım mənimlə danışmaq istəyir. Ona az diqqət yetirdiyim zaman, o, darıxdırıcı olur və mən yumurta qabığının üstündə gəzirəm. Onun xüsusiyyətini bu lampaya qoydum. Lampanı yandırmağa davam etmək üçün istifadəçi hər saatda bir açarı bağlamalıdır. Taymer 0 dəqiqəyə getdikdə lampa sönəcək.
Bu lampanı özünüz etsəniz, lütfən ona yaxşılıq edin. (Tick-tock səsi sizin üçün bir bonusdur.)
Alış siyahıları:
Arduino Nano (ATmega328P)
Əsas Masa Lambası
5V 5W USB Ampul
USB Tip A Dişi Qəbiz Qırılma lövhəsi
Metal Saat Açarları
Pişirmə taymeri
Hall Təsiri Sensoru (A1301/A1302)
Mıknatıslar (6 X 2 mm)
Düz Phillips Başlı Vida 6/32 (2 düym uzunluğunda)
Fındıq, 6/32
Addım 1: Alt hissəni lazerlə kəsin və lampanı sökün
Alt hissəsi üçün lazer kəsmə maşını istifadə edərək akril panellər hazırladım və kəsdim.
Lampanı sökün.
Addım 2: Mıknatısları və Sensoru daxil edin / USB Lampa qoşun
1. Fırlanma hissəsindəki maqnitin aşkarlanması üçün koridorun maqnit sensorunu bədən hissəsinə qoyun.
2. USB lampa, salon maqnit sensoru və Arduino Nanonu qoşun.
3. Deliklərə maqnit daxil edin.
Addım 3: Kod və Şematik
Sxematik ^
Kod
/////// HALL EFFECT SENSOR /////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// rəqəmsal pin 3 -ə qədər LED (USB Qəbul Qırılma Kartı)
int led = 3;
// Hall effekti sensoru analog pin 0 -a
int zalı = A0;
// Aşağıdakı sətirlər https://playground.arduino.cc/Code/HallEffect tərəfindən Rob Tillaart
int gauss;
int gaussX; int gauss2;
void setup () {pinMode (led, ÇIXIŞ); pinMode (salon, GİRİŞ); Serial.begin (9600); }
void DoMeasurement ()
{int raw = analogRead (salon); uzun kompensasiya = xam - NOFIELD; // heç bir tətbiq olunan sahəyə nisbətən tənzimləyin uzun gauss = kompensasiya edilmiş * TOMILLIGAUSS / 1000; // miqyası Gaussa uyğunlaşdırın gaussX = məhdudlaşdırın (gauss, 0, 500); gauss2 = xəritə (gaussX, 0, 500, 0, 255); Serial.println (gauss2); // Serial.println (xam);
analogWrite (led, gauss2);
}
boşluq döngəsi ()
{DoMeasurement (); gecikmə (100); }
Addım 4: Son addım
Bitdi.