İçindekiler:
- Adım 1: Temel Projeden Değiştir
- Adım 2: Kurulun V0.2'si
- Adım 3: Breadboard: I2c Karakter Görüntüleme Denetleyicisi Genişletildi
- Adım 4: Breadboard: I2c Entegreli Karakter Görüntüleme
- Adım 5: Gerçekleştirme
- 6. Adım: Genişletilebilirlik
- 7. Adım: Parça Listesi
- Adım 8: Anakart: Sıfırlama, Pili Seçmek için Gnd E Düğmesi
- Adım 9: Kart: I2c ve Güç Kaynağı Pinleri
- Adım 10: Kart: Termistör ve Voltaj Ölçümü
- Adım 11: Kart: Ölçme Gerilimine Direnç
- Adım 12: Lehimleme Adımı: Tüm Pimler
- Adım 13: Lehimleme Adımları: Çekme Direnci ve Termistör
- Adım 14: Lehimleme Adımları: MOSFET, Gerilimi Kontrol Etme Direnci
- Adım 15: Kod
- Adım 16: Montajdan Sonra Sonuç
- Adım 17: Önce Pil Türünü Seçin
- Adım 18: Boşaltmaya Başlayın
- Adım 19: İstisnalar: Pil Çıkartıldı
- Adım 20: İstisnalar: Sıcaklık Uyarısı
- Adım 21: Amperajı Test Edin
- Adım 22: Paket
Video: Sıcaklık ve Pil Seçimi ile Pil Kontrolü: 23 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Pil kapasitesi test cihazı.
Bu cihaz ile 18650 pil, asit ve diğer (test ettiğim en büyük pil 6v Asit pil 4, 2A) kapasitesini kontrol edebilirsiniz. Testin sonucu miliamper/saat cinsindendir.
Bu cihazı, sahte çin pilinin kapasitesini kontrol etmesi gerektiği için yarattım.
Güvenlik için, bir termistör kullanarak, güç direncinin sıcaklığını ve çok ısınmayı önlemek için pili ekledim, bu numara ile 6v Asit Bataryayı kartı ateşlemeden kontrol edebilirim (boşaltma döngüsünde bir süre sıcak güç direncine gidin) ve cihaz sıcaklığı düşürmek için 20 saniye bekleyin).
Küçük mikro denetleyici atmega328 uyumlu nano (eBay) seçiyorum.
Tüm kod burada.
Adım 1: Temel Projeden Değiştir
Fikri OpenGreenEnergy projesinden çaldım ve özellikler eklemek için tahtayı yeniden yaptım, bu yüzden şimdi daha genel olun.
v0.1
- Arduino'nun VCC'si artık otomatik olarak hesaplanır;
- Ayarı daha rahat bir şekilde değiştirmek için değişken eklendi.
- Eklenen boşaltma yüzdesi
- Pil sıcaklığı ve güç direnci eklendi
v0.2
- Pil seçimi imkanı eklendi
- Prototip pano (şemaya bakın) oluşturuldu, ekran, düğme ve hoparlör panonun dışında çünkü gelecekte bir paket oluşturmak istiyorum.
- Güç direncine sıcaklık sınırı yönetimi eklendi, böylece sıcaklık 70°'nin üzerine çıktığında (bu sıcaklık güç direnci değer kaybının üzerinde) işlemi engelleyebiliyorum.
v0.3
Yakında bu hizmetten bir pano geliyor https://www.pcbgogo.com?code=y
Adım 2: Kurulun V0.2'si
v0.2'de çeşitli pil türlerini desteklemek için pil adı, minimum voltaj ve maksimum voltaj ile doldurulması gereken bir yapı oluşturdum (doldurmak için yardıma ihtiyacım var:P).
// Pilin yapısı typestruct BatteryType { karakter adı[10]; şamandıra maxVolt; şamandıra minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType pilTypes[BATTERY_TYPE_NUMBER] = { { "18650", 4.3, 2.9 }, { "17550", 4.3, 2.9 }, { "14500", 4.3, 2.75 }, { "6v Asit", 6.50, 5.91 } };
Şimdi voltaj bölücünün analog girişin çift sıcaklığını okuması için bir dizi 10k direnç kullanıyorum. Voltaj desteğini değiştirmek istiyorsanız, bu değeri değiştirmelisiniz (daha sonra daha iyi açıklayın):
// Akü voltaj direnci
#define BAT_RES_VALUE_GND 10.0 #define BAT_RES_VALUE_VCC 10.0 // Güç direnci voltaj direnci #define RES_RES_VALUE_GND 10.0 #define RES_RES_VALUE_VCC 10.0
Termistör kullanmıyorsanız, bunu false olarak ayarlayın:
#define USING_BATTERY_TERMISTOR doğru
#define USING_RESISTO_TERMISTOR doğru
Farklı bir i2c ekranı kullanıyorsanız, bu yöntemi yeniden yazmanız gerekir:
geçersiz beraberlik (void)
Projede fritzing şemaları, fotoğraflar ve daha fazlasını bulabilirsiniz.
Adım 3: Breadboard: I2c Karakter Görüntüleme Denetleyicisi Genişletildi
Genel bir karakter ekranı kullandım ve i2c denetleyicisini oluşturdum ve onu özel kitaplığımla kullandım.
Ama isterseniz standart bir kütüphaneye sahip normal bir i2c controller (1€'dan az) alabilirsiniz, kod aynı kalır. Tüm ekran kodu çizim işlevindedir, böylece başka şeyleri değiştirmeden bunu değiştirebilirsiniz.
Burada daha iyi açıklanmıştır.
Adım 4: Breadboard: I2c Entegreli Karakter Görüntüleme
Aynı şema i2c kontrollü olmadan genişletildi.
Adım 5: Gerçekleştirme
Voltajı ölçmek için Voltaj bölücü ilkesini kullanıyoruz (Wikipedia'da daha fazla bilgi).
Basit bir deyişle, bu kod akü voltajını ölçmek için çarpan faktördür.
batResValueGnd / (batResValueVolt + batResValueGnd)
BatResValueVolt ve batResValueGnd değerinin 2 direncini analog okuma kablosundan sonra ve önce yerleştirdim.
batVolt = (örnek1 / (1023.0 - ((BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)) * 1023.0)) * vcc;
örnek1 ortalama analog okumalardır;
vcc referans Arduino voltajı;
1023.0, analog okumanın maksimum referans değeridir (Arduino analog okuma 0'dan 1023'e gider).
Amper elde etmek için güç direncinden önce ve sonra voltaja ihtiyacınız vardır.
Güç direncinden önceki ve sonraki voltajı ölçtüğünüzde, pili tüketen miliamper hesaplayabilirsiniz.
MOSFET, güç direncinden pil boşalmasını başlatmak ve durdurmak için kullanılır.
Güvenlik için pil ve güç direnci sıcaklığını izlemek için 2 termistör yerleştirdim.
6. Adım: Genişletilebilirlik
Genişletilebilir bir prototip panosu oluşturmaya çalışıyorum, ancak şimdilik yalnızca minimum sayıda pin kullanıyorum (ileride led'ler ve diğer düğmeler ekleyeceğim).
10v'dan büyük destek voltajı istiyorsanız, pilin direnç değerini ve direncini formüle göre değiştirmelisiniz.
(BAT_RES_VALUE_GND / (BAT_RES_VALUE_VCC + BAT_RES_VALUE_GND)
şemada Direnç güç voltajı
Direnç güç gerilimi GND 1/2 / (Direnç güç gerilimi 2/2 + Direnç güç gerilimi GND 1/2)
Pembe aşağı lehimleme
7. Adım: Parça Listesi
Tutar Parça Tipi Özellikler
- 2 5mm Vidalı Terminal PCB Montaj Vidalı Terminal Bloğu 8A 250V LW SZUS (eBay)
- 1 Arduino Pro Mini klonu (uyumlu Nano) (eBay)
- 1 Temel FET P-Kanalı IRF744N veya IRLZ44N (eBay)
- 11 10kΩ Direnç direnci 10kΩ (eBay)
- 2 Sıcaklık Sensörü (Termistör) 10kΩ; (eBay)
- * Genel erkek başlık formu ♂ (erkek); (eBay)
- * Genel dişi başlık formu ♀ (dişi); (eBay)
- 1 PerfBoard panosu Prototip panosu 24x18 (eBay)
-
10R, 10W
güç direnci (eBay) Eski bir crt TV'de benimkini buldum.
Adım 8: Anakart: Sıfırlama, Pili Seçmek için Gnd E Düğmesi
Pimlerin sol tarafında buton ve buzzer bulabilirsiniz.
3 düğme kullanıyorum:
- biri pil tipini değiştirmek için;
- biri seçilen pilin boşalmasını başlatmak için;
- sonra hepsini yeniden başlatmak ve yeni işlemi etkinleştirmek için sıfırlama pimini kullanıyorum.
Tüm pinler zaten aşağı çekildi, bu yüzden VCC ile etkinleştirmelisiniz
GND ile reset aktif edilir
Pembe aşağı lehimleme
Adım 9: Kart: I2c ve Güç Kaynağı Pinleri
Tabanda VCC, GND ve SDA, SCL'yi (ve gelecekte diğerlerini) görebilirsiniz.
Pembe aşağı lehimleme
Adım 10: Kart: Termistör ve Voltaj Ölçümü
Sağda, termistör değerini okumak için pinler vardır, biri güç rezistör termistörü için, diğeri ise (bağlanacak erkek/dişi pinler) pil termistörü için.
Ardından, güç direncinden önce ve sonra diferansiyel voltajı ölçen analog pinler vardır.
Pembe aşağı lehimleme
Adım 11: Kart: Ölçme Gerilimine Direnç
Burada arduino pininden (10v) iki katı voltajı desteklemeye izin veren direnci görebilirsiniz, daha fazla voltajı desteklemek için bunu değiştirmelisiniz.
Pembe aşağı lehimleme
Adım 12: Lehimleme Adımı: Tüm Pimler
İlk önce tüm pinleri ekleyip lehimliyorum.
Adım 13: Lehimleme Adımları: Çekme Direnci ve Termistör
Sonra tüm açılan direnci (düğmeler için) ve i2c konektörünü (ekran) ekliyorum.
Sonra güç direnci termistörü Asit pili çok ısındığında çok önemlidir.
Adım 14: Lehimleme Adımları: MOSFET, Gerilimi Kontrol Etme Direnci
Şimdi deşarjı etkinleştirmek için mosfet ve voltajı kontrol etmek için direnç eklemeliyiz.
Güç direncinden önceki voltaj için 2 direnç Güç direncinden sonraki voltaj için 2 direnç, bu voltaja sahip olduğunuzda miliamper tüketimini hesaplayabilirsiniz.
Adım 15: Kod
Mikrodenetleyici nano ile uyumludur, bu nedenle IDE'nizi bir Arduino Nano yükleyecek şekilde ayarlamanız gerekir.
Çalışmak için github depomdan kod indirmelisiniz.
Daha sonra 3 kitaplık eklemelisiniz:
- Tel: i2c protokolü için standart arduino kitaplığı;
- Termistör Kütüphanesi buradan arduino IDE'de bulabileceğiniz kütüphane değil, benim versiyonum;
- LiquidCrystal_i2c: i2c adaptörünün genişletilmiş/özel sürümünü (benim versiyonum) kullanıyorsanız kütüphaneyi buradan indirmelisiniz, standart bileşeni kullanıyorsanız kütüphaneyi arduino IDE'den alabilirsiniz, ancak her şey burada daha iyi açıklanmıştır.
LCD'yi standart kütüphane ile test etmiyorum, Bana öyle geliyor ki bunlar birbirinin yerine geçebilir, ancak bir sorun varsa benimle iletişime geçmekten çekinmeyin.
Adım 16: Montajdan Sonra Sonuç
Taban tahtası fotoğrafta, sonra test edebiliriz.
Adım 17: Önce Pil Türünü Seçin
Açıklandığı gibi, pil konfigürasyonu ile bir değer haritamız var.
// Battery typestruct yapısı BatteryType { karakter adı[10]; şamandıra maxVolt; şamandıra minVolt; }; #define BATTERY_TYPE_NUMBER 4 BatteryType pilTypes[BATTERY_TYPE_NUMBER] = { { "18650", 4.3, 2.9 }, { "17550", 4.3, 2.9 }, { "14500", 4.3, 2.75 }, { "6v Asit", 6.50, 5.91 } };
Adım 18: Boşaltmaya Başlayın
İkinci butona tıklamak boşaltma işlemini başlatır.
Ekranda mevcut miliamper, miliamper/saat, boşalma yüzdesi, akü voltajı ve güç direnci ve akünün sıcaklığını görebilirsiniz.
Adım 19: İstisnalar: Pil Çıkartıldı
Pili çıkarırsanız deşarj işlemi duraklar, tekrar taktığınızda son değerde yeniden başlar.
Adım 20: İstisnalar: Sıcaklık Uyarısı
Sıcaklık (akü veya güç direnci) ısınırsa, boşaltma işlemi duraklar.
#define BATTERY_MAX_TEMP 50
#define RESISTANCE_MAX_TEMP 69 // 70° veri sayfasında (Düşürme dirençleri) #define TEMP_TO_REMOVE_ON_MAX_TEMP 20
Maksimum sıcaklık için varsayılan değer pil için 50° ve güç direnci için 69'dur.
Yorumda görebileceğiniz gibi güç direnci 70°'nin üzerine çıkarken değer kaybından etkilenir.
Uyarı verilirse, düşük sıcaklık koymak için TEMP_TO_REMOVE_ON_MAX_TEMP saniyelik duraklama başlatın.
Adım 21: Amperajı Test Edin
Amper testinin sonucu iyidir.
Adım 22: Paket
Ayrılmış bileşenle paket sonucunun gerçekleştirilmesi kolaydır.
Bir kutuda LCD için bir dikdörtgen, basma düğmeleri için delikler ve güç kaynağından voltaj sağlamak için harici bir dişi namlu yapılmalıdır.
Basma düğmesinin aşağı çekme direncine ihtiyacı yok çünkü zaten gemide ekliyorum.
Vakit buldukça hazırlayıp yayınlıyorum.
Önerilen:
ESP8266 ile Oda Kontrolü - Sıcaklık, Hareket, Perdeler ve Aydınlatma: 8 Adım
ESP8266 ile Oda Kontrolü | Sıcaklık, Hareket, Perdeler ve Aydınlatma: Bu proje, bir LED Strip'in parlaklığını ve odanızın perdesini kontrol etmenizi sağlayan NodeMCU ESP8266 modülüne dayalı bir sistemden oluşur, ayrıca odanızın hareket olayları hakkında veri gönderebilir. ve bulutun sıcaklığı w
Pil Tasarrufu ile Haftanın Günü, Takvim, Saat, Nem/Sıcaklık: 10 Adım (Resimlerle)
Pil Tasarrufu ile Haftanın Günü, Takvim, Saat, Nem/Sıcaklık: Buradaki güç tasarrufu modu, bu Eğitilebilir Tabloyu haftanın günü, ayı, ayın günü, saat, nem ve sıcaklığı gösteren diğer örneklerden ayıran şeydir. Bu projenin bir pilden çalıştırılmasına izin veren bu yetenek, t
Butonlar, Raspberry Pi ve Scratch ile Parlaklık Kontrolü PWM Tabanlı LED Kontrolü: 8 Adım (Resimlerle)
Basmalı Düğmeler, Raspberry Pi ve Scratch Kullanarak Parlaklık Kontrolü PWM Tabanlı LED Kontrolü: Öğrencilerime PWM'nin nasıl çalıştığını açıklamanın bir yolunu bulmaya çalışıyordum, bu yüzden kendime 2 basmalı düğme kullanarak bir LED'in parlaklığını kontrol etmeye çalışma görevi verdim - bir düğme bir LED'in parlaklığını arttırır ve diğeri onu karartır. Programlamak için
Arduino Uno ile LM35 Sıcaklık Sensörü Kullanarak Sıcaklık Okuma: 4 Adım
Arduino Uno ile LM35 Sıcaklık Sensörü Kullanarak Sıcaklık Okuma: Merhaba arkadaşlar bu derste LM35'i Arduino ile nasıl kullanacağımızı öğreneceğiz. Lm35, -55 °C ile 150 °C arasındaki sıcaklık değerlerini okuyabilen bir sıcaklık sensörüdür. Sıcaklıkla orantılı analog voltaj sağlayan 3 terminalli bir cihazdır. Yüksek
Arduino ve PWM Fanları İle Sıcaklık Kontrolü: 6 Adım (Resimli)
Arduino ve PWM Fanları ile Sıcaklık Kontrolü: Arduino üzerinde PID ile sıcaklık kontrolü ve DIY sunucu/ağ raf soğutması için PWM fanları ile birkaç hafta önce ağ cihazları ve birkaç sunucu ile bir raf kurmam gerekiyordu. Raf kapalı bir garaja yerleştirildi, yani kış ve kış arasındaki sıcaklık aralığı