Cuprins:

Afișaj contor de perete: 4 pași (cu imagini)
Afișaj contor de perete: 4 pași (cu imagini)

Video: Afișaj contor de perete: 4 pași (cu imagini)

Video: Afișaj contor de perete: 4 pași (cu imagini)
Video: Dorian este speriat de un interlop când face poze 😱🥊🤣 #timisoara #dorianpopa #cluj #bucuresti 2024, Decembrie
Anonim
Image
Image
Concept
Concept

Am cumpărat un contor de ceas de buzunar ieftin de la eBay, gândindu-mă că va constitui un element interesant de noutate. S-a dovedit că metrul pe care l-am cumpărat nu era potrivit, dar până atunci m-am angajat să produc ceva care să atârne de un perete și să fie un punct de vorbire.

Centrul afișajului este un ampermetru analog care este alimentat de un condensator încărcat care se descarcă prin contor animând acul indicatorului în acest sens.

Un afișaj LED reflectă mișcarea indicatorului, oferind un afișaj atrăgător.

Întregul este controlat de un microprocesor Atmel 328, dezvoltat direct pe un Arduino Uno, care măsoară nivelurile actuale de lumină din cameră și declanșează aleator afișajul, toate alimentate de trei baterii AA.

Provizii

Arduino Uno cu procesor Atmel 328… vezi restul textului

Selecție de LED-uri, roșu, verde și galben cu un singur alb

Rezistențe 7 x 330R

1 x LDR

1 x condensator 220uF

1 x rezistor 220R

2 rezistențe de 10k

1 x diodă redresoare

Un ampermetru vechi adecvat, de obicei 100uA la scară completă

Pasul 1: Concept

Concept
Concept
Concept
Concept
Concept
Concept

Imaginile spun o poveste scurtă, contorul original a fost conceput pentru a fi utilizat pe aparatele de radio cu supape și a necesitat peste 100mA și pur și simplu nu putea fi rulat de un Arduino. Acestea sunt idei de aspect timpuriu pentru afișare. În cele din urmă am luat contorul în afară cu intenția de a înlocui mecanismul, nu prea reușit.

În cele din urmă am luat un voltmetru vechi cu un mecanism de 100uA, perfect.

Pasul 2: Circuitul

Circuitul
Circuitul
Circuitul
Circuitul

Construcția originală a folosit un Arduino pentru a conecta biții într-un sistem destul de simplu. Șase pini digitali conduc LED-urile colorate prin rezistențe 330R.

Un pin digital este utilizat pentru a energiza divizorul de tensiune LDR, tensiunea fiind măsurată pe unul dintre pinii ADC și utilizată pentru a estima nivelul curent de lumină și ora din zi.

Un pin digital este utilizat pentru a încărca condensatorul printr-o diodă și un rezistor 220R.

Contorul este conectat prin condensator printr-un rezistor de 10 k. Este posibil să fie necesară modificarea acestei valori în funcție de măsurarea la scară completă a ampermetrului utilizat.

De asemenea, m-am conectat la un buton de resetare, pentru a fi montat pe partea laterală a vitrinei.

În sfârșit, se face o conexiune suplimentară de la anodul unuia dintre LED-uri pentru a furniza o referință de tensiune pentru a verifica nivelul de tensiune al bateriei. Acest circuit nu a avut niciodată un mare succes și îl voi schimba într-un simplu divizor de tensiune data viitoare când bateriile se vor descărca și afișajul se va închide de pe perete.

Pasul 3: Implementare

Implementare
Implementare
Implementare
Implementare
Implementare
Implementare
Implementare
Implementare

Rularea afișajului de la baterii folosind un Arduino Uno nu a fost practic, consumul curent ar fi prea mare, deoarece o mare parte a plăcii este activă tot timpul și am vrut ca afișajul să fie pe un perete neatins timp de cel puțin șase luni la fiecare timp.

Pentru a reduce consumul de curent, circuitele de afișare au fost dezvoltate cu un Arduino și un panou, circuitele transferate pe placa matrice și apoi procesorul programat în cele din urmă a fost scos din Arduino și introdus într-o priză pe o bucată mică de placă matricială, împreună cu xtal, și unite împreună cu un cablu cu bandă.

În cele din urmă, afișajul rulează timp de 12 luni complete pe un set de baterii.

Un truc util este înlocuirea procesorului Atmel într-un Arduino Uno cu o priză ZIF, acesta se potrivește bine și apoi reintroduceți procesorul. Odată ce proiectul este gata să înceapă, procesorul este deja programat și trebuie doar să îl scoată și să îl introducă într-o priză de pe placa finală. Când cumpăr procesoare goale petrec o oră punând încărcătoare pe toate, astfel încât să fie gata de utilizare în orice moment.

Pasul 4: Codul

După cum s-ar putea imagina, codul pentru rularea afișajului de bază nu este foarte complicat, dar zona cheie este reducerea consumului de energie. Există două abordări în acest sens, una este aceea de a rula afișajul numai atunci când este probabil că cineva îl va vedea și, în al doilea rând, de a reduce consumul de energie al circuitelor la minimum.

Programul trebuie să aibă bibliotecile Narcoleptice instalate înainte de compilare.

Toate întârzierile din sistem sunt implementate utilizând biblioteca narcoleptică pentru modul complet de putere redusă al procesorului, cu un consum de energie măsurat în câteva nanoampuri.

Procesorul doarme patru secunde la rând și, la trezire, rulează o rutină aleatorie pentru a determina dacă sistemul se va trezi. Dacă nu, sistemul va dormi încă patru secunde.

Dacă rutina aleatorie este adevărată, circuitul LDR este activat și se efectuează o măsurare a nivelului de lumină. Circuitul LDR este dezactivat imediat după aceea pentru a economisi energie.

Sistemul funcționează pe patru perioade de timp estimate.

  • Noaptea - este foarte întunecată și nimeni nu se poate uita - nu face nimic și se întoarce la culcare
  • Dimineața devreme - în prima parte este puțin probabil să fie observatori, dar să mențină statisticile ca în timpul zilei
  • În timpul zilei - pot exista observatori, dar activați numai contorul analogic, nu LED-urile
  • Seara - este probabil că vor fi observatori, așa că activați afișajul complet

Sistemul estimează că lungimea zilei se va schimba odată cu anotimpurile, astfel încât seara se extinde în ceea ce altfel ar fi noaptea, deoarece lungimea zilelor este mai scurtă, dar când este probabil ca observatorii să fie prezenți.

Dacă ora din zi este adecvată, o ieșire digitală este utilizată pentru a încărca condensatorul și apoi opriți. Cu un afișaj numai analog, sistemul revine la repaus cu toate ieșirile oprite și condensatorul se descarcă prin contor al cărui indicator, care a trecut la scară completă, revine la zero.

Cu afișajul LED activ, sistemul măsoară tensiunea condensatorului și prezintă un afișaj de lumină de funcționare pe baza tensiunii măsurate până când scade sub un prag când sistemul doarme.

O a doua selecție aleatorie are loc spre sfârșitul afișajului pentru a determina dacă afișajul va fi repetat sau nu, oferind mai mult interes pentru observator.

Un LED alb este activat pentru a ilumina fața contorului atunci când spectacolul LED este activ.

Biblioteca narcoleptică de Peter Knight pune procesorul într-un mod de repaus complet, în care ieșirile vor rămâne în starea în care se aflau în repaus, dar toate ceasurile interne se opresc, cu excepția temporizatorului de repaus, care este limitat la patru secunde. Acest lucru poate fi testat într-un Arduino, dar din cauza LED-urilor Arduino și a circuitelor USB nu realizează aceleași economii de energie.

Sistemul conține în continuare cod care a fost menit să țină cont de capacitatea descrescătoare a bateriilor, dar acest lucru nu s-a dovedit util. Data viitoare când va ieși de pe perete, voi schimba programul pentru a oferi un fel de stare a bateriei prin LED-uri sau ampermetru.

Versiunea finală are un buton de resetare montat pe partea laterală a vitrinei. Principalul motiv pentru aceasta este de a permite demonstrații vizitatorilor, astfel încât sistemul să ruleze rutina de bază de 10 ori după resetare înainte de a reveni la rutina normală aleatorie.

Recomandat: