Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Begrepp:
Jag gjorde en lampa som alltid behöver uppmärksamhet. Det var inspirerat av min fru. Jag är en doktorand så jag är alltid upptagen med mitt skolarbete. Min fru vill prata med mig när jag kommer hem. När jag uppmärksammar henne lite blir hon sur och jag går på äggskal. Jag satte hennes karaktäristik i denna lampa. För att fortsätta tända lampan måste en användare slå upp en nyckel var timme. Lampan släcks när timern går till 0 minuter.
Om du gör denna lampa, vänligen behandla den väl. (Tick-tock-ljud är en bonus för dig.)
Inköpslistor:
Arduino Nano (ATmega328P)
Enkel skrivbordslampa
5V 5W USB -lampa
USB Type A kvinnligt uttagskort
Metallurstangenter
Tillagningstimer
Hall -effektsensor (A1301/A1302)
Magneter (6 X 2 mm)
Flat Phillips Head Screw 6/32 (2-inch long)
Nötter, 6/32
Steg 1: Laserskär nedre delen och demontera lampan
För den nedre delen designade och klippte jag akrylpaneler med laserskärmaskin.
Ta isär lampan.
Steg 2: Sätt i magneter och sensor / Anslut en USB -lampa
1. Sätt hallens magnetiska sensor i kroppsdelen för att detektera magneten på rotationsdelen.
2. Anslut en USB -lampa, hallmagnetisk sensor och Arduino Nano.
3. Sätt i magneter i hålen.
Steg 3: Kod och schematisk
Schematisk ^
Koda
/////// HALL EFFECT SENSOR ///////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED (USB Receptacle Breakout board) till digital stift 3
int led = 3;
// Hall effektsensor till analog stift 0
int hall = A0;
// Raderna nedan är från https://playground.arduino.cc/Code/HallEffect av Rob Tillaart
int gauss;
int gaussX; int gauss2;
void setup () {pinMode (led, OUTPUT); pinMode (hall, INPUT); Serial.begin (9600); }
void DoMeasurement ()
{int raw = analogRead (hall); långkompenserad = rå - NOFIELD; // justera i förhållande till inget tillämpat fält long gauss = kompenserat * TOMILLIGAUSS / 1000; // justera skalan till Gauss gaussX = begränsning (gauss, 0, 500); gauss2 = karta (gaussX, 0, 500, 0, 255); Serial.println (gauss2); // Serial.println (rå);
analogWrite (led, gauss2);
}
void loop ()
{DoMeasurement (); fördröjning (100); }
Steg 4: Sista steget
Gjort.