Obsah:
2025 Autor: John Day | [email protected]. Naposledy změněno: 2025-01-13 06:57
Pojem:
Vyrobil jsem lampu, která vždy vyžaduje pozornost. Inspirovalo mě to mojí manželkou. Jsem postgraduální student, takže jsem vždy zaneprázdněn svou školní prací. Moje žena se mnou chce mluvit, až přijdu domů. Když jí věnuji malou pozornost, začne být rozmrzelá a já chodím po skořápkách. Vložil jsem její charakteristiku do této lampy. Aby mohl uživatel stále zapínat lampu, musí každou hodinu vypnout klíč. Kontrolka zhasne, když časovač přejde na 0 minut.
Pokud vyrábíte tuto lampu, zacházejte s ní dobře. (Zvuk tick-tock je pro vás bonus.)
Nákupní seznamy:
Arduino Nano (ATmega328P)
Základní stolní lampa
5V 5W USB žárovka
Odpojovací deska USB typu A pro ženskou zásuvku
Kovové klíče od hodin
Časovač vaření
Senzor Hallova efektu (A1301/A1302)
Magnety (6 x 2 mm)
Plochý šroub s křížovou hlavou 6/32 (2 palce dlouhý)
Ořechy, 6/32
Krok 1: Laserem vyřízněte spodní část a rozeberte lampu
Pro spodní část jsem navrhl a nařezal akrylové panely pomocí laserového řezacího stroje.
Demontujte lampu.
Krok 2: Vložte magnety a senzor / připojte lampu USB
1. Umístěte Hallův magnetický snímač do tělesné části pro detekci magnetu na rotační části.
2. Připojte lampu USB, Hallův magnetický senzor a Arduino Nano.
3. Vložte do otvorů magnety.
Krok 3: Kód a schéma
Schéma ^
Kód
/////// SNÍMAČ ÚČINKU SÁLU ///////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED (USB Receptacle Breakout board) na digitální pin 3
int led = 3;
// Senzor Hallova efektu na analogový pin 0
int hala = A0;
// Níže uvedené řádky jsou 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); dlouho kompenzováno = surové - NOFIELD; // úprava relativně k žádnému použitému poli dlouhý gauss = kompenzováno * TOMILLIGAUSS / 1000; // úprava měřítka na Gauss gaussX = constrain (gauss, 0, 500); gauss2 = mapa (gaussX, 0, 500, 0, 255); Serial.println (gauss2); // Serial.println (raw);
analogWrite (led, gauss2);
}
prázdná smyčka ()
{DoMeasurement (); zpoždění (100); }
Krok 4: Poslední krok
Hotovo.