Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Kontseptsiya:
Men har doim e'tiborga muhtoj bo'lgan chiroqni yasadim. Bu mening xotinimdan ilhomlangan. Men aspirantman, shuning uchun men doimo maktab ishi bilan bandman. Xotinim men uyga kelganimda men bilan gaplashmoqchi. Men unga unchalik e'tibor bermasam, u jim bo'lib qoladi, men esa tuxum qobig'ida yuraman. Men uning xususiyatlarini bu chiroqqa qo'ydim. Chiroqni yoqishni davom ettirish uchun foydalanuvchi har bir soatda kalitni yopishi kerak. Taymer 0 minutga o'tganda chiroq o'chadi.
Agar siz bu chiroqni yasasangiz, iltimos, unga yaxshi muomala qiling. (Tick-tock tovushi siz uchun bonusdir.)
Xarid ro'yxatlari:
Arduino Nano (ATmega328P)
Asosiy stol chiroq
5V 5W USB lampochkasi
USB -toifa A tipidagi ayol rozetkalari
Metall soat kalitlari
Pishirish taymeri
Zal effekti sensori (A1301/A1302)
Magnit (6 x 2 mm)
Yassi Phillips boshli vint 6/32 (uzunligi 2 dyuym)
Yong'oqlar, 6/32
1 -qadam: pastki qismini lazer bilan kesib oling va chiroqni qismlarga ajratib oling
Pastki qismi uchun men akril panellarni lazer kesish mashinasi yordamida loyihalashtirdim va kesib oldim.
Chiroqni demontaj qiling.
2 -qadam: Magnit va sensorni joylashtiring / USB chiroqni ulang
1. Aylanish qismidagi magnitni aniqlash uchun korpus qismidagi zal magnit sensorini joylashtiring.
2. USB chiroq, zali magnit sensori va Arduino Nano -ni ulang.
3. Teshiklarga magnitlarni joylashtiring.
3 -qadam: kod va sxema
Sxematik ^
Kod
/////// HALL EFFEKT SENSORI /////////// #define NOFIELD 505L #TMILLIGAUSS 1953L ni aniqlang
// LED (USB rozetkalarini uzish paneli) raqamli pin 3 ga
int led = 3;
// Zal effekti sensori analog pin 0 ga
int zal = A0;
// Quyidagi satrlar: https://playground.arduino.cc/Code/HallEffect, Rob Tillaart
int gauss;
int gaussX; int gauss2;
void setup () {pinMode (LED, OUTPUT); pinMode (zal, Kirish); Serial.begin (9600); }
void DoMeasurement ()
{int raw = analogRead (zal); uzoq kompensatsiyalangan = xom - NOFIELD; // qo'llanilmaydigan maydonga nisbatan sozlang uzun gauss = kompensatsiyalangan * TOMILLIGAUSS / 1000; // o'lchovni Gaussga moslashtiring gaussX = cheklash (gauss, 0, 500); gauss2 = xarita (gaussX, 0, 500, 0, 255); Serial.println (gauss2); // Serial.println (xom);
analogWrite (LED, gauss2);
}
bo'sh halqa ()
{DoMeasurement (); kechikish (100); }
4 -qadam: Oxirgi qadam
Bajarildi.