Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Concept:
J'ai fait une lampe qui a toujours besoin d'attention. Il a été inspiré par ma femme. Je suis un étudiant diplômé, donc je suis toujours occupé avec mes devoirs. Ma femme veut me parler quand je rentre à la maison. Quand je lui prête peu d'attention, elle boude et je marche sur des œufs. J'ai mis sa caractéristique dans cette lampe. Pour continuer à allumer la lampe, un utilisateur doit remonter une clé toutes les heures. La lampe s'éteindra lorsque la minuterie passera à 0 minutes.
Si vous fabriquez cette lampe, traitez-la bien. (Le son tic-tac est un bonus pour vous.)
Listes d'achat:
Arduino Nano (ATmega328P)
Lampe de bureau basique
Ampoule USB 5V 5W
Carte de dérivation de prise femelle USB de type A
Clés d'horloge en métal
Minuterie de cuisson
Capteur à effet Hall (A1301/A1302)
Aimants (6 X 2mm)
Vis à tête cruciforme plate 6/32 (2 pouces de long)
Noix, 6/32
Étape 1: partie inférieure découpée au laser et démontage de la lampe
Pour la partie inférieure, j'ai conçu et découpé des panneaux acryliques à l'aide d'une machine de découpe laser.
Démonter la lampe.
Étape 2: Insérez les aimants et le capteur / Connectez une lampe USB
1. Placez le capteur magnétique à effet Hall dans la partie du corps pour détecter l'aimant sur la partie rotative.
2. Connectez une lampe USB, un capteur magnétique à effet Hall et un Arduino Nano.
3. Insérez des aimants dans les trous.
Étape 3: Code et schéma
Schéma ^
Code
/////// CAPTEUR EFFET HALL /////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED (carte de dérivation du réceptacle USB) à la broche numérique 3
led int = 3;
// Capteur à effet Hall vers la broche analogique 0
salle int = A0;
// Les lignes ci-dessous proviennent de https://playground.arduino.cc/Code/HallEffect par 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 compensé = brut - NOFIELD; // ajuste par rapport au champ non appliqué long gauss = compensé * TOMILLIGAUSS / 1000; // ajuste l'échelle à Gauss gaussX = constrain(gauss, 0, 500); gauss2 = map(gaussX, 0, 500, 0, 255); Serial.println(gauss2); // Serial.println(raw);
analogWrite(led, gauss2);
}
boucle vide()
{ DoMesure(); retard (100); }
Étape 4: Dernière étape
Terminé.