Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Konzept:
Ich habe eine Lampe gemacht, die immer Aufmerksamkeit braucht. Es wurde von meiner Frau inspiriert. Ich bin ein Student im Aufbaustudium, also bin ich immer mit meinen Schularbeiten beschäftigt. Meine Frau will mit mir reden, wenn ich nach Hause komme. Wenn ich ihr wenig Aufmerksamkeit schenke, wird sie mürrisch und ich laufe auf Eierschalen. Ich habe ihre Charakteristik in diese Lampe gelegt. Um die Lampe weiter einzuschalten, muss ein Benutzer jede Stunde einen Schlüssel aufziehen. Die Lampe erlischt, wenn der Timer auf 0 Minuten geht.
Wenn Sie diese Lampe herstellen, behandeln Sie sie bitte gut. (Tick-Tack-Sound ist ein Bonus für Sie.)
Einkaufslisten:
Arduino-Nano (ATmega328P)
Basic Schreibtischlampe
5V 5W USB-Glühbirne
Breakout-Board für USB-Buchsen, Typ A, Buchse
Uhrenschlüssel aus Metall
Kochtimer
Hall-Effekt-Sensor (A1301/A1302)
Magnete (6 x 2 mm)
Flache Kreuzschlitzschraube 6/32 (2 Zoll lang)
Muttern, 6/32
Schritt 1: Lasergeschnittenes Unterteil und Demontage der Lampe
Für den unteren Teil habe ich Acrylplatten mit einer Laserschneidmaschine entworfen und geschnitten.
Zerlegen Sie die Lampe.
Schritt 2: Magneten und Sensor einlegen / USB-Lampe anschließen
1. Setzen Sie den Hall-Magnetsensor in das Körperteil ein, um den Magneten auf dem Rotationsteil zu erkennen.
2. Schließen Sie eine USB-Lampe, einen Hall-Magnetsensor und einen Arduino Nano an.
3. Setzen Sie Magnete in die Löcher ein.
Schritt 3: Code und Schaltplan
Schaltplan ^
Code
/////// HALL-EFFEKT-SENSOR /////////// #define NOFIELD 505L #define TOMILLIGAUSS 1953L
// LED (USB-Buchsen-Breakout-Platine) zu digitalem Pin 3
int led = 3;
// Hall-Effekt-Sensor an analogem Pin 0
int Halle = A0;
// Die folgenden Zeilen stammen von https://playground.arduino.cc/Code/HallEffect von Rob Tillaart
int Gauss;
int gaussX; int Gauss2;
Void setup () { PinMode (led, AUSGANG); pinMode (Halle, EINGANG); Serial.begin (9600); }
void DoMeasurement()
{ Int raw = analogRead (Halle); lang kompensiert = raw - NOFIELD; // relativ zu keinem angelegten Feld anpassen long Gauss = kompensiert * TOMILLIGAUSS / 1000; // Skalierung auf Gauss anpassen GaussX = Constraint (Gauss, 0, 500); Gauss2 = map(gaussX, 0, 500, 0, 255); Serial.println (gauss2); // Serial.println (roh);
analogWrite (LED, Gauss2);
}
Leere Schleife ()
{ DoMeasurement(); Verzögerung (100); }
Schritt 4: Letzter Schritt
Fertig.