Sådan gør du - Lav et analogt forstærkermålerur - 💡 Fix My Ideas

Sådan gør du - Lav et analogt forstærkermålerur

Sådan gør du - Lav et analogt forstærkermålerur


Forfatter: Ethan Holmes, 2019

ANALOG AMP METER CLOCK - En elegant timepiece markerer timerne med nålemålere - Ved Gene Scogin ...

For flere år siden havde jeg ideen om at lave et analogt ur, der brugte nålmålere i voltmeter-stil snarere end en standard drejeknap. For et par uger siden lavede jeg endelig en, ved hjælp af et Arduino bord og 3 nuværende målere fra en lokal elektronik butik.Jeg byggede det op i etaper og begyndte med en enkelt meter, der viste nogle sekunder, derefter tilføjede time og minut meter, tilføjer knapper og programmering for at gøre tiden indstillelig og endelig bygge den i en dejlig kasse. Sådan gjorde jeg det.

Feeder måleren

Arduino bordet har 6 udgange, der kan køre analoge værdier ved hjælp af pulsbreddemodulation (PWM). Det betyder, at de simulerer udgangsspændinger, der ligger mellem binær høj og lav (0V og 5V) ved hurtigt at cykle mellem de to for forskellige tidsforhold. for eksempel ville en 2,5 V-udgang blive simuleret ved at være tændt i præcis halvdelen af ​​tiden. Jeg fandt ud af, at Arduino's pulsfrekvens var hurtig nok (490Hz), og mine målere var langsomt nok til at køre dem direkte fra bordets udgange uden at nålene vibrerede; du behøver ikke en kondensator til at udjævne signalet.

Jeg kunne kun finde ammetere og ikke voltmetre, så jeg havde brug for at sætte en modstand i serie med måleren for at begrænse strømmen. Ohms lov siger, at for at få 1mA strøm med en spænding på 5V, har du brug for 5.000Ω modstand. For at tillade normale variationer i komponenter, samlede jeg denne modstand ved at sætte en 4,750Ω modstand i serie med et 0Ω til 500Ω potentiometer. For at indstille rækkevidden for hver meter, skal du først nulstille den med justeringsskruen på selve måleren, og juster potten for at indstille højdepunktet.

MATERIALE

Arduino microcontroller board Jeg brugte en Arduino Diecimila, jeg købte hos Maker Faire. Du kan bestille en fra store.makezine.com.

1mA nuværende målere (3) Sørg for, at dit bord leverer nok strøm til at køre målerens nål over hele dets rækkevidde; Jeg prøvede oprindeligt en 50mA meter, men det var ikke skaleret rigtigt til Arduino.

4,750Ω modstande (3)

500Ω potentiometre (3) aka variable modstande

Knappen skifter, øjeblikkelig SPST (3)

Loddefri brødbræt

Computer med printer og papir

Sprøjteklæbemiddel

Flot træ kasse og maling

Microcontroller output pin løber gennem justerbar modstand og derefter til sekunder meter.

Gør det Tick

Når vi har fået vores meter tilsluttet, kan vi skrive et simpelt C-program for at gøre det tæller 60 sekunder over hele spektret hvert minut. Den analoge Write () -funktion tager en værdi mellem 0 og 255 og indekset for en udgangsstift og indstiller output for den angivne pin til en PWM-værdi mellem 0V og 5V.

For at spore sekunderne kører programmet en kontinuerlig sløjfe, der kalder millis (), en indbygget Arduino-funktion, der returnerer antallet af millisekunder, siden bordet sidst blev tændt. Den returnerede værdi sammenlignes med millis () -værdien fra den foregående sløjfe, og forskellen lægges til det løbende antal sekunder, hvilket igen opdaterer displayet.

Brødbrættet bærer 3 identiske kredsløb, der kører parallelt, for timer, minutter og sekunder meter.

Når sekunderne vikler rundt, nulstiller koden løbende summen til 0 og tilføjer resten. Koden håndterer også et andet specielt tilfælde, når den værdi, der returneres af millis () selv ruller over, efter ca. hver 9. timers oppetid.

Jeg brugte Arduino's pin 11 til at køre min nyprogrammerede sekunder meter. Derefter gik jeg videre til programmering og kørsel af timer og minutter meter på en lignende måde ved hjælp af tappene 9 og 10. Kablet for hver meter er nøjagtig det samme: Microcontroller udgangsstiften forbinder til potentiometeret i serie med modstanden, hvorefter fører til måleren. Alle koden til dette projekt sammen med ledningsdiagrammer er tilgængelig på makezine.com/13/diycircuits_clock.

Originale ammetere viste en skala mellem 0 og 1 milliampere.

Indstilling af klokkeslæt

For at gøre uret nyttigt, har vi brug for en måde at indstille tiden efter, når vi tænder den. For at gøre dette brugte jeg 3 kontakter. Man cykler uret gennem sine 4 tilstande (normalt, sæt, alt lavt og alt højt - forklaret senere), en øger timerne og en øger minutterne. For at få en korrekt læsning fra digitale indgange har vi brug for en pull-up modstand mellem hver indgangsstift og + 5V. Arduinos mikroprocessor har disse bekvemt indbygget, men du skal eksplicit aktivere dem ved at erklære stiften som input med

pinMode (b1pin, INPUT)

og derefter ringe

digitalWrite (pin, HIGH)

Fordi programmet løber gennem hovedlinjen mange gange hvert sekund, antager vi, at et enkelt tryk på knappen vil blive læst flere gange. For at håndtere dette har jeg en variabel for hver knap, der holder styr på dens tilstand. Når programmet først registrerer, at en knappes tilstand er ændret, forsinker den i 20 millisekunder for at afvente signalstop fra kontakten.

Modusomskifteren bevæger uret mellem 4 tilstande: normal, indstillet tid, alle meter lave og alle meter høj. Normal tilstand viser tiden, indstillingsfunktionen gør det muligt at ændre det, og de lave og højeste modes indstiller de 3 udgangsstifter til henholdsvis 0V og 5V til kalibrering af målerne. Koden fortsætter med at holde styr på den aktuelle tid i alle tilstande, medmindre den er nulstillet. Jeg overvejer at tilføje yderligere tilstande til uret, såsom alarm, stopur og timer.

Gør vægten

Vægten på målere som købt læses fra 0mA til 1mA, men klokken er læselig, vi har brug for skalaer, der går fra 0 til 24 for timer og 0 til 60 i minutter og sekunder. At gøre dette endte med at være en af ​​de vanskeligste dele af projektet.

Jeg startede ved at adskille en af ​​målerne og scanne det trykte panel med skalaen. Derefter brugte jeg måleværktøjerne i Unix tegneprogrammet Xfig (xfig.org) til at måle billedets afstande og vinkler. En komplikation var, at skalaen ikke er baseret på en simpel cirkelbue; den komprimeres vertikalt, så at enderne af skalaen ligger længere væk fra nålens drejepunkt end midten.

For at generere de nye skalaer skrev jeg et program i Tcl (tcl.tk), der tager et sæt afstande og vinkler, der beskriver en skala, beregner dets komponentlinjer og kurver og udsender en billedfil i Xfigs oprindelige format. Jeg læste denne fil i Xfig og brugte den til at generere en udskriftsbar PostScript-fil.

Fig. A: Sekundmeter-skalaen viser 60 med en indgang på 1 milliamp.

Det eneste problem var, at den fineste linje, som Xfig kunne tegne, var tykkere end jeg ønskede, så jeg redigerede PostScript for hånd for at gøre linjen tyndere, før den blev udskrevet. Når jeg udskrev de nye skalaer, skarede jeg dem ud og brugte sprøjteklæbemiddel til at holde dem på pladerne (figur A).

For at hjælpe med at justere skalaerne på pladerne udskrev jeg ekstra mærker, hvor skruehullerne var. Og så de oprindelige skalaer ikke ville vise sig gennem papiret, satte jeg de nye skalaer på pladernes bagside, som var tomme (og symmetriske).

Boxing It Up

Dette er den type projekt, der har brug for en god kasse, at vise målerne og skjule ledningerne og sådan. Min kone foreslog, at en flot trækasse ville se godt ud på mantlen, og vi valgte en på en lokalt håndværk.

Fig. B: Papirskabelon til skæring af huller i kassen.

Figur C: Huller i kassen, med nogle huller savet ud i slidser for at passe skruer.

Fig. D: Målerne med deres nye skalaer passer ind i kassen.

Montering af målerne betød at bore et bredt centralt hul til bagsiden af ​​måleren selv, omgivet jævnt af 4 små huller til monteringsskruerne. Jeg lavede en papirskabelon som en vejledning (Figur B, forrige side) og borede i overensstemmelse hermed, men det var svært at få monteringshullerne nøjagtige nok, så jeg brugte en større bit og en nøglehulsave for at rydde nok plads til dem til at passe (Figur C). Målerne passer alle sammen tæt i de centrale huller, så jeg har ikke problemer med at sætte møtrikker og spændeskiver på monteringsskruerne (figur D).

For strømkilden betragtede jeg at lægge batterier i æsken, men Arduino trækker 20mA-30mA, så selv med D-celler ville de skulle udskiftes hver 5. uge. I stedet besluttede jeg at bruge en væg vorte og løb ledningen gennem et hul i bagsiden af ​​kassen. Knapperne til indstilling af uret og skiftningstilstandene jeg forlod på brødbrættet inde.

Fig. E: Rød maling undercoat.

Fig. F: Sort maling delvist gnides langs kanterne og udsætter det røde underlag for en antik virkning.

Endelig ønskede jeg, at kassen skulle være en alderen sort, der matchede vores møbler. Jeg har opnået denne effekt ved først at lægge en kappe rød maling og lade den tørre (figur E). Jeg fulgte derefter den med sort og tørrede den våde maling ud af kanterne og eksponerede små mængder rød under (figur F).

Slutresultatet er et unikt ur og en god samtale starter, der kan vises fremtrædende i mit hjem og nu også i din!

Fig. G: Færdig forstærkermåler med låget åbent for at vise kredsløbet.

Fig. H: Ur viser analog til blinkende 12:00.


Gene Scogin er en computerprogrammerer, der nyder en lang række praktiske projekter.


Referencer:

Lav: Arduino Arduino Starter Kit Kom i gang med Arduino

http://store.makezine.com

http://www.makezine.com/13/diycircuits_clock

http://xfig.org

http://tcl.tk


Fra MAKE 13 - Side 165. For at få MAKE, abonner eller køb enkeltvolumener.



Du Kan Være Interesseret

Matematik mandag: ParaGons systemet

Matematik mandag: ParaGons systemet


Denne uge i Making: Adam Savages Makerspace Tour, Duct Tape Prom Kjoler og mere

Denne uge i Making: Adam Savages Makerspace Tour, Duct Tape Prom Kjoler og mere


Omdannelse af en propanbeholder til en VW Bus Inspireret Fire Pit

Omdannelse af en propanbeholder til en VW Bus Inspireret Fire Pit


Hvordan jeg byggede en savværk i baghaven

Hvordan jeg byggede en savværk i baghaven






Seneste Indlæg