Taula de continguts:
2025 Autora: John Day | [email protected]. Última modificació: 2025-01-13 06:57
Concepte:
Vaig fer un llum que sempre necessita atenció. Es va inspirar en la meva dona. Sóc estudiant de postgrau, de manera que sempre estic ocupat amb les tasques escolars. La meva dona vol parlar amb mi quan torno a casa. Quan li faig poca atenció, ella es queda embadalida i camino sobre closques d’ou. Vaig posar la seva característica en aquest llum. Per seguir encenent el llum, l’usuari ha d’enfilar una tecla cada hora. El llum s’apagarà quan el temporitzador passi a 0 minuts.
Si fabriqueu aquesta làmpada, tracteu-la bé. (El so de tick-toc és un avantatge per a vosaltres.)
Llistes de compra:
Arduino Nano (ATmega328P)
Llum d’escriptori bàsic
Bombeta USB 5V 5W
Tauler USB Breakout femení tipus A
Tecles de rellotge de metall
Temporitzador de cocció
Sensor d'efecte Hall (A1301 / A1302)
Imants (6 X 2 mm)
Cargol de cap Phillips pla 6/32 (2 polzades de llarg)
Fruits secs, 6/32
Pas 1: tallar amb làser la part inferior i desmuntar la làmpada
Per a la part inferior, vaig dissenyar i tallar panells acrílics mitjançant una màquina de tall per làser.
Desmunteu el llum.
Pas 2: Inseriu imants i sensor / Connecteu una làmpada USB
1. Introduïu el sensor magnètic de la sala a la part del cos per detectar l'imant de la part de rotació.
2. Connecteu un llum USB, un sensor magnètic de sala i Arduino Nano.
3. Introduïu imants als forats.
Pas 3: Codi i esquema
Esquema ^
Codi
/////// SENSOR D'efecte HALL /////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED (placa USB Breakout Breakout) al pin 3 digital
int led = 3;
// Sensor d'efecte Hall al pin analògic 0
int hall = A0;
// Les línies següents provenen de https://playground.arduino.cc/Code/HallEffect de 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); long compensated = raw - NOFIELD; // ajustar en relació a cap camp aplicat gauss llarg = compensat * TOMILLIGAUSS / 1000; // ajustar l'escala a Gauss gaussX = restringir (gauss, 0, 500); gauss2 = mapa (gaussX, 0, 500, 0, 255); Serial.println (gauss2); // Serial.println (cru);
analogWrite (led, gauss2);
}
bucle buit ()
{DoMeasurement (); retard (100); }
Pas 4: últim pas
Fet.