R/C model uçak için hız kontrol

Başlatan pwm3434, 11 Temmuz 2012, 08:01:38

pwm3434

#15
mucit23 şimdilik  elimde  mevcut olan 16f876 -20'lik  mhz ve 16f877a. bunlarla başlangıç olarak denemeler yapabilrmiyim. bu linkteki  uygulamada 876 kullanmışlar. http://www.emo.org.tr/ekler/7c799ffdfee150b_ek.pdf  her bir bobin için 2 mosfet kullanılmak  zorunda mıdır.

  motorumuz 3 Bobinli olsun  a,b,c isimli olsun. her bir bobin  için 2'er  mosfet p ve n kanal kullanılsın.
ab ucları aynı  anda enerjili iken diğer uçlar low da  ve  aynı  şekilde bc  ve  sonrada ca ucları  enerjilendirilip ve bu kombinansyon  döngüsü devam ettirlince  motor  dönecek.
 
pwm sinyalini hangi  uçlara  gireceğim  n kanalamı p kanalamı yada  ikisinedemi. mesela ab uclarına aynı  enerji  verirken a ve b bobinini enerjiliyen 4 mosfetin hangilerine pwm  uygulayacağım

anladığım kaddarıyla örnek  verebilirmiyim .Bu komutlar  sadece ab bobin uclarını enerjilendirmek için  pwm değerleri ve döngü degerleri tamamen örnek için bilmediğim  için asıl  değil.

FOR  X=0 25
hPWM abobinNKANAL,20.1000
hPWM bbobinNKANAL,20.1000

hıgh    abobinPKANAL
hıgh    bbobinPKANAL

PAUSE 30
NEXT

yukarıdaki  kod  örneğinde abobinNKANAL'ına pwm  uyguladım  aynı zamanda da abobinPKANAL'a da hpwm'siz  olarak logig 1 uyguladım

yazıda  düzenleme yaptım




İlyas KAYA

Sayın pwm3434;

16F876A bu iş için uygundur.

- Motor'un her ucu için hem artı hemde eksi vermemiz gerektiğinden dolayı mecburen 6 mosfet kullanmak zorundayız.
- Tüm mosfetler N kanal olursa daha iyi kontrol sağlarsınız.

-Geçiş anlarında mosfetler ısınmasın diye mosfet driver kullanmak zorundayız.
-PWM için ; ister ARTI yı veren mosfetler ister EKSİ yi veren mosfetler ile yapılabilir.
bunun için mosfet sürücünün kontrol bacaklarından önce 74HC08 kullanabilirsin.
VE kapısının girişlerinden birer tanesini ortaklayıp PWM 'e bağlarsınız.
kalan diğer girişleri PIC den kontrol olarak kullanabilirsiniz.

Böylece her durumda PWM sinyalini iletmiş olacaksınız.
Eğer mosfet sürücünüzün girişi tersinmiş ise 74HC00 kullanabilirsiniz.



Sizin için son bir kolaylık daha sağlayayım ;
Aşağıda Fırçasız motor sürüş için mosfetlerin durumları belirtilmiştir.

Biz 3 bobine A,B,C değil UVW diyoruz. Buna göre buradan çıkartabilirsiniz.
Yalnız kullandığınız motorun kaç derece olduğu önemli. Aşağıdaki sürüş 120derece motor içindir


EN33:

UH=0
UL=0

VH=0
VL=1

WL=0
WH=1

RETURN

EN17:

UH=0
UL=1

VH=0
VL=0

WL=0
WH=1

RETURN

EN24:

UH=0
UL=1

VL=0
VH=1

WH=0
WL=0

RETURN

EN72:

UH=0
UL=0

VL=0
VH=1

WH=0
WL=1

RETURN

EN192:

UL=0
UH=1

VH=0
VL=0

WH=0
WL=1

RETURN

EN160:

UL=0
UH=1

VH=0
VL=1

WH=0
WL=0

RETURN

FRENLE:

UH=1:UL=0
VH=1:VL=0
WH=1:WL=0

RETURN
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

Mucit23

#17
İyi bir sürücü yapmak istiyorsan hazır sürücü enteğrelerinden kullan. Yine 16F876 kullan ama motorla uğraşma bırak bu iş için özel yapılmış MC33035 gibi BLDC motor sürücülerinden kullan. Pek pahalıda birşey değil  zaten..
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

pwm3434

karatech en33  etiket ile  en72  etiket  aynı bobin  uclarını  enerjilendiriyor. en33'de ki VL1 ve WH1,  en72'de tersi durumuna gelmiş  bundan kasıt mosfetlerin  yorulmamasımı.  soracağım soru var  ama biraz  pratikte  uğraşıyım deneme  yanılma ile  kafamdaki  soruların  bir  kısmına  cevap  bulabilirim.  and  kapısı  olmasada  olur  değilmi. 

EN33:

UH=0
UL=0

VH=0
VL=1

WL=0
WH=1

EN72:

UH=0
UL=0

VL=0
VH=1

WH=0
WL=1


İlyas KAYA

#19
Aynı gibi görünse de aslına aynı değil .

L olanlar low H olanlar High zaten bunu anlamışsınızdır.

Şimdi ; diyelim ki

UH=0 UL=1 dedik.

Biz bunları daha sonra tersine çevirecek olur isek

UH=1 UL=0 yapar isek, bir komut işleme süresince UL bir önceki konumda =1 olduğundan dolayı
hem UL hemde UH aynı anda 1 olacaktır.

Bu çakışmayı mosfet sürücü algıladığı anda girişlere bakmaksınız çıkışları low'a çeker.
Bu nedenle daha önce hangisi 1 ise önce onu 0 yapmamız gerekir.

Yani daha önce  UH=0 UL=1 olan komut bu sefer  UL=0 UH=1 olmalıdır.

- AND kapısı olmadan olmaz malesef. Hemde HC yada HCT hızlı serisini kullanmalısınız.
3 mosfete sıra ile ver kesde yapabilirsiniz ama düdük gibi öten bir motora sahip olursunuz :)

Eğer uğraşmıyor olsaydınız yardımcı olmazdım :)

Çünkü hazıra konulmasını arzu etmeyen biriyim.
Sizin ciddi olarak bu işe kendinizi verdiğinizi görünce ufak ufakta olsa yardımcı olmak istedim.

Umarım beni anlarsınız.

Saygılarımla.


Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

pwm3434

kayatech usta  anlayışınız  için  çok  teşekkür  ederim. yardımlarınız  içinde  teşekkür  ederim  maalesef  fırsat  bulupta  deneyemedim.  parasızlık  malumun  led  tabela  ile   uğraşıyorum geçim  için ve  gayrısındaki  işlerde  olunca  zaman  bulma  sorunu  oluyor.  bir  an  evvel  ufak  ufak  deneme yanılmayı  kullanarak  uğraşacağım.

daha henüz  tam  tanımış  değilim  sizi  ve  elektrik elektronik  olarak bilgi  ve  tecrübe  seviyeniz  hangi durumdadır  malum  bilmiyorum. konu  dışı ama  bir  tavsiye  verebilirmisiniz  yüksek  seviyeli  dillerden  hangisi  öğrensem  daha  iyidir  endüstriyel alanında   pc ile pıc ve  çevresel  birimlerle  iletişimi sağlamak için.mesela cnc programı  pixelleri okuyor daha başka misal ise pc faresinin kordinat bilgilerine  göre sağa sola  aşağıya yukarıya dönebilen  kameralar  son  misal ise gprs cihazlarından alınan bilgilere  göre  çalışan  bir  sistem.  Bu üç misal ve  dışındaki olan   bunlara  benzer  elettrik elektronik projeler  için  gerekli  olan  yazılım ihtiyacını tek bir  tane  yüksek  seviyeli dillerden  olan  bir  yazılım dili  karşılıyabilirmi.

iyi  çalışmalar. 

İlyas KAYA

Sayın pwm3434;
Estafurullah sorun değil.

Ben şahsıma ait otomasyon firması var ve otomasyon sistemleri tasarlayıp satış yapıyorum.
Bilginin sınırı olmadığı için kendimi herhangi bir noktada göremiyorum bu neden ile size şuradayım diyemem.
Bildiğimiz konularda elbet vakit buldukça yardımcı olmaya çalışıyorum.

Yüksek seviyeli dil demek tabana uzak olan yani ASM ye uzak olan diller demektir. ASM ise düşük seviyeli bir dildir.

Ben ASM ile kod yazılmasına karşıyım. Öğrenebilirsiniz ama kod yazma işine gelince bence gereksiz.
Zaten PC ler hızlı çalışıyor. Hataları size gösteriyor. ASM ile yazıp boğuşmak yerine bırakın PIC çalışsın o yorulsun.
Kısacası size zaman kalsın.
Tabi yineliyorum bunlar benim şahsi görüşüm. Katılırsınız yahut katılmazsınız sorun değil :)

Bu uygulamaları birçok dil ile yapabilirsiniz. Pic Basic ile de olur ama kütüphanesi çok geniş olan CCS C tavsiye ederim.

CCS C hem düşük seviyelidir hem de değildir. Yani ortada bir dildir. ASM ye en yakın dil olduğu için PIC donanımını ve kontrollerini rahat yapabilir hemde sıkılmazsınız.

Kolay gelsin.
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

pwm3434

tavsiyeniz  için  teşekkür ederim  kayatech. bu dillerden muhakkak  bir tanesini  öğrenmeliyim.öğrenmiş iken  otomasyon dünyasında çoğunluktaki sorulara sorunlara cevap  verebilecek  bil  dil  olsun diye  bu konuyu biraz  düşünüyorum. belirli  bir  zamandan  sonra ( vah şunu  öğrenseydim ) cümlesini kullanmamah için. c# dilini  düşünüyorum kayatech  çünkü C hakkında  bir  kitap  bitirdim  ama  sadece teorik  olarak. daha  henüz  hiç  konsol uygulaması yapmadım  çünkü ancak çalıştığım  iş yerinde  kitabı  okuma  fırsatı bulmuştum.  yanlış anlamayın  kayatech  sizden başka   bir kaç mühendisin daha  fikrine  danıştım. inşallah  c# da işini  görür  derler.   kolay  gelsin  başarılar 

İlyas KAYA

#23
Sayın PWM3434 ;

C# PIC programlama dili değildir. C# PC programlama dilidir.

PIC için ;

PIC C , Micro C , CCS C dilleri vardır.
Yapı itibari ile C#'a benzerler.


Pic Basic ise yapı itibari ile Visual Basic 'e benzer.

Yanlış yoldan gitmeyin :)
Göz odur ki dağ ardını görsün,
Akıl odur ki başa geleceği bilsin.!

pwm3434

kayatech  usta  3 n kanallı ırfz44 mosfetini   kullanarak uygulama  yapacağım şimdilik kodlarım şöyle
üç  mosfet  portb.0,portb.1,portb.2'e bağlı olduğu  varsayılsın.  model uçağın yön belirleyici  rudder  ve  elevatör hareketleri  için   iş süresi  0-2 ms aralığında saniyede  50  puls  uyguluyorum.   ama daha  önce  hiç  3  fazlı  kontrol  etmediğim  için bobin enerjilendirme aralarındaki  faz açısını  belirleyici olan  pause  30 varsaydım. ustam bobin  geçişleri  arasındaki zaman  değeri  ne  olacak.
TRİSA=0
TRISB=0

BASLA:
PORTB=3:PAUSE 30  '  portb.0 ve portb.1 hıgh  durumunda diğerleri  low  konumunda
PORTB=6:PAUSE 30  '           1               2
PORTB=7:PAUSE 30  '           2               0
GOTO BASLA  ' sonsuz  döngüye  girdi  ve  motor  sürekli   döner.


zaman bulma  sıkıntısını önceki  mesajımda belirtmiştim. model  uçağın  gövde,kanat  ve  diğer  elektronik kısımlarını  bitirdim esc yi  hazır  kullanacağım  bugün  spariş  ettim. resim ekleyeceğim  ama şu an  müsait  değilim. videosunuda  artık  nezaman  uçurmak  kısmet  olursa  eklerim.

kayatech üç mos  kullacağını  söyledin  tabiki  düdük  gibi  bir  sese  sahip olmak  kaydıyla :) .  analamak  istediğim  konu  diğer  olması  gereken  3  mosfetide  ilave  edip devrenin aslını  yapmak.derdimi  iyi  anlatmak için  dsn  ekleyeceğim şu  an  için  maalesef usta.   kısaca eğer 6  mosfetli  yapacak  olursam aşağıdaki gibi olabilir mi

3 pıc çıkışını 3 pc817  optusuna

pc817 çıkışlarını da ayrı  ayrı drain'ı vdd' bağlı n kanalı ırfz44 gatelerine ve  bu  44'ün source'nü de motor bobinine bağlı diğer 44'ün drain'nına. mosfetler  seri bağlamış olduk.

altı çizili olan yani  bobine seri bağlı 44'ün gatelerine ise de parelel olarak sürekli olarak 1-2khz'lik kare sinyal  uygulacağız.

ustam motorun hızını   hemen  alt satırdaki döngü değeri  belirleyecek.  doğru yoldamıyım
for x=0  to 250
PORTB=3:PAUSE 30  '  portb.0 ve portb.1 hıgh  durumunda diğerleri  low  konumunda
PORTB=6:PAUSE 30  '           1               2
PORTB=7:PAUSE 30  '           2               0
next

Powered by EzPortal