Indholdsfortegnelse:

Vægmåler Display: 4 trin (med billeder)
Vægmåler Display: 4 trin (med billeder)

Video: Vægmåler Display: 4 trin (med billeder)

Video: Vægmåler Display: 4 trin (med billeder)
Video: Broken Aluminum Gear Housing 2024, Juli
Anonim
Image
Image
Koncept
Koncept

Jeg købte en billig lommeur fra eBay og tænkte på, at det ville være en interessant nyhed. Det viste sig, at måleren, jeg havde købt, ikke var egnet, men på det tidspunkt havde jeg forpligtet mig til at producere noget, der ville hænge på en væg og være et talepunkt.

Midten af displayet er et analogt amperemeter, som får strøm fra en opladet kondensator, der udleder gennem måleren og animerer markørenålen ved at gøre det.

Et LED -display afspejler markørens bevægelse og giver et iøjnefaldende display.

Det hele styres af en Atmel 328 mikroprocessor, direkte udviklet på en Arduino Uno, som måler de aktuelle lysniveauer i rummet og tilfældigt udløser displayet, der alle drives af tre AA -batterier.

Forbrugsvarer

Arduino Uno med Atmel 328 processor … se resten af teksten

Valg af lysdioder, rød, grøn og gul med en hvid

7 x 330R modstande

1 x LDR

1 x 220uF kondensator

1 x 220R modstand

2 x 10k modstande

1 x ensretter diode

Et passende gammelt amperemeter, typisk 100uA fuld skala

Trin 1: Koncept

Koncept
Koncept
Koncept
Koncept
Koncept
Koncept

Billederne fortæller en kort historie, den originale måler var designet til brug på ventilradioer og krævede over 100mA og kunne bare ikke drives af en Arduino. Disse er tidlige idéer til displaylayout. Til sidst tog jeg måleren fra hinanden med den hensigt at udskifte mekanismen, ikke særlig vellykket.

Til sidst hentede jeg et gammelt voltmeter med en 100uA mekanisme, perfekt.

Trin 2: Kredsløbet

Kredsløbet
Kredsløbet
Kredsløbet
Kredsløbet

Den originale konstruktion brugte en Arduino til at forbinde bitene i et ret simpelt system. Seks digitale ben driver de farvede lysdioder via 330R modstande.

En digital pin bruges til at aktivere LDR -spændingsdeleren, spændingen måles på en af ADC -benene og bruges til at estimere det aktuelle lysniveau og tidspunktet på dagen.

En digital pin bruges til at oplade kondensatoren via en diode og 220R modstand.

Måleren er forbundet på tværs af kondensatoren via en 10k modstand. Denne værdi skal muligvis ændres afhængigt af målingen i fuld skala på det anvendte amperemeter.

Jeg har også tilsluttet en nulstillingsknap, der skal monteres på siden af vitrinen.

Endelig foretages en yderligere forbindelse fra anoden på en af LED'erne for at tilvejebringe en spændingsreference for at kontrollere batterispændingsniveauet. Dette kredsløb har aldrig været særlig vellykket, og jeg vil ændre det til en simpel spændingsdeler, næste gang batterierne løber tør og displayet er væk fra væggen.

Trin 3: Implementering

Implementering
Implementering
Implementering
Implementering
Implementering
Implementering
Implementering
Implementering

At køre displayet fra batterier ved hjælp af en Arduino Uno var ikke praktisk, det nuværende forbrug ville være for højt, da meget af tavlen er aktiv hele tiden, og jeg ville have, at displayet skulle stå op på en væg uberørt i mindst seks måneder ved en tid.

For at reducere strømforbruget blev skærmkredsløbene udviklet med en Arduino og brødbræt, kredsløbene blev overført til matrixkort og derefter den endelig programmerede processor fjernet fra Arduino og sat i en stikkontakt på et lille stykke matrixbræt sammen med xtal, og sammenføjet med båndkabel.

I sidste ende kører displayet i hele 12 måneder på et sæt batterier.

Et nyttigt trick er at udskifte Atmel -processoren i en Arduino Uno med en ZIF -sokkel, denne passer fint, og sæt derefter processoren i igen. Når projektet er klar til at gå, er processoren allerede programmeret og skal bare fjernes og sættes i en stikkontakt på det sidste bord. Når jeg køber tomme processorer, bruger jeg en time på at sætte bootloadere på dem alle, så de er klar til brug når som helst.

Trin 4: Koden

Som det kan forestilles, er koden til at køre grundskærmen ikke særlig kompliceret, men det centrale område er reduktion af strømforbruget. Der er to tilgange til dette, den ene er kun at køre skærmen, når det er sandsynligt, at nogen vil se det, og for det andet at reducere strømforbruget i kredsløb til et minimum.

Programmet skal have de narkoleptiske biblioteker installeret før kompilering.

Alle forsinkelser i systemet implementeres ved hjælp af det narcoleptiske bibliotek til fuld strømforbrug i processoren, med et strømforbrug målt i et par nanoampere.

Processoren sover i fire sekunder ad gangen, og når han vågner, kører den en tilfældig rutine for at afgøre, om systemet ikke vil vågne. Hvis ikke, sover systemet i yderligere fire sekunder.

Hvis den tilfældige rutine er sand, aktiveres LDR -kredsløbet, og der foretages en måling af lysniveau. LDR -kredsløbet deaktiveres umiddelbart efter for at spare strøm.

Systemet fungerer på fire estimerede tidsperioder.

  • Nat - det er meget mørkt, og ingen vil sandsynligvis se det - gør ingenting og går i søvn igen
  • Tidlig morgen - i den første del er det usandsynligt, at der vil være nogen seere, men vedligeholde statistik som om dagtimerne
  • Dagtid - der kan være overvågere, men aktiver kun den analoge måler, ikke lysdioderne
  • Aften - det er sandsynligt, at der vil være overvågere, så aktiver hele skærmen

Systemet anslår, at dagslængden vil ændre sig med årstiderne, så aftenen forlænges til det, der ellers ville være nat, da længden af dage er kortere, men når seerne stadig er til stede.

Hvis tidspunktet på dagen er passende, bruges en digital udgang til at oplade kondensatoren og derefter slukke. Med et analogt display går systemet i dvale med al output slukket, og kondensatoren udlades gennem måleren, hvis markør, der havde flikket over til fuld skala, vender tilbage til nul.

Når LED -displayet er aktivt, måler systemet spændingen på kondensatoren og viser et kørelysdisplay baseret på den målte spænding, indtil det falder under en tærskel, når systemet sover.

Et andet tilfældigt valg finder sted mod slutningen af displayet for at afgøre, om displayet vil blive gentaget eller ej, hvilket giver mere interesse for seeren.

En hvid LED er aktiveret for at belyse målerfladen, når LED -displayet er aktivt.

Det narkoleptiske bibliotek af Peter Knight sætter processoren i en fuld dvaletilstand, hvor output vil forblive i den tilstand, de var ved at gå i søvn, men alle interne ure stopper undtagen sleep -timeren, der er begrænset til fire sekunder. Dette kan testes i en Arduino, men på grund af Arduino strøm -LED og USB -kredsløb opnår ikke de samme strømbesparelser.

Systemet indeholder stadig kode, der var beregnet til at tage højde for batteriernes faldende kapacitet, men det har ikke vist sig nyttigt. Næste gang det er væk fra væggen, vil jeg ændre programmet for at give en slags batteristatus via lysdioder eller ammeter.

Den sidste version har en nulstillingsknap monteret på siden af vitrinen. Hovedårsagen til dette er at tillade demonstrationer for besøgende, så systemet vil gennemgå sin grundlæggende rutine 10 gange efter nulstilling, før det går tilbage til det normale tilfældige rutine.

Anbefalede: