Pic DAC kanal sorunu

Başlatan packexs, 28 Ekim 2010, 04:43:52

packexs

Merhaba arkadaşlar,

3 adet 12 voltuk aküyü şarj eden bir devre yapıyoruz.

genel olarak anlatırsak,
1) PIC ile PWM üretip BD139'u sürüyoruz
2) BD139 2N3055 'i sürüyor
3) 3055 çıkışını bir dioddan geçirip (akü valtajı daha yüksek olabilir diye) aküleri şarj ediyoruz
4) Akülere seri watt'lı direncimiz var, bu direnç üzerindeki voltu ADC0 kanalından okuyup (max 2 volt oluşuyor bu noktada) akımı hesaplıyoruz (max 3 A şarj edecek)
5) ayrıca akü voltajını da (tabiki şarj gerilimini de) 100K çok turlu pot üstünden PIC ADC1 kanalından görüyoruz

algoritma ise,
set edilen şarj akım değerine ulaşana kadar ve tabiki akü max şarj gerilimini geçmeyecek kadar voltajı yükseltiyoruz.
akü doldukça akım düşüyor, akımı devamlı şarj akımında kalacak şekilde voltajı artırıyoruz.......
taa ki, şarj voltajına ulaşınca, artık akım ne olursa olsun voltajı artırmaktan vazgeçiyoruz.
akım git gide düşüyor.
en sonda, 50-100 mA akımlarda artık tamamdır deyip şarjı kapatıyoruz.


SORUN ŞURADA;
ADC'nin 0. kanalında (pot'dan bölünerek gelen) akü gerilimini ölçüyoruz sorun yok,
ADC'nin 1. kanalına watt'lı direnç üzerinden gelen ucu bağlayınca (ki burada zaten max 2 volt oluşuyor o da akü boş iken)  ADC 0 kanalındaki voltaj düşüyor.

diğer bir deyişle, ADC1 e bu nokta bağlanınca ADC0 kanalı PIC üzerinden düşüşe geçiyor. Bu düşüş, ADC'nin bit olarak karşılığı değil basbaya voltmetreyi bu noktaya girerek de düşüşü görebiliyoruz.

Normalde böyle birşeyin olması imkansız, hiç de karşılaşmadım. Farklı bir kaynaktan bu ADC 1 kanalına ne volt uygularsak uygulayalım problem olmuyor ama bu direncin ucundaki giriş bağlandığı anda tuhaflıklar oluşuyor...

ADC 1 kanalını GND'ye yada VDD'ye çekersek sorun olmuyor, yani ADC 0 'ı etkilemiyor.


nedir durum sizce ?

devre şu şekilde, pic'in olağan bağlantılarını çizmedim buraya takılmayın...


Devreyi çizerken takibiniz kolay olsun diye portb.7 'ye sembolik olarak bağlantı yaptım fakat aslında BD139 PIC'in CCP1 PWM kanalına bağlı.....

picmanya

akü voltaj  ve akımının elde edildiği dirençli devre ile pic arası bağlantılarda uygun bağlantılı opamp ve bu opamp çıkışları tekrardan bufer opampdan geçirilip pic'e girilse daha sağlıklı ve sorunsuz olur.sonuçda akü üzerindeki gerilim işlemcinin besleme geriliminden yüksek ve pwm li anahtarlama yapalıyor.anahtarlama transistöründen sorun çıkacağını sanmam ama ben yapsam bu kısmıda opampla pic den şaseleri hariç yalıtırdım.akü indüktif yük değil ama yinede akü ve pwm taransistörüne ters hızlı ve uygun akımda diod takmakda fayda olabilir.

zamzam23

konuyla ilgili 3 adet sorum olucak:
1-pwm ile akü şarj etmenin mantığı nedir?
2-pwm frekansı ve duty saykıl ne olmalıdır?
3-bildiğim kadarıyla 36V luk aküyü 36 voltla şarj etmeye calısırsak şarj tutmaz 40V gibi bi değerle şarj etmeliyiz. siz 36V aküyü 36V la şarj ediyorsunuz.olurmu ki boyle?

t2

Akülerin tampon şarj ve normal şarj için gerilimleri bazı üreticiler tarafından belirtiliyor. 

Bu gerilimlerde , maks akıma uyularak şarj edilir.

justice_for_all

AN1 pinine seri direnc koyup denermisiniz bide...eger opamp kullanacaksaniz maz 5v olacak selikde yukseltip buffer opamp tan gecirip deneyebilrsiniz..ama benim birinci onerim ilk olarak AN1 pinine seri 1K degerinde filan bi direnc koyup oyle deneyin...

aslinda voltaj olctugunuz pinede koymaniz gerekiyo ama madem calisiyo diyosunuz gerek yok ozaman...

Kolay gelsin...
Deneyip de başaramayanları değil, yalnızca denemeye bile kalkışmayanları yargıla.   Gökhan Arslanbay

OG

#5
- Köprü çıkışı - ucu sizin GND niz olmalı, yani PIC GND si buraya bağlı olmalı
- Voltaj ölçüm trimpotunun alt ucu GND de olmalı ancak direnç üzerindeki gerilim düşümü okunandan çıkarılmalı.

============================================

2N3055 den daha hızlı anahtar transistör kullanırdım.

Direnç üzerinde gerilim düşümü PWM'in aktif olduğu zamanlarda önemlidir, sıfır olduğu zamanlarda ölçüleni etkilemez.

============================================

Akım sınırlama için voltaj ile oynamıyorsan, yani sabit direnç ile akım sınırlıyorsan,
Ben olsaydım kontrölü şöyle yapardım ki daha önceden de yapmıştım.

Yukarıda bahsettiğim bağlantılar akım ölçme hariç aynen geçerli. Akım ölçmeyi iptal ederim. Ancak yine bir akım sınırlama direnci kullanırım ve akü + ucuna seri girerdim, altta iken GND kavramını karıştırıyor.

HPWM kullanmazdım. Çünkü hpwm çok hızlı, gereksiz ve sıkıntı doğurur. Çok çok yavaş soft pwm yapardım. Örneğin PWM periodu 1sn gibi.
Örneğin 1sn yi 100 e bölerdim (değişebilir).
x/100 şarj aktif sürem. x = 1 ~ 100 arası

Veya Hesap kolaylığı olsun diye
36V akü full şarj (asitli akü için) 43,2V ise
Boş akü de 27V ise

kabul edersek

43,2-27,0= 16,2V fark alanı var

Virgülden kurtaralım yani 10 ile çarpalım 16,2 x 10 = 162

Bu durumda kolay hesap için x/100 değil de x/162 olsun. Yani birim pwm zamanını 162 ye böler kullanırız (mesela kolay hesap için 1,62sn -1620ms- pwm periodu kabul ederiz).

Her birim 1ms olur. PWM iş sürem (pwm aktif yani akım bastığı süre)  1/1620 den 1620/1620 e kadar bir alan  olur.

Hesap için 1620 nin 1 fazlası sabit değer elde edelim, 1621.

Aküyü ölçerim,

Örneğin o an boş yani 27V (270) olsun.
Bir ters oran hesabı yaparım.

ters oran değeri = ( akü max - akü şu an ) x 10
= ( 432 - 270 ) x 10
= 1620

Şarj basma süresi = sabit - ters oran değeri
= 1621 -1620
= 1 ms

Şarj kesik süresi= 1620 - Şarj basma süresi
= 1620 - 1
= 1619msn

Tabi her 1620ms bitişinde aküyü tekrar ölçerim.


Akü değeri düşük iken ilgili dirençde ortaya çıkacak ısı çok yüksek değerler olduğundan bunu zaman yayıp ve dirençteki efektif gücü düşürmüş oldum.

Bu süreler farazi değerlerdir. Mantığı anlatmak için.

Akü doldukça şarj basma süresi uzayacaktır. Efektif akım da artmış olacaktır.

Direnç güç değeri sürekli akım basma anında Köprü çıkışı ila akü farkına dayanacak değerde olmalıdır.

Köprü çıkışındaki kapasiteler 1ms gibi kısa süreli akım darbelerini telafi edecek uygun kapasiteler olmalı.

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

packexs

#6
Arkadaşlar,
Cevaplara teşekkür ederim tekrar.

Fakat;
Devrede bir problem yok. Tasarım doğru, aynı devreyi AVR ile çalıştırınca problem olmuyor.

Kaldı ki, PIC'e harici 12 bit MCP serisi DAC bağlayınca da problem olmadı ve bu şekilde devam ettik ve düzgün bir şekilde çalışıyor.

Devrenin resimlerini gönderiyorum. Resimler prototip denemelere ait.
ekran görüntüsünden şarj akımını ve batarya şarj voltajını takip edebilirsiniz.
Ölçü aletlerinde de zaten 700 mA de max şarj olduğunu görüyorsunuz.

Sonuç;
Microchip PIC bir sefer daha anlamsız şekilde yarı yolda bıraktı!
Kesinlikle AVR problemsiz bu konuda. Ayrıca görülüyor ki, PIC bir dolu çevre birimini üzerinde barındırsa da kendi başına bir ADC kararlılığında çalışamıyor ve bu tür problemler yaşatabiliyor. Hatta PWM'i bile ayrı bir chip'e yüklemek bile daha mantıklı olabilir kesinlikle....


Not: Ticari olarak düşünmedik, kendi projemizde kullanmak üzere yaptık fakat isteyen arkadaşlar olursa değişik voltlarda, şarj akımı ve gerilimini de display menüsünden seçilebilen bir halde (kutusunda) yapıp teslim edebiliriz. Gerçekten piyasada bulunması zor ve güzel bir proje oldu.




















packexs

Alıntı yapılan: FxDev - 04 Kasım 2010, 08:20:45
Yapılamaz demek ilginç olmuş.
Stajımda 16f916 gibi düşük seviye bir PIC ile Flyback, Boost, akım kontrolü yaparak ayrıca daha da ilerleyip sıcaklık kontrollü, kendi kendini kalibre edebilen bir akü şarj cihazı tasarlamıştım. 13.8V civarı için. Hiç bir problemde çıkarmamıştı PIC. Hatta ürün haline gelip satılacaktı bile.
PIC'e ben de çok sıcak bakmıyorum fakat yapılamaz demek biraz enteresan.


Pardon, ben ne kendi ne de başkasının yazdıklarında "yapılamaz" içeren bir cümle bulamadım ama ???

packexs

Alıntı yapılan: OG - 03 Kasım 2010, 19:31:45


2N3055 den daha hızlı anahtar transistör kullanırdım.


Özellikle 3055 gibi bir transistor seçtik, 3055 çıkışında pwm'i değil de, efektif değeri stabil görmek için...