Inhoudsopgave:

Wandmeterweergave: 4 stappen (met afbeeldingen)
Wandmeterweergave: 4 stappen (met afbeeldingen)

Video: Wandmeterweergave: 4 stappen (met afbeeldingen)

Video: Wandmeterweergave: 4 stappen (met afbeeldingen)
Video: Секрет опытных мастеров! Как легко состыковать материал, если в углу стоит круглая труба? #shorts 2024, November
Anonim
Image
Image
Concept
Concept

Ik kocht een goedkope zakhorlogemeter van eBay omdat ik dacht dat het een interessant nieuwtje zou zijn. Het bleek dat de meter die ik had gekocht niet geschikt was, maar tegen die tijd had ik mezelf verplicht iets te maken dat aan de muur zou hangen en een gespreksonderwerp zou zijn.

Het midden van het display is een analoge ampèremeter die wordt bekrachtigd door een opgeladen condensator die ontlaadt door de meter die daarbij de wijzernaald bezielt.

Een LED-display weerspiegelt de beweging van de aanwijzer en zorgt voor een opvallende weergave.

Het geheel wordt aangestuurd door een Atmel 328-microprocessor, direct ontwikkeld op een Arduino Uno, die de huidige lichtniveaus in de kamer meet en willekeurig het display activeert, allemaal gevoed door drie AA-batterijen.

Benodigdheden

Arduino Uno met Atmel 328-processor … zie rest van tekst

Selectie van LED's, rood, groen en geel met één wit

7 x 330R-weerstanden

1 x LDR

1 x 220uF condensator

1 x 220R weerstand

2 x 10k weerstanden

1 x gelijkrichterdiode

Een geschikte oude ampèremeter, typisch 100uA volledige schaal

Stap 1: Concept

Concept
Concept
Concept
Concept
Concept
Concept

De foto's vertellen een kort verhaal, de originele meter is ontworpen voor gebruik op buizenradio's en had meer dan 100 mA nodig en kon gewoon niet door een Arduino worden bestuurd. Dit zijn vroege ideeën voor de lay-out van een display. Uiteindelijk heb ik de meter uit elkaar gehaald met de bedoeling het mechanisme te vervangen, niet erg succesvol.

Uiteindelijk pakte ik een oude voltmeter met een 100uA mechanisme, perfect.

Stap 2: Het circuit

Het circuit
Het circuit
Het circuit
Het circuit

De originele build gebruikte een Arduino om de bits aan te sluiten in een vrij eenvoudig systeem. Zes digitale pinnen sturen de gekleurde LED's aan via 330R-weerstanden.

Eén digitale pin wordt gebruikt om de LDR-spanningsdeler van stroom te voorzien, de spanning wordt gemeten op een van de ADC-pinnen en gebruikt om het huidige lichtniveau en het tijdstip van de dag te schatten.

Eén digitale pin wordt gebruikt om de condensator op te laden via een diode en 220R-weerstand.

De meter is via een weerstand van 10k over de condensator aangesloten. Deze waarde moet mogelijk worden gewijzigd, afhankelijk van de volledige schaalmeting op de gebruikte ampèremeter.

Ik heb ook een resetknop aangesloten, die aan de zijkant van de vitrine moet worden gemonteerd.

Ten slotte wordt er nog een verbinding gemaakt vanaf de anode van een van de LED's om een spanningsreferentie te leveren om het batterijspanningsniveau te controleren. Dit circuit is nooit erg succesvol geweest en ik zal het veranderen in een eenvoudige spanningsdeler de volgende keer dat de batterijen leeg raken en het scherm van de muur is.

Stap 3: Implementatie

Implementatie
Implementatie
Implementatie
Implementatie
Implementatie
Implementatie
Implementatie
Implementatie

Het display op batterijen laten werken met een Arduino Uno was niet praktisch, het stroomverbruik zou te hoog zijn omdat een groot deel van het bord altijd actief is, en ik wilde dat het display ten minste zes maanden onaangeroerd op een muur zou staan. tijd.

Om het stroomverbruik te verminderen, werden de displaycircuits ontwikkeld met een Arduino en breadboard, de circuits werden overgebracht naar een matrixbord en vervolgens werd de uiteindelijk geprogrammeerde processor uit de Arduino verwijderd en in een socket op een klein stukje matrixbord geplaatst, samen met de xtal, en samengevoegd met lintkabel.

Uiteindelijk werkt het display 12 maanden op één set batterijen.

Een handige truc is om de Atmel-processor in een Arduino Uno te vervangen door een ZIF-socket, deze past prima, en dan de processor terug te plaatsen. Zodra het project klaar is voor gebruik, is de processor al geprogrammeerd en hoeft hij alleen maar te worden verwijderd en in een socket op het laatste bord te worden geplaatst. Als ik lege processors koop, ben ik een uur bezig met het plaatsen van bootloaders op ze allemaal, zodat ze op elk moment klaar zijn voor gebruik.

Stap 4: De code

Zoals je je misschien kunt voorstellen, is de code voor het uitvoeren van het basisscherm niet erg ingewikkeld, maar het belangrijkste gebied is het verminderen van het stroomverbruik. Er zijn twee manieren om dit te doen, de ene is om het scherm alleen te laten werken wanneer de kans groot is dat iemand het zal zien, en ten tweede om het stroomverbruik van circuits tot een minimum te beperken.

Het programma moet de Narcoleptic-bibliotheken hebben geïnstalleerd voordat het wordt gecompileerd.

Alle vertragingen in het systeem worden geïmplementeerd met behulp van de narcoleptische bibliotheek voor de volledige energiebesparende modus van de processor, met een stroomverbruik gemeten in enkele nanoampères.

De processor slaapt vier seconden per keer en voert bij het ontwaken een willekeurige routine uit om te bepalen of het systeem niet wil ontwaken. Zo niet, dan slaapt het systeem nog vier seconden.

Als de willekeurige routine waar is, wordt het LDR-circuit geactiveerd en wordt een lichtniveaumeting uitgevoerd. Het LDR-circuit wordt onmiddellijk daarna gedeactiveerd om stroom te besparen.

Het systeem werkt op vier geschatte tijdsperioden.

  • Nacht - het is erg donker en niemand zal waarschijnlijk kijken - niets doen en weer slapen
  • Vroege ochtend - in het eerste deel zijn er waarschijnlijk geen kijkers, maar houd de statistieken bij alsof het overdag is
  • Overdag - er kunnen kijkers zijn, maar activeer alleen de analoge meter, niet de LED's
  • Avond - er zullen waarschijnlijk kijkers zijn, dus activeer de volledige weergave

Het systeem schat dat de daglengte zal veranderen met de seizoenen, dus de avond wordt verlengd tot wat anders nacht zou zijn omdat de lengte van de dagen korter is, maar wanneer er waarschijnlijk nog steeds kijkers aanwezig zijn.

Als de tijd van de dag geschikt is, wordt een digitale uitgang gebruikt om de condensator op te laden en vervolgens uitgeschakeld. Met een weergave die alleen analoog is, gaat het systeem weer in slaapstand met alle uitgangen uit en de condensator ontlaadt zich door de meter waarvan de wijzer, die naar de volledige schaal was overgesprongen, terugkeert naar nul.

Als het LED-display actief is, meet het systeem de spanning op de condensator en geeft het een looplichtdisplay weer op basis van de gemeten spanning totdat het onder een drempel daalt wanneer het systeem slaapt.

Een tweede willekeurige selectie vindt plaats tegen het einde van de weergave om te bepalen of de weergave wordt herhaald of niet, wat de kijker meer interesseert.

Een witte LED wordt geactiveerd om het metervlak te verlichten wanneer de LED-show actief is.

De narcoleptische bibliotheek van Peter Knight zet de processor in een volledige slaapmodus, waarbij de uitgangen in de staat blijven waarin ze zich bevonden bij het in slaap vallen, maar alle interne klokken stoppen behalve de slaaptimer die beperkt is tot vier seconden. Dit kan worden getest in een Arduino, maar vanwege de Arduino power LED en USB-circuits wordt niet dezelfde energiebesparing bereikt.

Het systeem bevat nog steeds code die bedoeld was om de afnemende capaciteit van de batterijen te verklaren, maar dit bleek niet bruikbaar. De volgende keer dat het van de muur is, verander ik het programma om een soort batterijstatus te geven via de LED's of ampèremeter.

De definitieve versie heeft een resetknop aan de zijkant van de vitrine. De belangrijkste reden hiervoor is om demonstraties aan bezoekers toe te staan, zodat het systeem zijn basisroutine 10 keer na reset doorloopt voordat het terugkeert naar zijn normale willekeurige routine.

Aanbevolen: