Indholdsfortegnelse:

Højhastighedsur til slowmotion-videoer: 4 trin
Højhastighedsur til slowmotion-videoer: 4 trin
Anonim
Image
Image
Materialer
Materialer

Næsten alle med en moderne smartphone har et højhastighedskamera, der kan bruges til at lave spektakulære slowmotion-videoer. Men hvis du vil måle, hvor lang tid det faktisk tager, at den sæbeboble springer eller vandmelonen eksploderer, kan det være svært at vise tiden på dine videoer: et stopur har et meget lille display og har en præcision på kun 1/100 sekund. Hvis du vil foretage kvantitative målinger, fandt jeg ud af, at den offentliggjorte billedhastighed for et kamera ikke er noget, du kan stole på!

Heldigvis er det virkelig let at konstruere et ur med ms-præcision og lyse store cifre ved hjælp af en Arduino og et 4-cifret 7-segment display. Desuden matcher de 12 ben fra et standard 0,56”display nøjagtigt pin-layoutet på Arduino Nano og kan loddes direkte på det.

Der er ingen start/stop/nulstilling på denne timer. Det begynder bare at køre, når du tænder det og flyder over efter 10 sekunder. Ideen er, at for at måle varigheden af en bestemt proces måler vi alligevel tidsforskellen mellem slutningen og begyndelsen.

Trin 1: Materialer

  • En Arduino Nano uden overskrifter loddet på den.
  • Et 0,56”4-cifret 7-segment display. Både fælles-anode eller fælles-katode er OK

Hvis du vil lægge den i en robust æske og være batteridrevet på 2 AA-batterier, tilføj:

  • En 60x100x25 elektronisk projektboks
  • En 2xAA batteriholder
  • Et trin-up modul
  • En vippekontakt på 10x15 mm

Værktøjer påkrævet

Loddekolbe

Sådan monteres den i en kasse:

  • Et roterende værktøj til råskære hullerne til displayet og kontakten
  • Hånd-filer til at finskære hullerne
  • En varmlimpistol til fastgørelse af komponenterne på plads.

Trin 2: Tilslutning af Arduino til skærmen

Tilslutning af Arduino til skærmen
Tilslutning af Arduino til skærmen

Overraskende nok matcher stifterne på en standard 4-cifret 7-segment skærm layoutet på en Arduino Nano på en sådan måde, at alle 12 ben på skærmen forbinder til IO-ben på Arduino. Dette gør det muligt at lodde skærmen direkte på Arduino uden at skulle bruge et printkort, stik eller kabler.

Lod de nederste ben på skærmen (genkendes fra decimalprikkerne og printet) til de analoge ben A0-A5. Lod de øverste ben på skærmen til de digitale stifter D4-D9.

Røde lysdioder har et spændingsfald på kun 2V, så det er normalt ikke en god idé at tilslutte dem til en 5V, og der bruges normalt en seriemodstand for at begrænse strømmen. Men måske på grund af indfletningen fandt jeg ud af, at det fungerer OK uden seriemodstande. Hvis ikke, her er en detaljeret instruktion om, hvordan du tilføjer seriemodstande direkte på Arduino Nano

Trin 3: Koden

Koden
Koden

Upload den vedhæftede skitse til Arduino Nano. Den nuværende kode er til et display med fælles anoder, men linjerne for fælles katode kan ikke kommenteres.

Når koden er uploadet, bør timeren begynde at køre hver gang Arduino startes. Du kan stoppe her eller se i det næste afsnit et eksempel på, hvordan du monterer det i en robust kasse og gør det batteridrevet.

Nogle kommentarer om koden:

Tiden er taget fra mikro () -funktionerne i stedet for millis () -funktionen af to gode grunde: Arduino -implementeringen af millis () er forfærdelig: de øges hver 1.024 ms, og en gang imellem springes et millisekund over at kompensere! Ikke alle Arduinos har krystaller med høj præcision. Hvis du opdager, at du er slukket med mere end en permille, kan du justere skillelinjen i linjen "unsigned long t = micros ()/1000;" for at få uret til at gå hurtigere eller langsommere.

Cifrene er indflettet, hvilket betyder, at der kun tændes et ciffer på et bestemt tidspunkt. Når du ændrer segmenterne i et ciffer, er alle cifre slukket, så der ikke vises noget skraldeciffer på noget tidspunkt. Jeg målte opdateringsfrekvensen for cifrene til 750 mikrosekunder, så hvert ciffer bliver opdateret mindst en gang i hvert millisekund!

Jeg har ikke for alvor optimeret uret til hastighed, da den nuværende hastighed er god nok til at vise millisekunder. Jeg tror, at Arduino kunne få to cifre mere (svarende til 100 og 10 mikrosekunder), men det ville kræve

  • Deaktivering afbryder og bruger timerne direkte
  • Direkte portmanipulation
  • Tilslutning af alle segmenter til en enkelt port og cifrene til en anden port
  • Undgå eksplicit beregning af cifferværdier, men brug trin i stedet (division og moduloperationer er langsomme)

Hvis jeg kunne få fat i et slowmotion-kamera med> 1000 fps, kunne jeg prøve det, for nu er jeg glad for ms-præcision.

Trin 4: Montering af den i en æske

Montering i en kasse
Montering i en kasse
Montering i en kasse
Montering i en kasse
Montering i en kasse
Montering i en kasse

En billig 100x60x25mm elektronisk projektboks, ikke vandtæt, passer let til denne timer sammen med batterier, et trin-up-modul og en tænd/sluk-kontakt. Til batteridrift giver en kombination af 2 AA-batterier med et trin-up-modul en sikker og stabil 5V spænding til Arduino. Ved at sætte en tænd/sluk-knap direkte på batteriet (i stedet for på trin-out-output) påvirkes batterierne ikke af lækage fra stup-up-modulet og kan vare i år, hvis det bruges sporadisk.

Step-up-modulet, som jeg brugte, havde et hun-USB-stik, som jeg fjernede med en tang, for at kunne lodde ledninger til udgangen. Alternativt kan du bruge en regulerbar step-up og indstille den til 5V output.

Start med at skære de to huller ud, der svarer til displayet og tænd/sluk -knappen. Jeg tegnede de omtrentlige huller med en blyant, skar derefter hullerne lidt for små ud med et roterende værktøj og arkiverede dem derefter med håndfiler til den nøjagtigt matchende størrelse.

Skær nogle af det flerstrengede fleksible røde og sorte kabel af batteriboksen, og slut dem til trinmodulet, enten med det positive eller det negative afbrudt af en tænd/sluk-kontakt. Derefter fra trinmodulet direkte til GND og +5V eller Arduino.

Jeg brugte varm lim til at holde alle elementer på plads: batterikassen, trinmodulet og rundt om skærmens sider.

Slutresultatet er en timer i en robust boks med en døds-enkel betjening!

Anbefalede: