Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Concepto:
Hice una lámpara que siempre necesita atención. Fue inspirado por mi esposa. Soy un estudiante de posgrado, por lo que siempre estoy ocupado con mi trabajo escolar. Mi esposa quiere hablar conmigo cuando vuelva a casa. Cuando le presto poca atención, se pone de mal humor y yo camino sobre cáscaras de huevo. Puse su característica en esta lámpara. Para seguir encendiendo la lámpara, el usuario debe dar cuerda a una llave cada hora. La lámpara se apagará cuando el temporizador llegue a 0 minutos.
Si fabrica esta lámpara, trátela bien. (El sonido tic-tac es una ventaja para ti).
Listas de compra:
Arduino Nano (ATmega328P)
Lámpara de escritorio básica
Bombilla de luz USB 5V 5W
Placa de conexión de receptáculo hembra USB tipo A
Llaves de reloj de metal
Temporizador de cocción
Sensor de efecto Hall (A1301 / A1302)
Imanes (6 x 2 mm)
Tornillo de cabeza plana Phillips 6/32 (2 pulgadas de largo)
Nueces, 6/32
Paso 1: corte con láser la parte inferior y desmonte la lámpara
Para la parte inferior, diseñé y corté paneles acrílicos usando una máquina de corte por láser.
Desarma la lámpara.
Paso 2: Inserte los imanes y el sensor / conecte una lámpara USB
1. Coloque el sensor magnético de pasillo en la parte del cuerpo para detectar el imán en la parte de rotación.
2. Conecte una lámpara USB, un sensor magnético Hall y Arduino Nano.
3. Inserte imanes en los agujeros.
Paso 3: código y esquema
Esquemático ^
Código
/////// SENSOR DE EFECTO HALL /////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED (placa de conexión del receptáculo USB) al pin digital 3
int led = 3;
// Sensor de efecto Hall al pin analógico 0
int hall = A0;
// Las siguientes líneas son de https://playground.arduino.cc/Code/HallEffect de Rob Tillaart
int gauss;
int gaussX; int gauss2;
configuración vacía () {pinMode (led, SALIDA); pinMode (pasillo, ENTRADA); Serial.begin (9600); }
anular DoMeasurement ()
{int raw = analogRead (pasillo); compensado largo = crudo - NOFIELD; // ajuste relativo a ningún campo aplicado long gauss = compensado * TOMILLIGAUSS / 1000; // ajustar la escala a Gauss gaussX = constringir (gauss, 0, 500); gauss2 = mapa (gaussX, 0, 500, 0, 255); Serial.println (gauss2); // Serial.println (sin procesar);
analogWrite (led, gauss2);
}
bucle vacío ()
{DoMeasurement (); retraso (100); }
Paso 4: último paso
Hecho.