Hallo, die Bewohner unserer Website! Als ich den Artikel übersetzte Pseudo-Holz LED-UhrEinige Leser dachten: Ist es möglich, den Vibrationssensor, der zum Umschalten der Uhr-, Thermometer- und Hygrometer-Modi benötigt wird, durch einen hausgemachten zu ersetzen? Natürlich können Sie das, und der Autor von Instructables unter dem Spitznamen ArifSae erklärt, wie.
Der Master verwendet eine Feder aus einem Wickeldraht als bewegliches Element des Sensors. Zusätzlich zu einer Kupferfeder können Sie eine Stahlfeder verwenden, z. B. einen Füllfederhalter mit einem Knopf. Sie ist jedoch steifer, was sich auf die Parameter des Sensors auswirkt.
Da der Wickeldraht lackiert ist, muss er abgezogen werden. Dazu trägt ArifSae Sandpapier auf:
Wickeln Sie einen abisolierten Draht (übrigens aus dem Motor eines kaputten Computerlüfters) auf einen Nagel:
Und es sammelt so etwas von einer Feder und einem 220-Ohm-Widerstand auf einer Perfboard-Platine:
Wenn die Feder aus Kupfer besteht, sollte ein solcher Vibrationssensor streng vertikal angeordnet werden, da sonst die Feder kippt und den Ausgang des Widerstands auch ohne Vibration berührt. Mit einer Stahlfeder kann der Sensor in jeder Position betrieben werden.
Sie können das Abprallen der Sensorkontakte sowohl programmgesteuert als auch in Hardware unterdrücken. Mit der zweiten können Sie das Programm vereinfachen, während der Stromkreis etwas kompliziert ist. Eine der Schaltungen zur Unterdrückung von Hardware-Bounce ist in der Abbildung dargestellt:
Eine solche Schaltung verlängert auch den Impuls bei einem sehr kurzen Kontakt der Feder mit dem Ausgang des Widerstands. Dies hilft dem Programm, einen Trigger zu erkennen, selbst wenn er mit umfangreichen Bibliotheken geschrieben wurde und „langsamer“ wird. Sie müssen nicht in die Firmware der oben genannten Pseudo-Holzuhren einsteigen. Mit einem selbstgebauten Sensor schalten die Modi in einem Ring auf die gleiche Weise wie bei der fertigen.
Der Entwickler hat einen Vibrationssensor an den Analogeingang angeschlossen ArduinoHiermit können Sie den Status sowohl mit dem Befehl digitalRead als auch mit dem Befehl analogRead lesen. Im zweiten Fall können Sie den Kondensator ausschalten, dann erfolgt keine Unterdrückung von Hardware-Rattern, und das Programm kann die Intensität der Vibration bewerten. Im Folgenden finden Sie zwei Skizzenbeispiele für die Verwendung der entsprechenden Befehle. Erster:
int sensor = A5; // Sensorstift
int led = 13; // Standard führte auf Arduino
void setup () {
PinMode (Sensor, INPUT);
PinMode (LED, OUTPUT);
Serial.begin (9600);
}}
void loop () {
int Spannung = digitalRead (Sensor); // Sensor hier lesen
Serial.println (Spannung); // Spannung an den seriellen Monitor am PC drucken
Verzögerung (1000);
if (Spannung & gt; = 1) {// wenn die Feder beim Schütteln berührt
digitalWrite (LED, HIGH); // LED einschalten, um zu zeigen, dass Vibrationen wahrgenommen werden
Verzögerung (2000);
digitalWrite (LED, LOW); // LED jetzt ausschalten
} // ende wenn Spannung
} // Endschleife
Und der zweite:
int sensor = A5;
int led = A0;
void loop () {
int sensorValue = analogRead (Sensor);
Erhaltungsspannung = sensorValue * (5.0 / 1023.0);
Serial.println (Spannung); Verzögerung (200);
Wenn (Spannung & gt; = 0,5) {// Empfindlichkeit hier einstellen, Spannung 0,5 für weniger empfindlich erhöhen, für empfindlicher verringern
digitalWrite (LED, HIGH);
Verzögerung (2000);
digitalWrite (LED, LOW); }}
}}
Der Vorteil eines Vibrationssensors gegenüber einem Sensor besteht in der Möglichkeit, den Modus nicht durch Berühren eines bestimmten Punkts am Gehäuse, sondern durch Antippen eines beliebigen Punkts zu wechseln. Bei der zweiten Ablesemethode kann abhängig von der Intensität des Klopfens eine unterschiedliche Reaktion erzielt werden. Zum Beispiel, um das Umschalten der Modi am Ring umkehrbar zu machen: mit einem schwachen Tippen auf der einen Seite, mit einem starken Tippen auf der anderen Seite.