Daha önce otomatik şarj sistemi olarak yayınlanmış olan projemin gelişmiş versiyonu olarak 16F876 kullanarak yeni bir sistem tasarladım. Sistem derken elektronik kısmında fazlaca değişiklik yapmadan programda değişiklik yaptım. Önceki yapmış olduğum sistem 16C711 (bir kez programlanabilir) pic ile çalışmakta idi. Ayrıca şarj işlemi sonunda akımın kesilmesi yani pilin dolmuş olduğunun anlaşılması için Negatif Delta-V sistemini kullanmış idim.
Bilmeyenler için Negatif Delta-V nin ne anlama geldiğini bir kez daha açıklayayım. NiCd ve NiMH piller şarj oldukça voltajları yükselmektedir. Voltaj yükselişi pilin dolmasını müteakip kesilmekte ve bu aşamadan sonra pil başına 10-20 mv luk bir voltaj düşümü olmaktadır. Örnek vermek gerekir ise 1 adet NiCd pil boşaldığı zaman yaklaşık 0,8V civarında bir voltajı vardır.
Bu pili şarj ederseniz pil voltajı tam dolum anında 1,7V’a kadar çıkar. Bunu mv seviyesinde gösterir isek 1700 mv. dolayına çıkar. Dolum anından itibaren bu voltaj 1680 mv dolayına düşer. Bu aşamadan sonra şarja devam ederseniz pil aşırı ısınmaya başlar. İşte bu geri düşme ölçümler sonucunda yakalanarak pilin dolduğuna karar verilir ve şarj işlemi sona erdirilir.
İlk yaptığım sistemde şarjın kesilmesi yalnızca negatif delta_v ye dayanıyor idi. Ancak bazı (markasız) pillerde bu düşme anının yakalanmadığını veya çok zor yakalandığını fark ettim. Bu yüzden sisteme ayrıca voltaj kontrolünüde ilave ettim. Sonuç olarak yeni program hem Negatif Delta-V yi hemde pilin voltajını kontrol ederek hangisini yakalarsa şarj işlemini sona erdirmektedir.
Diğer bir değişiklik de önceki devre nispeten üniversal çalışıyor idi. Yani en az 2 adet pil bağlamak kaydı ile toplam 8 adet pile kadar paketi hiç bir ayar gerektirmeden şarj edebiliyor idi. Ancak bununda bazı sorunlara yol açtığını fark edince yeni programda şarj edilecek pil adedini girmeye karar verdim. Dolayısıyla yeni programda yine en az 2 adet olmak kaydı ile toplam 8 adet pili şarj edebilirsiniz.
Yukarıdaki devre 2 adet ile yaklaşık 8 adet pile kadar pil paketlerini otomatik olarak şarj edebilmektedir. Programın ilk çalıştırılmasını müteakip SET butonuna basılır. Ayar butonuna basılarak kaç adet pil şarj edileceği programa girilir ve tekrar SET tuşuna basılarak Şarj işlemi başlatılır.
Şar akımı 700 ma dolayında olup . Hesap mantığı aşağıdaki şekildedir;
Ancak LM317 nin verebileceği maksimum akım 1 Amper (1000 ma) olup hesaplamada bu değerin göz önünde tutulması veya yerine 3 amperlik olanının kullanılması gerekir.
Sistem hızlı şarj mantığı ile çalışmaktadır. Bu durumda 1 amperlik (1000 ma) pilleri yaklaşık 1,4 saat , 2000 ma lik pilleri ise 2,8 saat içinde şarj edebilmektedir. Sistemin çalışma mantığı aşağıdaki şekildedir.
1. öncelikle devreye bir pil bağlı olup olmadığı kontrol edilir. 2 Voltun üzerindeki değerler pil varlığını gösterir. Pillerin boş olma durumu düşünülerek kontroldan önce 1 sn süre ile bir şarj akımı verilir. Bu konumda Her iki LED off konumundadır.
2. Şayet devreye bir pil bağlı ise pilin stabilize olması için 30 sn. süre ile beklemeye alınır.
Bu konumda Kırmızı LED ON yeşil led ise OFF konumundadır.3. Bu süreden sonra yaklaşık 4 dakika süre ile pile %20 şarj akımı uygulanır. Bu konumda Kırmızı led ON yeşil led ise Flaş Konumundadır.
4. Bu süreden sonra pile tam şarj akımı uygulanır. Bu konumda her iki led FLAŞ konumundadır.
5. Pillerin dolmasını müteakip pillere TRIKLE şarj adı verilen %4 oranında standby şarjı tatbik edilir. Bu pillerin bağlı kaldığı sürece boşalmamasını sağlar. Bu konumda Kırmızı led OFF yeşil led ON konumundadır.
Pillerin dolmasını müteakip şarj voltajı ve akımı otomatik olarak kesilir. Kesme noktasının tepiti hem negatif Delta V sistemine hemde şarj sonunda pillerin ulaşması gereken voltaja göre yapılmaktadır. Bu sistemde piller tam doluma ulaştıktan sonra şarj işlemine devam edilmesi halinde belirli bir süre içinde pil başına 10 mv düşme başlar. Bu düşme sağlandıktan sonra pillerin şarjı kesilmelidir. Bu noktadan sonra şarja devam edilmesi halinde piller ısınmaya başlayacak ve bozulma başlayacaktır.
Devre LM317 nin akım takipçi yöntemi ile bağlanması şeklinde gerçekleştirilmiş olup bu sayede şarj voltajı pil adedine göre otomatik olarak ayarlanmaktadır. Devre tamamı ile denenmiş olup başarı ile çalışmaktadır.
PILSARJ876.bas yazılım içeriği;
'******************************************************** '* Adı : PILSARJ878.BAS * '* Yazan : [Erol ERDAL) * '* Haklar : Copyright (c) 2004 [Erolec Electronic 2005] * '* : Ticari amaçla Kullanılamaz * '* Tarih : 27.12.2004 * '* Sürüm : 1.0 * '* Notlar : 16F876 Kullanılarak yapılmıştır. NiCd ve NiMH * '* : piller için uygun olup -delta_V sistemi ile çalışır * '********************************************************* DEFINE LCD_DREG PORTB 'LCD data bacakları hangi porta bağlı? DEFINE LCD_DBIT 4 'LCD data bacakları hangi bitten başlıyor? DEFINE LCD_RSREG PORTB 'LCD RS Bacağı Hangi Porta bağlı ? DEFINE LCD_RSBIT 1 'LCD RS bacağı Hangi Bite bağlı ? DEFINE LCD_EREG PORTB 'LCD Enable Bacağı Hangi Porta bağlı? DEFINE LCD_EBIT 3 'LCD Enable Bacağı Hangi bite bağlı ? define lcd_RWREG PORTB define LCD_RWBIT 2 DEFINE LCD_BITS 4 'LCD 4 bit mi yoksa 8 bit olarak bağlı? DEFINE LCD_LINES 2 'LCD Kaç sıra yazabiliyor DEFINE ADC_BITS 8 ' Set number of bits in result DEFINE ADC_CLOCK 3 ' Set clock source (3=rc) DEFINE ADC_SAMPLEUS 50 ' Set sampling time in uS @ DEVICE pic16F876 @ DEVICE pic16F876, WDT_off @ DEVICE pic16F876, PWRT_ON @ DEVICE pic16F876, PROTECT_OFF @ DEVICE pic16F876, XT_OSC ADCON1=%00001110 TRISA= %00010011 TRISB= %00000000 TRISC= %00011000 VOLT VAR WORD HAM VAR WORD SN VAR WORD HANE VAR WORD I VAR word OKUNAN var byte ESKIVOLT VAR byte MODE VAR BYTE POZ VAR BYTE SAYAC VAR BYTE SAAT VAR BYTE DAK VAR BYTE SAN VAR BYTE FARK VAR BYTE KALAN VAR BYTE ADET VAR BYTE PILVOLT VAR BYTE PIL VAR BIT SYMBOL SARJ=PORTC.1 'SARJ=1 KAPALI , ŞARJ=0 AÇIK SYMBOL LEDY=PORTA.2 SYMBOL LEDK=PORTA.3 SYMBOL SET=PORTC.4 SYMBOL AYAR=PORTC.3 PORTB=0 PORTA=0 VOLT=0 PAUSE 100 LCDOUT $FE,1 '-----------PROGRAM BAŞLANGICI-------------- BASLA: SN=956 PORTA=0 ADET=0 LCDOUT $FE,2,"LUTFEN SET" LCDOUT $FE,$C0," TUSUNA BASINIZ" IF SET=0 THEN LCDOUT $FE,1 GOSUB SEC ENDIF IF ADET>0 THEN STANDBY GOTO BASLA '--------------------STANDBY------------------------ STANDBY: HIGH SARJ PILVOLT=15*ADET 'BU ŞARJ SONUNDA ULAŞILACAK VOLTAJDIR MODE=1 low SARJ:PAUSE sn:GOSUB EKRAN0:high SARJ pause 10:GOSUB PILKONTROL PAUSE sn:gosub ekran:PAUSE SN IF HAM=>26 THEN HAZIRLA GOTO STANDBY '----------------PİL ŞARJ ÖN HAZIRLIK----------------- HAZIRLA: PORTA=8 MODE=2:LCDOUT $FE,1 FOR I=1 TO 30'30 sn pili stabilize ediyoruz LCDOUT $FE,$82,"SARJ BASLIYOR" gosub PILKONTROL GOSUB EKRAN PAUSE SN NEXT '----------------ÖN-ŞARJ (SOFT)---------------- ONSARJ: MODE=3:PORTA=12 GOSUB PILKONTROL FOR I=0 TO 240 '4 Dakika toplam şarj akımının %20 si ile şarj-200 ms low sarj:pause 200:HIGH SARJ PAUSE 300 PORTA=PORTA ^ %100 'TOGGLE LEDK daha kısa kod üretiyor PAUSE 460 GOSUB PILKONTROL GOSUB EKRAN2:LCDOUT $FE,$87,"-%20 SARJ" IF HAM<26 THEN STANDBY IF (KALAN=ADET) OR (okunan>ADET*15) THEN PIL=1:PORTA=8:goto SON ENDIF IF OKUNAN=>ESKIVOLT THEN YURU YURU: NEXT '-------------------TAM-SARJ------------------------- TAMSARJ:PIL=0:PORTA=4 mode=4:low sarj:SAYAC=0'FARK=3+(PORTA.4)*2'NiCd'LER PORTA.4=1 GOSUB PILKONTROL:GOSUB EKRAN2:LCDOUT $FE,$87,"-TAM SARJ"'NMH ler PORTA.4=0 FOR I=0 TO 10800 '3 saat şarj süresi sarj sonu negatif Delta V ile GOSUB PILKONTROL PORTA=PORTA ^ %1100 'toggle ledk ve ledy pause sn GOSUB EKRAN2 IF HAM<26 THEN STANDBY IF (KALAN=ADET) OR (okunan>ADET*15) THEN PIL=1:PORTA=8 ENDIF IF OKUNAN=>ESKIVOLT THEN DEVAM IF PIL=0 THEN DEVAM SAYAC=SAYAC+1:IF SAYAC=3 THEN SON DEVAM: NEXT SON: HIGH SARJ '-----------------TRIKLE ŞARJ------------------------ TRIKLE:MODE=5:SAYAC=0:PORTA=4 GOSUB PILKONTROL:GOSUB EKRAN3 IF HAM<26 THEN lcdout $fe,1: goto basla endif LOW SARJ:PAUSE 40:HIGH SARJ:PAUSE 960 'Şarj akımının %4'ü ile şarj ediliyor GOTO TRIKLE '------------PİL VOLTAJ KONTROL-------------------- PILKONTROL: POZ=SARJ HIGH SARJ:PAUSEus 500 ADCIN 0,HAM BAK: IF ADCON0.2=1 THEN BAK VOLT=(60*ham+20)/10:OKUNAN=VOLT/10 '68K - 33K HANE=(volt//100)/10:Volt=volt/100 IF ESKIVOLT>OKUNAN THEN KALAN=ESKIVOLT-OKUNAN ELSE KALAN=0 ENDIF IF OKUNAN>ESKIVOLT THEN ESKIVOLT=OKUNAN SARJ=POZ RETURN '-------------------E K R A N L A R------------------- EKRAN0: LCDOUT $FE,1," CIHAZ ACIK" LCDOUT $FE,$C3,"PIL TAKINIZ" RETURN EKRAN2: GOSUB TIME LCDOUT $FE,$80,DEC1 SAAT,":",DEC2 DAK,":",DEC2 SAN GOTO EKRAN RETURN EKRAN3: lcdout $fe,$80,dec1 saat,":",dec2 dak," PIL DOLDU " ' lcdout $fe,$c0,"OKU=",#okunan," ESK=",#ESKIvolt ' return EKRAN: LCDOUT $FE,$C0," PIL: ",#VOLT,",",DEC1 HANE," V " ' LCDOUT $FE,$C0,"PIL:",#ham," ",#volt,",",DEC1 HANE," V " RETURN TIME: SAAT=I/3600:DAK=(I-(SAAT*3600))/60:SAN=I-(SAAT*3600)-(DAK*60) RETURN SEC: WHILE SET=0:WEND SETA: LCDOUT $FE,2,"PIL ADEDI :",#ADET LCDOUT $FE,$8B IF AYAR=0 THEN ADET=ADET+1:PAUSE 200 IF ADET>8 THEN ADET=1 WHILE AYAR=0:WEND ENDIF IF SET=0 THEN RETURN GOTO SETA END
Kolay Gelsin
ETE (Erol Erdal)
Yararlanılan Kaynaklar:
http://www.batteryuniversity.com/partone.htm
http://www.angelfire.com/electronic/hayles/charge1.html
Şarj devresine ait kaynak picbasic pro ve hex kodları:
Şifre-Pass: 320volt.com
Yayım tarihi: 2009/10/18 Etiketler: mcu charger circuit, microchip pic projeleri, NiCd NiMH charger, pic16f876 charger, pil şarj devresi
Güzel bir çalışma olmuş.Şemada set tuşu yok.Yardımcı olur musunuz?
Set tuşu yerleşim planında gösterilmiş durumda. PortC.2 de bağlıdır.
Ete
Çok güzel bir çalışma teşekkürler ama açık şema ekleyebilirseniz Set tuşu daha iyi anlaşılacak galiba ben sitedeki yerleşimde göremedim.
eline sağlık çok güzel bir çalışma olmuş
hocam ben pwm ile lithium pil şarj etmek istiyorum bu konuda yardımcı olabilirmisiniz ??
Lithium pil şarjı tamamen farklı bir iştir.
Lityum pil şarj voltajına hassas bir yapıdadır. 4,1- 4,2 Volt ile şarj edilir. Bu voltaj aşılırsa Pil hemen bozulur. Yanlış anlaşılmasın boşalmış bir pile 20V da verseniz voltaj 4,1V tu aşamaz. Ama doldukça voltaj yükselir. Bu nedenle Lithium piiler ilk 1 saat boyunca voltaj serbest ama akım sabit bir sistemle şarj edilirler. Sonradan ise tam tersi olacak şekilde Voltaj 4,2V ile sabit akım serbest modda şarj edilmeleri gerekir. Bu modda volat seviyesi 4,2V ta yükselir yükselmez şarj kesilmelidir.
Bu karmaşık şarj düzeni nedeni ile henüz bir Lithium şarj aleti yapamadım. Aslında vaktim olmadı . Bu nedenle yardımcı olamayacağım için üzgünüm.
Ete
ilginiz için teşekkür ederim işallah ben yapabilirsem payaşırım.
kolay gelsin.
Hocam bir şey daha soracağım. Devreyi aynen kurdum fakat akımı kontrol atına almıyorum transistörü yönetemiyorum her halde. 7805 den gelen yolu 1k direnc ile pwm çıkışına bağmadım sonra bunuda 3k direnc ile bc548 e bağladım. Collectörü 317 nin adj pinide va emitteride toprağa yolladım fakat akımı değiştiremiyorum. Transistörü burda nasıl kullancağımı söylermisiniz ??
Teşekkürler.
Jeck,
Benim devre akım takipçisi metoduna göre yapılmış bir devredir.
Devrede bağlantıları dkeğiştirirsen hiç bir şey çalışmaz. Bu konuda yardımcı olamammaalesef. Akım kontrolü devredeki seri dirençle yapılır.
Bunun dışında bir sistem bu devreye uygulanmaz (en azından ben öyle biliyorum) bu nedenle yardımcı olamayacağım.
Ete
Merhaba açıklama kısmında kaç adet pil konulacaksa ona göre ayar butonuna basılır ve daha sonra set tuşuna basılır yazmışsınız.Ama ben atar butonunu göremedim.
Eski şema burada yayınlanmış olabilir. Yeni dosyalar yazıya eklendi
Malzeme yerleşimini gösteren resim dosyasını yüklersen butonların nereye bağlı olduğunu göreceksin. Ledlerin hemen yanında yer alıyor soket.
Ete
merhaba zip dosyasındaki devre şeması ile sayfadaki devre farklı bu devre çalışıyor mu? ben bu devreyi yapacağım ödevim var bana yardımcı olur musunuz?
Çalışıyor elbette. Kendimde kullanıyorum zaten.
Ayrıca yapan bir sürü insan var.
Ete
merhaba. Devre tasarımı çok güzel, öncelikle tebrik ederim. Ben devreyi yaptım, devrenin pillerin şarj oluşundan ve ledlerin yazıda belirtildiği gibi sinyal vermesinden çalıştığını anlıyorum. Ama LCD çalışmıyor. Devreye ilk enerji verdiğimde LCD de 16 tane içi dolu kare görünüyor. Ve ayar butonuna bassam da birşey değişmiyor. Set butonuna bastığımda kırmızı led yanıyor ve şarja başlıyor ama LCD yine aynı şekilde kalıyor. Bu sorun hakkında bir fikriniz var mı? Şimdiden teşekkür ederim.
BU sorunu iyi bilirim. Muhtemel sebepleri şunlar;
– Kullandığınız LCD bu devreye uyumlu değil. Bacak bağlantılarını iyice kontrol edin. 1 Nolu bacak GND, 2 nolu bacak +5V, 3 Nolu bacak kontrast bacağı şeklinde gidiyor sıralama. Bazı LCD lerde en başta arka plan ışığı için iki adet pin yer alıyor ve genelde ilk pini her kes 1 nolu pin olarak kabul edip bağlantı yapıyorlar. Buda benzeri sorunları yaratıyor.
– LCD nin bacak bağlantılarını ters bağlamış yada pin bağlantıları yanlış.
– 3 Nolu bacakta yer alan kontrast trimpotu maksimum ayarda onu biraz kısarsanız belkide karekterleri görebilirsiniz.
– Kullandığınız LCD bozuk yada yanık. LCD ler voltaja ve statik elektiriğe çok duyarlılar. En ufak bir voltaj fazlalığı anında LCD nin bozulmasına sebep olmaktadır. Mümkünse bir başka LCD ile deneme yapın.
Hepsi bu kadar.
Ete
Merhaba. devrenizi yapmak istiyorum fakat pcb de aklıma takılan bir konu oldu. 4 amper köprü diyotun yanındaki iki adet diyotun değeri yazılmamış. bu konuda yardımcı olursanız sevinirim. teşekkürler…
Diyotları nerde görüyorsun pek anlamadım. Amma muhtemelen köprü kullanılmaz ise kullanılacak olan 2 adet diyotlar.
0-12v trafo çıkışı kullanırsan köprü, 12-0-12 çıkış kullanırsan 2 diyot kullanacaksın demektir. Hem köprü hem diyot lar bir arada kullanılmıyor. Diyot kullanırsan en az 2 amperlik (1a bile olur) doğrultma diyotu olmalı.
Ete
Ete Bey merhaba,
Bundan önceki şarj devrenizi yapmaya çalıştım fakat programı Pic16C711’e bir türlü yükleyemedim. Bunun için Pic programlayıcı yaptım fakat o da çalışmadı 🙂
Neyse, şimdi bu devrenizi yapmak istiyorum fakat LCD ekrana ihtiyacım yok, bunu devreye koymak istemiyorum. Yapacağım devre hep 7.2 Volt 2600Mah değerindeki altılı pilleri şarj etmede kullanılacak. Sizin devrenizde nasıl bir değişiklik yaparsak ekrana ve pil adedini pic’e göstermeye gerek kalmaz? Yani ben hep bu pilleri şarj edeceğim ve pili bağladıktan sonra sadece birtek tuşa basarak şarjı başlatmak istiyorum (olmadı ekran kalabilir fakat tuşla pil adedini girmek istemiyorum). Bu mümkün müdür?
Saygılar.
hocam öncelikle devre için teşekkürler. Benim devremde LM7805 ve LM338 aşırı derecede ısınıyor neredeyse 10dk içinde yanacak seviyeye geliyor (12 0 12 trafo kullanıyorum.) Bunun nedeni ne olabilir, LCD’nin arka ışığını dirençsiz doğrudan besliyorum, bundan kaynaklanabilir mi? Bir de buradaki kodun pic c versiyonu da var mı? Selamlar.
merabalar kolay gelsin kullandığınız program dilini hangisi ?
Merhaba,şarj devresini yaptıktan ve pilleri şarj ettikten sonra devreye usb bağlantısı da yapıldığında telefon şarj edilebilir mi?Teşekkür ederim.