Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Concept:
Am făcut o lampă care are mereu nevoie de atenție. A fost inspirat de soția mea. Sunt un student absolvent, așa că sunt mereu ocupat cu sarcinile mele școlare. Soția mea vrea să vorbească cu mine când vin acasă. Când îi acord puțină atenție, ea se îmbufnă și eu merg pe coji de ou. Am pus caracteristica ei în această lampă. Pentru a continua să aprindă lampa, utilizatorul trebuie să înfășoare o cheie la fiecare oră. Lampa se va stinge când cronometrul merge la 0 minute.
Dacă faceți această lampă, vă rugăm să o tratați bine. (Sunetul tick-toc este un bonus pentru dvs.)
Liste de cumpărare:
Arduino Nano (ATmega328P)
Lampă de birou de bază
Bec 5V 5W USB
Placă USB tip A pentru priză feminină
Taste de ceas metalic
Timer de gătit
Senzor de efect Hall (A1301 / A1302)
Magneți (6 X 2mm)
Șurub plat Phillips cu cap 6/32 (lungime de 2 inci)
Nuci, 6/32
Pasul 1: Decupați cu laser partea inferioară și dezasamblați lampa
Pentru partea de jos, am proiectat și tăiat panouri acrilice folosind mașina de tăiat cu laser.
Demontați lampa.
Pasul 2: introduceți magneți și senzor / conectați o lampă USB
1. Puneți senzorul magnetic al holului în partea corpului pentru detectarea magnetului pe partea de rotație.
2. Conectați o lampă USB, un senzor magnetic hol și Arduino Nano.
3. Introduceți magneți în găuri.
Pasul 3: Cod și schemă
Schematic ^
Cod
/////// SENZOR DE EFECT HALL /////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED (placa USB Breakout Breakout) la pinul digital 3
int led = 3;
// Senzor de efect Hall la pinul analogic 0
int hall = A0;
// Liniile de mai jos provin de la https://playground.arduino.cc/Code/HallEffect de Rob Tillaart
int gauss;
int gaussX; int gauss2;
void setup () {pinMode (led, OUTPUT); pinMode (hall, INPUT); Serial.begin (9600); }
void DoMeasurement ()
{int raw = analogRead (hall); lung compensat = brut - NOFIELD; // ajustare relativă la nici un câmp aplicat long gauss = compensat * TOMILLIGAUSS / 1000; // reglați scala la Gauss gaussX = constrain (gauss, 0, 500); gauss2 = hartă (gaussX, 0, 500, 0, 255); Serial.println (gauss2); // Serial.println (raw);
analogWrite (led, gauss2);
}
bucla nulă ()
{DoMeasurement (); întârziere (100); }
Pasul 4: Ultimul pas
Terminat.