Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Koncept:
Napravio sam svjetiljku na koju uvijek treba obratiti pažnju. Nadahnula ga je moja žena. Ja sam apsolvent pa sam uvijek zauzet školskim poslovima. Moja žena želi razgovarati sa mnom kad dođem kući. Kad joj ne obraćam malo pažnje, ona se mrzovolji, a ja hodam po ljusci od jaja. U ovu sam svjetiljku stavio njezinu karakteristiku. Da bi nastavio paliti lampu, korisnik mora namotati ključ svakih sat vremena. Svjetiljka će se isključiti kad mjerač vremena ode na 0 minuta.
Ako napravite ovu svjetiljku, molimo vas da s njom dobro postupate. (Zvuk tik-tak je bonus za vas.)
Popisi za kupnju:
Arduino Nano (ATmega328P)
Osnovna stolna lampa
5V 5W USB žarulja
USB utičnica za utičnicu ženskog priključka tipa A
Metalni ključevi za satove
Tajmer za kuhanje
Hall -ov senzor (A1301/A1302)
Magneti (6 x 2 mm)
Ravni Phillips vijak s glavom 6/32 (2 inča dugačak)
Matice, 6/32
Korak 1: Lasersko izrežite donji dio i rastavite svjetiljku
Za donji dio dizajnirao sam i rezao akrilne ploče pomoću stroja za lasersko rezanje.
Rastavite svjetiljku.
Korak 2: Umetnite magnete i senzor / spojite USB lampu
1. Stavite Hall -ov magnetski senzor u dio tijela za detekciju magneta na rotacijskom dijelu.
2. Spojite USB svjetiljku, Hall magnetski senzor i Arduino Nano.
3. Umetnite magnete u rupe.
Korak 3: Kôd i shema
Shematski ^
Kodirati
/////// SENZOR UČINKA NA HALL /////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED (USB razvodna utičnica) na digitalni pin 3
int led = 3;
// Hallov osjetnik učinka na analogni pin 0
int dvorana = A0;
// Donji redovi su s https://playground.arduino.cc/Code/HallEffect od Roba Tillaarta
int gauss;
int gaussX; int gauss2;
void setup () {pinMode (led, OUTPUT); pinMode (dvorana, ULAZ); Serial.begin (9600); }
void DoMeasurement ()
{int raw = analogRead (dvorana); dugo kompenzirano = sirovo - NOFIELD; // podesiti u odnosu na neprimjenjeno polje long gauss = kompenzirano * TOMILLIGAUSS / 1000; // prilagoditi ljestvicu Gaussu gaussX = ograničiti (gauss, 0, 500); gauss2 = karta (gaussX, 0, 500, 0, 255); Serijski.println (gauss2); // Serial.println (neobrađeno);
analogWrite (vodio, gauss2);
}
void loop ()
{DoMeasurement (); kašnjenje (100); }
Korak 4: Posljednji korak
Gotovo.