Botona basılı tutarak *10 ve*100

Başlatan sezgin05, 06 Haziran 2006, 13:48:13

Erol YILMAZ

Sevgili Sezgin,
5MIPS = 0.2 uS/komut yapiyor.
Ama ADC 40-50  KSPS hizlarinda olmasi lazim.

Denemek-gormek lazim. Ama oyle veya boyle zevkli bir calisma olacagi kesin.

PSOC diyesim geliyor ama isin rengi cok degisiyor :))
PIC ile baslayalim...

Mesela, 0...30V, 0...10A  Gerilim ve Akim sinirlamali Anahtarlamali. boyle bir guc kaynagi sanirim herkesin oldukca isine yarar.
Degerleri kafama gore salladim.

Mekanigi kurduktan sonra yazilim oyunlari kisilere ozel olsun.
Kontrolde hangi teknikler daha etkin sonuclar veriyor? Niye? nasil? diye tartisiriz.
Hatta bu yarismada MCU siniri yoksa ben tercihimi hemen PSOC tan yana yapiyorum :))

Ne dersiniz 2006 yazi boyunca boyle bir yarisma yapalim mi ?

ise

sadece n kanal kullanılabilir. ferit trafo ,opto izolatör(tlp250 ), transistör (bc327 , 337) , opamp  vs.vs..  sürme teknikleri var isteğinizi kullanabilirsiniz. pwm hızınızın mosfetin  hızınada erişmesi gerekiyor.  düşük hızlı mosfet kullanılırsa pek te iyi bir tercih olmaz.

sezgin05

@EROL ustam hesap hatasını editledim.0.2msn/komut eğer geç kalırsa şöyle bir iyileştrime yaparız.Örneğin her komut %0.1 duty oyna yerine%0,4 duty oyna deriz.Hassasiyet 1/255 olur.Biraz hassasiyet düşsede tepki hızı 4 katı artmış olur.
Gelelim MCU meselesine ben PIC derim sebebide PIC kullanıcı yelpazesinin ve temin etme imkanının geniş olması.Ayrıca yapılacak iş çok fazla karmaşık bir şey olmayacak.Bende akşam PBP de birşeyler karaladım.Dediğin gibi zevkli olacak ve bizim olacak.
@THIEF ustam neden sadece N kanal FET anlayamadım açarmısın?Frekans olayındada haklısın ama zaten picden istediğimiz frekansda pwm verbiliriz.Aslında komple Switch Mode Power Supply yapsak daha nefis olacak ama iş biraz karışıyor o zaman.Yani  trafonun primer tarafından kıyarak yaparsak sadece Duty ile ayarlamak yetmeyecek aynı zamanda frekanslada oynamak gerekecek.İsterseniz şimdilik seconder tarafında kıyma yapalım sonra geliştiririz...

sezgin05

Evet arkadaşlar ilk karalamalarım ama daha eksiği çok:

Alıntı Yap'****************************************************************
TRISA=%11111111
TRISB=%00000000
TRISC=%11110000
DEFINE CCP1_REG PORTC
DEFINE CCP1_BIT 2
ADCON1=%00000101
VOLTAGE VAR BYTE
SET_VOLT VAR BYTE
CURRENT VAR BYTE
SET_CUR VAR BYTE
DUTY VAR BYTE
V_UP VAR PORTC.4
V_DOWN VAR PORTC.5
mV_UP VAR PORTC.6
mV_DOWN VAR PORTC.7
C_UP VAR PORTA.2
C_DOWN VAR PORTA.3
STD_BY VAR PORTA.5
DoOnce VAR BIT
POWER var bit
X VAR BYTE
Y VAR BYTE
doonce=0
POWER=1
DUTY=0
set_cur=100

START:
'=================================Standby edilmesi
if Power=0 then
   PORTB=128
   PORTC=10
   Duty=0
   gosub switch
endif
'===================================Analog girişlerin tanımlaması
ADCIN 0,VOLTAGE
ADCIN 1,CURRENT
hpwm 1,DUTY,10000
'==================================Ekranda akım ve gerilimin gösterilmesi
For X = 0 to 2
   Lookup (VOLTAGE dig (X)),[63,6,91,79,102,109,125,7,127,111],PORTB
   Lookup X,[3,2,1],PORTC
   NEXT X
   pause 5
   For Y = 0 to 2
   Lookup (CURRENT dig (Y)),[63,6,91,79,102,109,125,7,127,111],PORTB
   Lookup Y,[10,9,8],PORTC
   NEXT Y
   pause 5
   PORTB=%10000000 :PORTC=2 :pause 5 :PORTC=8 :pause 5 :PORTC=0
   
'====================================Volt olarak set edilmesi    
   If (V_UP = 0) and (DoOnce = 0) then
        DoOnce = 1
        SET_VOLT = SET_VOLT + 10
   else
   If (v_down =0) and (DoOnce = 0) then
           DoOnce = 1
           SET_VOLT = SET_VOLT - 10
           
        endif
     Endif

     If (v_up = 1) and (v_down = 1) and (DoOnce = 1) then DoOnce = 0
'====================================Milivolt olarak set edilmesi
If (mV_UP = 0) and (DoOnce = 0) then
   DoOnce = 1
   SET_VOLT = SET_VOLT + 1
else
If (mv_down = 0) and (DoOnce = 0) then
   DoOnce = 1
   SET_VOLT = SET_VOLT - 1
           
   endif
Endif

If (mv_up = 1) and (mv_down = 1) and (DoOnce = 1) then DoOnce = 0
'========================================Akımın set edilmesi  
   If (c_UP = 0) and (DoOnce = 0) then  
       DoOnce = 1
        SET_CUR = SET_CUR + 10
   else
   If (C_DOWN = 0) and (DoOnce = 0) then
       DoOnce = 1
       SET_CUR = SET_CUR - 10
           
       endif
   Endif

If (mv_up = 1) and (mv_down = 1) and (DoOnce = 1) then DoOnce = 0
'========================================Akım ve gerilim regülasyonu
   if current > set_cur then
       duty=duty-1
   ELSE
   IF CURRENT<= SET_CUR THEN
   DUTY=SET_VOLT
   ENDIF
endif
'========================================Stand-by edilmesi
SWITCH:  
   if (std_by =0) and (doonce = 0) then
       doonce = 1
       toggle POWER
       pause 50
   endif
If (std_by = 1)  and (DoOnce = 1) then DoOnce = 0  
   GOTO START
   END
 

sezgin05



ETE ustam sana uydum LCD göstergede karar kıldım.Yavaş yavaş şekillenmeye başladı...Ama ben hala buton yerine farklı birşey kullanmakta ısrarlıyım.Örneğin bazı mousların scroll ları mekanik 3 kablolu bir tertibattan oluşuyor.Henüz incelemedim.Acaba nasıl çalışıyor bu sistem..

ete

Bir devrede ben vereyim istedim. Program çalışmam bitti aslında.
Sİmulasyon görüntüsü ve dosyaları aşağıdadır.
Çalıştıracak olanlar için isis section dosyasıda verdim.
Sİmulasyonda üretilen PWM çıkışını voltaja çevirerek yeniden pic ADC girişine verdim. Böylece sanki güç kaynağından okunuyormuş casına pic voltajı set edilen değer eşitlemektedir. Çalıştırıp görebilirsiniz.
Amper değerleri ile oynarsanız ve set değerlerini aşarsanız devrenin tepkisinide görebilirsiniz.

Aslında güzel bir başlık açılmış idi. Ancak beklediğim gelişmeyi göremedim.
İşe biraz hız katmamız lazım. Deneyimli arkadaşlardan STEP-DOWN switching güç kaynakları konusunda örnek devreler bekliyorum.
Şu anda bir prototip üzerinde çalışıyorum. Ancak bazı sorunları var.
Bir defa voltajı ksıtığınız zaman tam sıfırlamada sorun var. Bu nedenle boşaltma direncini 180 ohm gibi bir değere düşürmek zorunda kaldım. Halbuki 1K dan daha aşağı olmaması gerek diye düşünüyorum.
Pic de ideal PWM frekansı 19 KHz dolayında gözüküyor. Bu değeri veriyorum. 10 bit PWM kullanıyorum Burada bir sıkıntı yok. Denemelerde 3-4KHz lik frekansların altında devre ötme yapıyor. Üzerinde pek bir şey fark etmiyor. Hatta 70 KHz PWM frekansı da verdim (20MHz de çalışıyorum) ancak verebildim ise bir fark göremedim ve sonuçta 19 KHz de karar kıldım.

Simulasyon dosyaları için link;

http://www.hemenpaylas.com/download/948888/Power.rar.html



Kolay gelsin

ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

sezgin05

Ustam ellerine sağlık.Dediğin gibi olması gereken ilgiyi bende göremedim.Sonradan aklıma geldi.Programı fazla kasmamak için picden sonra bir TL494 veya benzeri bir IC koysak hem akım hemde gerilimle oynarız.Sence nasıl olur?

ete

Bence kontrolu daha zor hale getiririz. Yaptığım devre aslında güzel çalışıyor kontrolda çok zor değil. Ne istersen yaptırabiliyorsun. Bu nedenle senin papağanlı adamın devresi üzerinde durmanı tavsiye ederim.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

sezgin05

Ustam devreni Jackboardda denedim ve gerçekten güzel çalışıyor.Galiba portC3'ü kullanmamışsın.Ayrıca 2. PWM de sadece simülasyon için yapılmış.Haddim olmayarak boş kalan pinlere birşeyler daha eklenebilirmi diye düşündüm.
Örneğin :
*Analog girişlerden birine girilecek bir ısı sensörü ile otomatik soğutucu fanı takılabilir.
*Acil stop için Standby tuşu konabilir.
* SET edilen değerler dahili EEPROM a kaydedilebilir.
*Eh olmuşken birde akım sınırı aşıldığında sesli uyarı versin   :lol:

ete

Aslında tasarlamaya çalıştığım devrede bazi ilaveler olacak. Kullanmadığım uçları onlara ayırmıştım. Kafa karıştırmasın diye diğerlerini sildim ve yalnızca güç kaynağı ile ilgili olanları verdim.

Yaptığım denemelerde yaklaşık 3 amperler dolayında güç transistörüm (TIP147) yalnızca ılık bir hal alıyor. Neredeyse 1 amperde soğutucusuz çalışacak. Switching'in avantajı galiba. Bu yüzden bir sensöre ihtiyaç yok bence.

Set değerlerini zaten eeproma yazdırıyorum. Dolayısıyla cihazı açtığınızda önceki set değeri ile açılıyor.

Akım sınırı aşıldığında sesli uyarı projem dahilinde. Onu en sona bıraktım. Ra.4 bu işi için kullanılacak.

Bu jackboard dediğin nedir hiç duymadım?.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

sezgin05

Jackboard=Breadboard yada project board...
Öğrencilik yıllarından kalma bir alışkanlık.Denemelrde kullandığımız sök tak board işte.Allah kolaylık versin ustam...