Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Koncept:
Vyrobil som lampu, ktorá si vždy vyžaduje pozornosť. Inšpirovala ma to moja manželka. Som absolvent, takže som vždy zaneprázdnený prácou v škole. Moja žena sa so mnou chce porozprávať, keď prídem domov. Keď sa jej málo venujem, je rozmrzelá a ja kráčam po vaječných škrupinách. Do tejto žiarovky som vložil jej charakteristiku. Aby používateľ mohol stále rozsvietiť lampu, musí každú jednu hodinu vypnúť kľúč. Keď časovač prejde na 0 minút, lampa sa vypne.
Ak vyrábate túto lampu, zaobchádzajte s ňou dobre. (Zvuk tick-tock je pre vás bonus.)
Nákupné zoznamy:
Arduino Nano (ATmega328P)
Základná stolná lampa
5V 5W USB žiarovka
Oddeľovacia doska na zásuvku USB typu A pre ženy
Kovové kľúče od hodín
Časovač varenia
Snímač Hallovho efektu (A1301/A1302)
Magnety (6 x 2 mm)
Skrutka s plochou krížovou hlavou 6/32 (2 palce dlhá)
Orechy, 6/32
Krok 1: Spodná časť rezaná laserom a rozoberte lampu
V spodnej časti som navrhol a narezal akrylové panely pomocou laserového rezacieho stroja.
Demontujte žiarovku.
Krok 2: Vložte magnety a snímač / pripojte lampu USB
1. Do časti tela vložte Hallov magnetický snímač na detekciu magnetu na rotačnú časť.
2. Pripojte lampu USB, Hallov magnetický senzor a Arduino Nano.
3. Do otvorov vložte magnety.
Krok 3: Kód a schéma
Schéma ^
Kód
/////// SENZOR ÚČINKU SÁLU ///////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED (doska USB Receptacle Breakout) na digitálny pin 3
int led = 3;
// Senzor Hallovho efektu na analógový pin 0
int sála = A0;
// Nasledujúce riadky pochádzajú z https://playground.arduino.cc/Code/HallEffect od Roba Tillaarta
int gauss;
int gaussX; int gauss2;
void setup () {pinMode (led, OUTPUT); pinMode (hala, VSTUP); Serial.begin (9600); }
void DoMeasurement ()
{int raw = analogRead (hala); dlho kompenzované = surové - NOFIELD; // úprava vzhľadom na žiadne aplikované pole dlhý gauss = kompenzovaný * TOMILLIGAUSS / 1000; // nastavenie mierky na Gauss gaussX = constrain (gauss, 0, 500); gauss2 = mapa (gaussX, 0, 500, 0, 255); Serial.println (gauss2); // Serial.println (surový);
analogWrite (led, gauss2);
}
prázdna slučka ()
{DoMeasurement (); oneskorenie (100); }
Krok 4: Posledný krok
Hotový.