Arduino'yu 24 saatte bir zamanlayıcı ile açın


9

Şu anda günde bir kez bir ESP8266 aracılığıyla araç akümülatörünün şarjını gönderen bir Arduino projesi üzerinde çalışıyorum. Kış aylarında arabamı sürmüyorum ve pil kritik bir değerin üzerine çıktığında bilgilendirilmek istiyorum, bu yüzden şarj edebilir ve hasarı önleyebilirim.

Bu nedenle enerji verimliliği proje için önemlidir, bu yüzden pilin kendisini deşarj etmez. Uyku modu, verimli aşağı açılır regülatörler vb.

Ben bir tür "zamanlayıcı devresi" arıyorum. 24 saat geri saymalı ve sonra voltaj regülatörünü güce bağlayan bir röleyi veya MOSFET'i açmalı ve Arduino ve ESP8266'yı açmalıdır. Arduino iletimi bitirdiğinde, voltaj regülatörünü güçten ayıran zamanlayıcıyı sıfırlar vb. Tabii ki, zamanlayıcı devresi sadece çok az güç kullanmalıdır.

Böyle bir devreyi bilen var mı? AliExpress'te aklıma gelen kelimelerin tüm varyasyonlarını başarı ile aradım . Ya da belki böyle bir devre oluşturmak için (kolayca) kullanılabilecek bir IC?


1
Tüm voltaj regülatörleri aynı değildir. Bazıları sadece birkaç mikro-amper kullanır.
Gerben

Kutunun dışında düşünmek ... Standart bir zamanlayıcı anahtarı yeterli değil mi?
user31208

Yanıtlar:


5

Bir yaklaşım DS3231 (Hassas Gerçek Zamanlı Saat) modülünün kullanılması olacaktır. Bu tür modüller Ebay'de 1 doların altında satılıyor. Ara ds3231 arduino.

Tipik olarak, bu modüller, 32K, SQW, SCL, SDA, VCC ve GND etiketli pimleri olan altı pimli bir konektöre sahiptir. DS3231 teknik özelliklerinde belirtildiği gibi, INT / SQW pimi kare dalga çıkışı veya kesme çıkışı için kullanılır. Özelliklerin 13. sayfasında, Kontrol Kaydı bölümünde şöyle diyor:

Bit 2: Kesme Kontrolü (INTCN). Bu bit INT / SQW sinyalini kontrol eder. INTCN biti mantık 0 olarak ayarlandığında, INT / SQW pininde kare bir dalga çıkar. INTCN biti mantık 1 olarak ayarlandığında, zaman tutma kayıtları ile alarm kayıtlarından biri arasındaki eşleşme INT / SQW çıkışını etkinleştirir (alarm da etkinleştirilmişse).

Başlangıçta, DS3231'i ayarlamak için bir taslak çalıştırırsınız: günlük bir alarmı açar, kare dalga yerine bir kesmeyi etkinleştirir, geçerli zamanı ayarlar vb. ve uygun şekilde hareket eder.

DS3231 INT / SQW pimi, 12V gücü Arduino'ya geçiren bir P-kanal mosfet'in kapısına bağlanır. Alarmın açık boşaltma çıkış pimi INT / SQW açıldığında P-fet açılır. Operasyonel program işini yapar ve bir sonraki alarm gerçekleşene kadar gücü kapatmak için DS3231 kesinti bayrağını temizler. (Hata ayıklama için, bir günden daha kısa süreli aralıklar ayarlayın; örneğin, teknik özelliklerin Tablo 2, Alarm Maskesi Bitleri, sayfa 12 bölümünde açıklandığı gibi dakikada bir kez.)

Tipik olarak, DS3231 bir 3.3V pilden çalışırken 0,84 μA veya 5V'den 1 μA çeker. Bkz. Teknik Özellikler, sayfa 3.


1
P-fet kapısı muhtemelen 1 megohm direnç gibi bir şeyle +12'ye kadar çekilmelidir; aksi takdirde INT / SQW pimi kapalıyken etkin bir açık olacağını, ve keyfi seviyelere havada durabilir
James Waldby - jwpat7

3

Zamanlayıcı veya zamanlayıcı devresinin kendisi bir miktar akım çekmelidir. Pico-power AVR çiplerinden herhangi biri uyku modunda çok az akım çekiyor - doğru hatırlıyorsam 328 için 10 mikro-amperde. En az akım çekmesi için bir AVR uyumak hemen hemen her şeyi kapatır, ancak bekçi zamanlayıcısı ve maksimum WDT süresi 8 saniyedir. Narkoleptik gibi bir kütüphane sizin için daha uzun süreleri yönetecektir. Yine de yapmanız gereken şey, Arduino kartında yerleşik olandan çok daha verimli bir düzenlenmiş güç kaynağı sağlamaktır (eğer kullanacağınız buysa). Bu, Arduino'nun araç akünüzdeki yükünün mikroskobik olması gerekir.

Verimli bir besleme için olası bir tasarım, bir alkalin pil dizisidir, örneğin 5v veriyoluna doğrudan bağlanan 4,5 çıkış (taze iken) çarpı 2 veya daha fazla bu dizeyi seri olarak.

AA kapasitesinde, ihtiyacınız olan kapasiteyi ve D hücrelerine ihtiyacınız olup olmadığını veya daha küçük hücrelerden pratik bir dizi yapıp yapamayacağınızı bilmek için güç bütçelemesi yapmadım, ancak bu araç aküsünde sıfır yük elde etmenin bir yoludur (araba akü voltajı sensörünün ihtiyacını azaltır). Arduino pil dizisinin sağlığını günlük rapora dahil etmek isteyebilirsiniz veya birkaç Alkalinin fiyatı için, Arduino pilini izlemenin gereksiz olacağı kadar fazla tasarlayabilirsiniz.

Birkaç veri noktası ayrı bir pilin uygulanabilir bir yaklaşım olduğunu göstermektedir:

  • Tek bir 9v Alkali bir yılı aşkın (kendi tecrübelerime) ısıtılmamış bir tavan arasında aşırı kışlama da dahil olmak üzere bir duman detektörü çalışır ve 9v Alkalin edilir değil kapasitelerinin tanınır.
  • Dijital gerileme termostatım iki yıl boyunca 2 AA hücresi üzerinde çalıştı, a) ölmeden önce ve b) Ben büyüdüm ve her yıl değiştirmeye başladım. :)

Haziran 2012'den bu yana birkaç AA hücresinden kaçan bir ATmega48 (328P'ye çok benziyorum) var. Günde 4 dakikadan biraz daha fazla bir süre uyanık kalıyorum. Piller şu ana kadar değiştirilmedi.
Edgar Bonet

Bu etkileyici bir çalışma zamanı - ek veri noktası için teşekkürler @EdgarBonet! Uyuyan bir Arduino ve bir Alkalin pil takımının "kur ve unut" sistemi olabileceğini umuyordum, ancak enerji tüketimini hesaplamaksızın, bu kadar iyi performans göstereceğini tahmin etmedim. Yani, @DirkPitt, bazı gerçek dünya destek verileri var.
JRobert

Tam bir Arduino değil: Uno'mla ~ 40 mA'nın altına inmeyi başaramazken SLEEP_MODE_PWR_SAVE, sadece asenkron zamanlayıcı aktif olan çıplak ATmega , 2 µA gibi bir şey aldı.
Edgar Bonet


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.