Inhaltsverzeichnis:

Hochgeschwindigkeitsuhr für Zeitlupenvideos - Gunook
Hochgeschwindigkeitsuhr für Zeitlupenvideos - Gunook

Video: Hochgeschwindigkeitsuhr für Zeitlupenvideos - Gunook

Video: Hochgeschwindigkeitsuhr für Zeitlupenvideos - Gunook
Video: Die Kuriosität der Zeit 2024, November
Anonim
Image
Image
Materialien
Materialien

Fast jeder, der ein modernes Smartphone besitzt, besitzt eine Hochgeschwindigkeitskamera, mit der sich spektakuläre Zeitlupenvideos drehen lassen. Wenn Sie jedoch messen möchten, wie lange es tatsächlich dauert, bis eine Seifenblase platzt oder eine Wassermelone explodiert, wird es Ihnen möglicherweise schwer fallen, die Zeit auf Ihren Videos anzuzeigen: Eine Stoppuhr hat ein sehr kleines Display und eine Genauigkeit von nur 1/100 Sekunde. Wenn Sie quantitative Messungen durchführen möchten, habe ich festgestellt, dass Sie sich auf die veröffentlichte Bildrate einer Kamera nicht verlassen können!

Glücklicherweise ist es wirklich einfach, mit einem Arduino und einer 4-stelligen 7-Segment-Anzeige eine Uhr mit ms-Präzision und hellen großen Ziffern zu konstruieren. Außerdem entsprechen die 12 Pins eines handelsüblichen 0,56“Displays exakt dem Pin-Layout des Arduino Nano und können direkt darauf gelötet werden.

Dieser Timer hat keinen Start/Stopp/Reset. Es beginnt einfach beim Einschalten zu laufen und läuft nach 10 Sekunden über. Die Idee ist, dass wir, um die Dauer eines bestimmten Prozesses zu messen, sowieso die Zeitdifferenz zwischen dem Ende und dem Anfang messen.

Schritt 1: Materialien

  • Ein Arduino Nano, ohne die darauf gelöteten Header.
  • Eine 0,56” 4-stellige 7-Segment-Anzeige. Sowohl gemeinsame Anode als auch gemeinsame Kathode sind in Ordnung

Falls Sie es in eine stabile Box packen und mit 2 AA-Batterien betrieben werden möchten, fügen Sie hinzu:

  • Eine 60x100x25 elektronische Projektbox
  • Ein 2xAA Batteriehalter
  • Ein Step-Up-Modul
  • Ein 10x15mm Ein/Aus-Wippschalter

Werkzeuge benötigt

Lötkolben

So montieren Sie es in einer Box:

  • Ein Drehwerkzeug zum groben Schneiden der Löcher für das Display und den Schalter
  • Handfeilen zum Feinschneiden der Löcher
  • Eine Heißklebepistole zum Fixieren der Komponenten.

Schritt 2: Anschließen des Arduino an das Display

Anschließen des Arduino an das Display
Anschließen des Arduino an das Display

Erstaunlicherweise passen die Pins einer standardmäßigen 4-stelligen 7-Segment-Anzeige so zum Layout eines Arduino Nano, dass alle 12 Pins des Displays mit den IO-Pins des Arduino verbunden sind. Dadurch kann das Display direkt auf den Arduino gelötet werden, ohne dass eine Platine, Stecker oder Kabel benötigt werden.

Löten Sie die unteren Pins des Displays (erkennbar an den Dezimalpunkten und dem Aufdruck) an die analogen Pins A0-A5. Löten Sie die oberen Pins des Displays an die digitalen Pins D4-D9.

Rote LEDs haben einen Spannungsabfall von nur 2 V, daher ist es normalerweise keine gute Idee, sie an 5 V anzuschließen, und normalerweise wird ein Vorwiderstand verwendet, um den Strom zu begrenzen. Vielleicht aufgrund der Verschachtelung habe ich jedoch festgestellt, dass es ohne Vorwiderstände in Ordnung ist. Wenn nicht, finden Sie hier eine detaillierte Anleitung zum Hinzufügen von Serienwiderständen direkt auf dem Arduino Nano

Schritt 3: Der Code

Der Code
Der Code

Laden Sie die beigefügte Skizze auf den Arduino Nano hoch. Der vorliegende Code ist für eine Anzeige mit gemeinsamer Anode, aber die Zeilen für gemeinsame Kathode können unkommentiert werden.

Sobald der Code hochgeladen wurde, sollte der Timer jedes Mal laufen, wenn das Arduino gestartet wird. Sie können hier aufhören oder im nächsten Abschnitt ein Beispiel sehen, wie Sie es in einer stabilen Box montieren und batteriebetrieben machen.

Einige Anmerkungen zum Code:

Die Zeit wird aus zwei guten Gründen von den micro()-Funktionen anstelle der millis()-Funktion übernommen: Die Arduino-Implementierung von millis() ist schrecklich: Sie inkrementieren alle 1.024 ms, und dann wird ab und zu eine Millisekunde übersprungen kompensieren! Nicht alle Arduinos haben hochpräzise Kristalle. Wenn Sie feststellen, dass Sie um mehr als ein Promille daneben liegen, können Sie den Teiler in der Zeile „unsigned long t=micros()/1000;“anpassen. um die Uhr schneller oder langsamer zu machen.

Die Ziffern sind verschachtelt, dh zu einer bestimmten Zeit leuchtet nur eine Ziffer. Beim Ändern der Segmente einer Ziffer sind alle Ziffern aus, so dass zu keinem Zeitpunkt eine unbrauchbare Ziffer angezeigt wird. Ich habe die Aktualisierungsfrequenz der Ziffern mit 750 Mikrosekunden gemessen, sodass jede Ziffer jede Millisekunde mindestens einmal aktualisiert wird!

Ich habe die Uhr nicht ernsthaft auf Geschwindigkeit optimiert, da die aktuelle Geschwindigkeit gut genug ist, um Millisekunden anzuzeigen. Ich denke, der Arduino könnte dazu gebracht werden, zwei Stellen mehr anzuzeigen (entsprechend den 100 und 10 Mikrosekunden), aber es würde erfordern

  • Deaktivieren von Interrupts und direkte Verwendung der Timer
  • Direkte Port-Manipulation
  • Alle Segmente an einen einzigen Port und die Ziffern an einen anderen Port anschließen
  • Vermeiden Sie die explizite Berechnung von Ziffernwerten, sondern verwenden Sie stattdessen Inkremente (Divisions- und Moduloperationen sind langsam)

Wenn ich eine Zeitlupenkamera mit >1000 fps in die Finger bekommen könnte, könnte ich es versuchen, im Moment bin ich mit ms precision zufrieden.

Schritt 4: Montage in einer Box

Montage in einer Box
Montage in einer Box
Montage in einer Box
Montage in einer Box
Montage in einer Box
Montage in einer Box

Eine billige 100x60x25mm elektronische Projektbox, nicht wasserdicht, passt problemlos zu diesem Timer, zusammen mit Batterien, einem Step-Up-Modul und einem Ein- / Ausschalter. Für den Batteriebetrieb gibt eine Kombination aus 2 AA-Batterien mit einem Step-Up-Modul dem Arduino eine sichere und stabile 5V-Spannung. Durch Anbringen eines Ein-/Ausschalters direkt an der Batterie (statt am Ausgang des Step-Ups) werden die Batterien nicht durch Leckagen aus dem Stup-Up-Modul beeinträchtigt und können bei sporadischer Verwendung Jahre halten.

Das von mir verwendete Step-Up-Modul hatte eine USB-Buchse, die ich mit einer Zange entfernt habe, um Drähte an den Ausgang löten zu können. Alternativ können Sie einen regulierbaren Step-Up verwenden und ihn auf 5V-Ausgang einstellen.

Schneiden Sie zunächst die beiden Löcher aus, die dem Display und dem Ein-/Ausschalter entsprechen. Ich habe mit einem Bleistift die ungefähren Löcher gezeichnet, dann die Löcher mit einem Drehwerkzeug etwas zu klein ausgeschnitten und dann mit Handfeilen auf die genau passende Größe gefeilt.

Schneiden Sie einige der mehradrigen flexiblen roten und schwarzen Kabel von der Batteriebox ab und schließen Sie sie an das Aufwärtsmodul an, wobei entweder der Plus- oder der Minuspol durch einen Ein-/Ausschalter unterbrochen wird. Dann vom Step-Up-Modul direkt zum GND und den +5V oder dem Arduino.

Ich habe Heißkleber verwendet, um alle Elemente an Ort und Stelle zu halten: die Batteriebox, das Step-Up-Modul und um die Seiten des Displays.

Das Endergebnis ist ein Timer in einer stabilen Box mit einer kinderleichten Bedienung!

Empfohlen: