Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Pojęcie:
Zrobiłem lampę, która zawsze wymaga uwagi. Zainspirowała mnie moja żona. Jestem studentem, więc zawsze jestem zajęty pracą szkolną. Moja żona chce ze mną porozmawiać, kiedy wrócę do domu. Kiedy nie zwracam na nią uwagi, robi się nadąsana, a ja chodzę po skorupkach jajek. Włożyłem jej charakterystykę do tej lampy. Aby nadal włączać lampę, użytkownik musi co godzinę nakręcać klucz. Lampa wyłączy się, gdy licznik czasu osiągnie 0 minut.
Jeśli zrobisz tę lampę, traktuj ją dobrze. (Dźwięk tika jest dla ciebie bonusem.)
Listy zakupów:
Arduino Nano (ATmega328P)
Podstawowa lampa biurkowa
Żarówka USB 5V 5W
Płytka zaciskowa USB typu A żeńska;
Metalowe klawisze zegara
Minutnik gotowania
Czujnik Halla (A1301/A1302)
Magnesy (6X2mm)
Śruba z łbem płaskim Phillips 6/32 (długość 2 cali)
Orzechy, 6/32
Krok 1: Laserowo wycinana dolna część i demontowanie lampy
W dolnej części zaprojektowałem i wyciąłem panele akrylowe na maszynie do cięcia laserem.
Zdemontuj lampę.
Krok 2: Włóż magnesy i czujnik / Podłącz lampę USB
1. Umieść czujnik magnetyczny Halla w części ciała, aby wykryć magnes na części obrotowej.
2. Podłącz lampę USB, czujnik magnetyczny Halla i Arduino Nano.
3. Włóż magnesy w otwory.
Krok 3: Kod i schemat
Schematyczny ^
Kod
/////// CZUJNIK EFEKTU HALLA /////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED (płytka zaciskowa USB) do cyfrowego pinu 3
wewnętrzna dioda = 3;
// Czujnik Halla do pinu analogowego 0
wewn. hala = A0;
// Poniższe wiersze pochodzą z https://playground.arduino.cc/Code/HallEffect autorstwa Roba Tillaarta
gaus int;
int gaussX; int gauss2;
void setup() { pinMode(led, OUTPUT); pinMode(hall, INPUT); Serial.początek(9600); }
void DoPomiar()
{ int raw = analogRead(hall); długi skompensowany = surowy - NOFIELD; // dostosuj względem nie zastosowanego pola długi gauss = skompensowany * TOMILLIGAUSS / 1000; // dostosuj skalę do Gaussa gaussX = constrain(gauss, 0, 500); gauss2 = mapa(gaussX, 0, 500, 0, 255); Serial.println(gauss2); // Serial.println(surowy);
analogWrite(led, gauss2);
}
pusta pętla()
{ DoPomiar(); opóźnienie (100); }
Krok 4: Ostatni krok
Gotowe.