Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Conceito:
Fiz uma lâmpada que sempre precisa de atenção. Foi inspirado por minha esposa. Eu sou um estudante de graduação, então estou sempre ocupado com meus trabalhos escolares. Minha esposa quer falar comigo quando eu voltar para casa. Quando presto pouca atenção a ela, ela fica mal-humorada e eu piso em ovos. Coloquei sua característica nesta lâmpada. Para continuar acendendo a lâmpada, o usuário precisa dar corda a cada hora. A lâmpada apagará quando o cronômetro chegar a 0 minutos.
Se você fizer esta lâmpada, trate-a bem. (O som do tique-taque é um bônus para você.)
Listas de compras:
Arduino Nano (ATmega328P)
Candeeiro de mesa básico
5V 5W usb lâmpada
Placa de fuga de receptáculo fêmea tipo A USB
Chaves de relógio de metal
Cronômetro de cozinha
Sensor de efeito Hall (A1301 / A1302)
Ímãs (6 x 2 mm)
Parafuso de cabeça Phillips plana 6/32 (2 polegadas de comprimento)
Nozes, 6/32
Etapa 1: parte inferior cortada a laser e desmontar a lâmpada
Para a parte inferior, projetei e cortei painéis de acrílico usando uma máquina de corte a laser.
Desmonte a lâmpada.
Etapa 2: inserir ímãs e sensor / conectar uma lâmpada USB
1. Coloque o sensor magnético Hall na parte do corpo para detectar o ímã na parte de rotação.
2. Conecte uma lâmpada USB, sensor magnético Hall e Arduino Nano.
3. Insira ímãs nos orifícios.
Etapa 3: Código e esquema
Esquemático ^
Código
/////// HALL EFFECT SENSOR /////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED (placa de fuga do receptáculo USB) para pino digital 3
led int = 3;
// Sensor de efeito Hall para pino analógico 0
corredor interno = A0;
// As linhas abaixo são 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); compensado longo = cru - NOFIELD; // ajusta em relação a nenhum campo aplicado long gauss = compensated * TOMILLIGAUSS / 1000; // ajusta a escala para Gauss gaussX = constrain (gauss, 0, 500); gauss2 = mapa (gaussX, 0, 500, 0, 255); Serial.println (gauss2); // Serial.println (raw);
analogWrite (led, gauss2);
}
void loop ()
{DoMeasurement (); atraso (100); }
Etapa 4: última etapa
Feito.