Sommario:
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-13 06:57
Concetto:
Ho realizzato una lampada che ha sempre bisogno di attenzioni. È stato ispirato da mia moglie. Sono una studentessa universitaria quindi sono sempre impegnata con i miei compiti. Mia moglie vuole parlare con me quando torno a casa. Quando le prendo poca attenzione, diventa imbronciata e io cammino sui gusci d'uovo. Ho messo la sua caratteristica in questa lampada. Per continuare ad accendere la lampada, un utente deve caricare una chiave ogni ora. La lampada si spegne quando il timer arriva a 0 minuti.
Se fai questa lampada, trattala bene. (Il suono del tic tac è un bonus per te.)
Liste di acquisto:
Arduino Nano (ATmega328P)
Lampada da scrivania di base
Lampadina USB 5V 5W
Scheda breakout presa USB tipo A femmina
Tasti dell'orologio in metallo
Timer di cottura
Sensore ad effetto Hall (A1301/A1302)
Magneti (6 X 2 mm)
Vite a testa piatta Phillips 6/32 (lunghezza 2 pollici)
Dadi, 6/32
Passaggio 1: parte inferiore tagliata al laser e smontare la lampada
Per la parte inferiore, ho disegnato e tagliato pannelli acrilici utilizzando una macchina tagliatrice laser.
Smontare la lampada.
Passaggio 2: inserire magneti e sensore / collegare una lampada USB
1. Posizionare il sensore magnetico hall nella parte del corpo per rilevare il magnete sulla parte rotante.
2. Collega una lampada USB, un sensore magnetico Hall e Arduino Nano.
3. Inserire i magneti nei fori.
Passaggio 3: codice e schema
Schema ^
Codice
/////// SENSORE EFFETTO HALL /////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED (scheda breakout presa USB) al pin digitale 3
led int = 3;
// Sensore ad effetto Hall al pin analogico 0
sala interna = A0;
// Le righe sottostanti provengono da https://playground.arduino.cc/Code/HallEffect di 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); compensato lungo = grezzo - NOFIELD; // regolazione relativa al campo non applicato long gauss = compensato * TOMILLIGAUSS / 1000; // regola la scala su Gauss gaussX = constrain(gauss, 0, 500); gauss2 = map(gaussX, 0, 500, 0, 255); Serial.println(gauss2); // Serial.println(raw);
analogWrite(led, gauss2);
}
ciclo vuoto()
{ DoMisura(); ritardo(100); }
Passaggio 4: ultimo passaggio
Fatto.