Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
Bijna iedereen met een moderne smartphone heeft een high-speed camera waarmee spectaculaire slow-motion video's gemaakt kunnen worden. Maar als je wilt meten hoe lang het werkelijk duurt voordat die zeepbel barst of die watermeloen ontploft, dan vind je het misschien moeilijk om de tijd op je video's weer te geven: een stopwatch heeft een heel klein display en heeft een nauwkeurigheid van slechts 1/100ste van een seconde. Als je kwantitatieve metingen wilt doen, kwam ik erachter dat de gepubliceerde framesnelheid van een camera niet iets is waarop je kunt vertrouwen!
Gelukkig is het heel eenvoudig om een klok te bouwen met ms-precisie en heldere grote cijfers met behulp van een Arduino en een 4-cijferig 7-segments display. Bovendien komen de 12 pinnen van een standaard 0,56” display exact overeen met de pinlay-out van de Arduino Nano en kunnen er direct op worden gesoldeerd.
Er is geen start/stop/reset op deze timer. Hij begint gewoon te lopen als je hem aanzet en loopt na 10 seconden over. Het idee is dat om de duur van een bepaald proces te meten, we sowieso het tijdsverschil tussen het einde en het begin meten.
Stap 1: Materialen
- Een Arduino Nano, zonder de headers erop gesoldeerd.
- Een 0,56” 4-cijferig 7-segments display. Zowel common-anode als common-kathode zijn OK
Als je hem in een stevige doos wilt plaatsen en op 2 AA-batterijen wilt laten werken, voeg dan toe:
- Een elektronische projectdoos van 60x100x25
- Een 2xAA batterijhouder
- Een opstapmodule
- Een 10x15mm aan/uit tuimelschakelaar
Benodigde gereedschappen
Soldeerbout
Om het in een doos te monteren:
- Een roterend gereedschap om de gaten voor het display en de schakelaar ruw uit te snijden
- Handvijlen om de gaten fijn te snijden
- Een lijmpistool om de componenten op hun plaats te fixeren.
Stap 2: De Arduino aansluiten op het display
Verbazingwekkend genoeg komen de pinnen van een standaard 4-cijferig 7-segments display overeen met de lay-out van een Arduino Nano op een zodanige manier dat alle 12 pinnen van het display verbinding maken met IO-pinnen van de Arduino. Hierdoor kan het display direct op de Arduino worden gesoldeerd zonder dat een PCB, connectoren of kabels nodig zijn.
Soldeer de onderste pinnen van het display (herkenbaar aan de decimale punten en de print) aan de analoge pinnen A0-A5. Soldeer de bovenste pinnen van het display op de digitale pinnen D4-D9.
Rode LED's hebben een spanningsval van slechts 2V, dus het is meestal geen goed idee om ze op 5V aan te sluiten, en meestal wordt een serieweerstand toegepast om de stroom te beperken. Maar misschien vanwege de interleaving, ontdekte ik dat het goed werkt zonder serieweerstanden. Zo niet, dan is hier een gedetailleerde instructie over het rechtstreeks toevoegen van serieweerstanden op de Arduino Nano
Stap 3: De code
Upload de bijgevoegde schets naar de Arduino Nano. De huidige code is voor een display met gemeenschappelijke anode, maar de lijnen voor gemeenschappelijke kathode kunnen niet worden becommentarieerd.
Zodra de code is geüpload, zou de timer moeten beginnen te lopen elke keer dat de Arduino wordt opgestart. U kunt hier stoppen of in het volgende gedeelte een voorbeeld bekijken hoe u het in een stevige doos kunt monteren en op batterijen kunt laten werken.
Enkele opmerkingen over de code:
De tijd wordt genomen van de micro()-functies, in plaats van de millis()-functie, om twee goede redenen: De Arduino-implementatie van millis() is verschrikkelijk: ze verhogen elke 1,024 ms, en dan wordt af en toe een milliseconde overgeslagen compenseren! Niet alle Arduino's hebben zeer nauwkeurige kristallen. Als je merkt dat je er meer dan een promille naast zit, kun je de scheidingslijn aanpassen in de regel "unsigned long t=micros()/1000;" om de klok sneller of langzamer te laten gaan.
De cijfers zijn doorschoten, wat betekent dat er slechts één cijfer op een bepaalde tijd brandt. Bij het wijzigen van de segmenten van een cijfer zijn alle cijfers uit, zodat er op geen enkel moment een afvalcijfer wordt weergegeven. Ik heb de updatefrequentie van de cijfers gemeten op 750 microseconden, dus elk cijfer wordt minstens één keer per milliseconde bijgewerkt!
Ik heb de klok niet serieus geoptimaliseerd voor snelheid, aangezien de huidige snelheid goed genoeg is voor het weergeven van milliseconden. Ik denk dat de Arduino gemaakt zou kunnen worden om twee cijfers meer weer te geven (overeenkomend met de 100 en 10 microseconden), maar het zou
- Interrupts uitschakelen en direct de timers gebruiken
- Directe poortmanipulatie
- Alle segmenten op een enkele poort aansluiten en de cijfers op een andere poort
- Vermijd expliciete berekening van cijferwaarden, maar gebruik in plaats daarvan incrementen (deel- en modulusbewerkingen zijn traag)
Als ik een slow-motioncamera met >1000 fps zou kunnen bemachtigen, zou ik het kunnen proberen, voor nu ben ik blij met ms-precisie.
Stap 4: Montage in een doos
Een goedkope 100x60x25mm elektronische projectdoos, niet waterdicht, past gemakkelijk in deze timer, samen met batterijen, een step-up module en een aan/uit schakelaar. Voor batterijvoeding geeft een combinatie van 2 AA-batterijen met een step-up-module een veilige en stabiele 5V-spanning aan de Arduino. Door een aan/uit schakelaar direct op de accu te plaatsen (in plaats van op de uitgang van de step-up) hebben de accu's geen last van lekkage uit de stup-up module, en kunnen ze jaren meegaan bij sporadisch gebruik.
De step-up module die ik gebruikte had een vrouwelijke USB-connector, die ik met een tang verwijderde, om draden naar de uitgang te kunnen solderen. Als alternatief kunt u een regelbare step-up gebruiken en deze instellen op 5V-uitgang.
Begin met het uitsnijden van de twee gaten die overeenkomen met het display en de aan/uit-schakelaar. Ik tekende met een potlood de geschatte gaten, knipte toen de gaten een beetje te klein uit met een roterend gereedschap en vijlde ze vervolgens met handvijlen tot de exact overeenkomende grootte.
Knip een deel van de meeraderige flexibele rode en zwarte kabel van de accubak af en sluit ze aan op de step-up-module, waarbij ofwel de positieve of de negatieve onderbroken wordt door een aan/uit-schakelaar. Dan van de step-up module direct naar de GND en de +5V of de Arduino.
Ik gebruikte hot-glue om alle elementen op hun plaats te houden: de accubak, de opstapmodule en rond de zijkanten van het scherm.
Het eindresultaat is een timer in een stevige doos met een doodeenvoudige bediening!
Aanbevolen:
Hoe maak je een analoge klok en digitale klok met ledstrip met behulp van Arduino - Ajarnpa
Hoe maak je een analoge klok en digitale klok met ledstrip met behulp van Arduino: vandaag zullen we een analoge klok & Digitale klok met Led Strip en MAX7219 Dot module met Arduino. Het corrigeert de tijd met de lokale tijdzone. De analoge klok kan een langere LED-strip gebruiken, zodat hij aan de muur kan worden gehangen om een kunstwerk te
Idee voor doe-het-zelf-activiteit voor weerstations voor 12+ jaar: 4 stappen
Idee voor doe-het-zelf-weerstationactiviteit voor 12-plussers: in deze activiteit zullen deelnemers hun weerstation opzetten, de lucht in sturen en de opnames (licht, temperatuur, vochtigheid) in realtime volgen via de Blynk-app. Bovendien leert u hoe u de geregistreerde waarden publiceert
Oplichtende klok voor kinderen - Groen betekent gaan! Rood, blijf in BED!!!: 5 stappen (met afbeeldingen)
Oplichtende klok voor kinderen - Groen betekent gaan! Rood, blijf in BED!!!: We werden gek zonder voldoende slaap!!! Onze 2-jarige kon niet begrijpen hoe hij moest "wachten op de 7" op de klok voordat hij ochtend na ochtend uit zijn kamer kwam. Hij zou vroeg wakker worden (ik bedoel ongeveer 5:27 uur - "er is een 7!!!"
Ontwerp van een High Power PDB (Power Distribution Board) voor een Pixhawk: 5 stappen
Ontwerp van een High Power PDB (Power Distribution Board) voor een Pixhawk: een PCB om ze allemaal van stroom te voorzien! Momenteel zijn de meeste materialen die je nodig hebt om een drone te bouwen goedkoop verkrijgbaar op internet, dus het idee om een zelfontwikkelde PCB te maken is het helemaal niet waard, behalve een paar gevallen waarin je een rare en
Een klok maken van een klok: 11 stappen (met afbeeldingen)
Een klok maken van een klok: in deze Instructable neem ik een bestaande klok en creëer ik een betere klok. We gaan van de afbeelding links naar de afbeelding rechts. Voordat u op uw eigen klok begint, moet u weten dat het opnieuw in elkaar zetten een uitdaging kan zijn, aangezien de piv