Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Koncept:
Naredil sem svetilko, ki vedno potrebuje pozornost. Navdihnila ga je žena. Sem podiplomski študent, zato sem vedno zaposlen s šolskim delom. Žena se želi pogovoriti z mano, ko pridem domov. Ko ji posvečam malo pozornosti, se namoči in hodim po jajčnih lupinah. V to svetilko sem vnesel njeno značilnost. Če želite še naprej prižgati svetilko, mora uporabnik vsako uro navijati ključ. Lučka se ugasne, ko časovnik odteče na 0 minut.
Če izdelujete to svetilko, prosimo, da z njo dobro ravnate. (Zvok tik-tak je za vas bonus.)
Nakupni seznami:
Arduino Nano (ATmega328P)
Osnovna namizna svetilka
5V 5W USB žarnica
Ženska priključna plošča USB tipa A
Kovinski ključi za ure
Časovnik za kuhanje
Hall -ov senzor (A1301/A1302)
Magneti (6 x 2 mm)
Ploski vijak z glavo 6/32 (dolg 2 palca)
Matice, 6/32
Korak: Laserski rez spodnjega dela in razstavite svetilko
Za spodnji del sem oblikoval in rezal akrilne plošče z laserskim rezalnim strojem.
Razstavite svetilko.
2. korak: Vstavite magnete in senzor / priključite USB svetilko
1. Hallov magnetni senzor vstavite v del telesa, da zazna magnet na rotacijskem delu.
2. Priključite svetilko USB, magnetni senzor Hall in Arduino Nano.
3. V luknje vstavite magnete.
3. korak: Koda in shema
Shema ^
Koda
/////// SENZOR UČINKOV HALL -a /////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED (plošča za izklop vtičnice USB) na digitalni pin 3
int led = 3;
// Hallov senzor za analogni pin 0
int dvorana = A0;
// Spodnje vrstice so iz https://playground.arduino.cc/Code/HallEffect avtorja Rob Tillaart
int gauss;
int gaussX; int gauss2;
void setup () {pinMode (led, OUTPUT); pinMode (dvorana, VHOD); Serial.begin (9600); }
void DoMeasurement ()
{int raw = analogRead (dvorana); dolga kompenzirana = surova - NOFIELD; // prilagodi glede na brez uporabe polja long gauss = kompenzirano * TOMILLIGAUSS / 1000; // prilagodimo lestvico Gaussu gaussX = omeji (gauss, 0, 500); gauss2 = zemljevid (gaussX, 0, 500, 0, 255); Serial.println (gauss2); // Serial.println (surovo);
analogWrite (led, gauss2);
}
void loop ()
{DoMeasurement (); zamuda (100); }
4. korak: Zadnji korak
Končano.