SMPS Seçimi Hk.

Katılım
19 Mar 2015
Mesajlar
7
Puanları
1
Yaş
49
Merhaba Değerli Forum Üyeleri, biliyorum ki işin uzmanı olmayan kişilerin soruları can sıkabiliyor. Ancak bilgilendirmeye ihtiyacım olduğu için bu konuda affınıza sığınıyorum.

Bir Kendin Yap projesinde maliyetleri olabildiğince düşük tutup orta karar verim almak için malzeme teminine başladık. Benzer projeleri yerine getiren arkadaşların konularını malzeme seçimlerini inceledik. Birebir kopyalama yaptığımız halde bazı sıkıntılar yaşadık.

Seçtiğimiz malzemeler;
1-Arduino UNO R3
2- Arduino MotorShield Rev3
3- Nema 23 2.3V 2.8 A ve 0.83 Ohm içdirençli step motor.

Bu devreye güç adaptörü tercihimiz iki türlü oldu. 12V 2A bir adaptör ile 12V 3.8A bilgisayar adaptörü. Ancak iki seçimde de sürücü kartı aşırı ısınma yaptı. Sonra bir hesap olduğunu öğrendik. 12/0.83=14A yaklaşık değer olarak çıktı ve aslında motorun bu akımı çektiği söylendi. Buradaki sorumuz bu çekilen amper kalkış anında motorun talebi mi yoksa her daim çalışması istendiğinde sürekli bu akımı mı çekecek?

Diğer husus ise; aynı projeui aynı kart ve sürücü ile yapan arkadaşın motor seçimi ise şöyle idi: Nema 23 3.3V 3A ve 1.1 Ohm. Fakat bu arkadaş bunu ısınma sorunu olmadan çalıştırıyor. Aklımıza bu arkadaşın videosunda şu an çözmeye çalıştığımız adaptör seçimini gördük. Bilgili kişiler bunun SMPS olduğunu söyledi. Eğer SMPS tercihi ile bu sorunu aşabilirsek ne değerlerde seçim uygun olacaktır? Örneğin elimizde 12V 20 A lik bir SMPS var. Bu fazla mı olur eksik mi olur?

SMPS tercihi yüksek amper çekimi nedeni ile yapılır yoksa EMF denen motorun ters gerilimini kaldrıma kapasitesi nedeni ile mi yapılır?

Vakit ayırıp bir nebze fikrini paylaşacak üyelere şimdiden teşekkür ederim.

Benzeri çalışma örnek video linki aşağıdadır.
 
Merhaba,

Öncelikle sorununuz besleme ile ilgili değil.

L298 in sense pinlerini kullanmıyorsunuz veya hatalı kullanıyorsunuz diye düşünüyorum.
Şemada sense enable şeklinde etiketlenmiş jumper veya padler görünüyor. Padlerin lehimle birleştirilmesi veya jumperın takılı olması gerekir.

Kart sense pinlerinden amper başına 1.65V veriyormuş.
2.8 A için yazılımınızda bu gerilimleri okuyup yaklaşık 4.5V civarında PWM i off yapmanız gerekir.

Step motorlar sabit akım ile sürülürler. 14A lik hesabınız doğru ama motor dönmüyorken.
Motor dönerken iç direnci-empedansı da arttığından sizin motorunuza göre konuşursak 2.3V dan daha yüksek gerilimle sürülürler. Motorun hangi devire çıkacağına göre.
Yani 12V tercihi doğru denebilir.

Motor hep aynı hızda dönmediğinden ve hatta durduğundan motoru aşırı akıma maruz bırakmamak için de chopper denen akım sınırlama devreleri kullanılır.
Bu chopping işi de sizin kartınızda da sense pinlerinden gerilim okunarak PWM i soft olarak kesmek şeklinde olabiliyor anladığım kadarı ile.
Donanımsal olarak yapmak için kart üzerindeki lm358 i komparator olarak kullanılacak şekilde düzenleme de yapılabilir. Tabii kart üzerinde bazı yollara kesik atmak ve atlama vs gibi şeyler gerekir.


Arduino ya shield uyumluluğu dışında seçtiğiniz kartın çok bir artısı yok.
TB6560-6600 gibi chopping vs yi kendi içinde halledebilen bir chip tercih edebilirdiniz.
 
İsmail bey , teşekkür ederim verdiğiniz bilgiler için. TB6600 elimize ulaşmak üzere. Onu kullanacağız. Ancak dediğim gibi videodaki şahıs aynı işlevi daha güçlü motorla aynı düzenekte nasıl becerebildiğini merak ettim.Biz pinleri aşağıdaki şekilde enable ediyoruz ya da disable. Siz diyorsunuz ki bunlara ek olarak jumper vb eklemelerde yapmak zorundayız. Yanlış mı anlıyorum?

const int stepsPerRevolution = 200;

Stepper myStepper(stepsPerRevolution, 12,13);

const int pwmA = 3;
const int pwmB = 11;
const int frenA = 9;
const int frenB = 8;
const int YonA = 12;
const int YonB = 13;

void setup() {

pinMode(pwmA, OUTPUT);
pinMode(pwmB, OUTPUT);
pinMode(frenA, OUTPUT);
pinMode(frenB, OUTPUT);
digitalWrite(pwmA, HIGH);
digitalWrite(pwmB, HIGH);
digitalWrite(frenA, LOW);
digitalWrite(fenB, LOW);
 
Sanırım dediklerinizi Analogread() ve IF komutları ile yapabilirim. Umarım başarabilirim. Yeni sürücü ile bağlantı nasıl yapacağım UNO R3 e bilmiyorum ama bu aşamada iş projeden çok kendimi geliştirme konusuna döndü. Umarım bir şeyler öğrenebilirim. Yardım eden edecek olan herkese teşekkürlerimi ve saygılarımı iletirim. Yaptığınız iş kolay değil.
 
Kod bu kadar ise PWM kullanmıyorsunuz zaten.
Şemaya göre PWM çıkışları L298 in enable pinlerine bağlı.
Dediğiniz gibi analog okumadan elde ettiğiniz değere göre pwm i on off yapmanız gerekli. Bu işlemi çok hızlı yapabilirseniz gerçek PWM kullanmayabilirsiniz.
Bir diğer yol ise PWM kullanıp motorun hangi devirlerde hangi PWM duty oranında istenene yakın akım çektiği belirlenip analog okuma vs yapmaksınız devire göre PWM duty sini bir tablodan vs. okumak olabilir.

Ama zaten tb6600 sipariş etti iseniz L298 e zaman harcamayın bence. TB6600 16 mikrostep e kadar destekleyen güzel bir sürücü.
TB6600 ün kartına göre değişebilir ama genelde 3 pin ile kontrol edilir. ENable, DIRection, PULS.
Digital çıkış olarak ayarlı 3 pin bağlantısı yeterli. Sıkıntı çıkacağını sanmam.
 
Teşekkürler,Haklısınız, sadece Ardunio Motor SHield i diğer başka yerlerde belki çok ama çok az sınırı zorlayacak bir motorla deneyebilmek için sormuştum. Peki TB6600 yı Arduino Uno R3 e bağlantısı hakkında herhangi bilginiz var mı?
 
Motor shield için söyleyebileceğim,
ya DC fırçalı motor gibi motorları akım- hız kontrolü olmadan direkt sürebileceğiniz,
ya da hız kontrollü DC fırçalı motor veya Step, fırçasız motorları PWM ile sürmeniz gerektiği ve PWM'in ON duty sini belirleyebilmek için de sense çıkışlarını kullanmanız gerektiği şeklinde.
L298 in gecikme süreleri biraz fazla olduğu içinde 20KHz üzerinde frekanslı PWM kullanmayın.

TB6600 için bir önceki mesajda dediğim gibi , sürmek için digital 3 pin yeterli. Genelde TB6600 kartların girişlerinde yüksek hızlı bir opto var. Aldığınız kartta EN+ EN- gibi ise girişler (-) olanları direkt GND ye bağlayıp çalıştırabilirsiniz. EN daima aktif olmalı. DIR ile yön belirtip, PULS ile de motorun dönmesi sağlanacak .

TB6600 ü 3.3V luk ARM ile sürerken hem akım yükseltmek, hem de 5V a level shift yapabilmek için 74lvxc.. serisi bir buffer kullanmıştım. Yoksa yüksek hızlarda adım kaçırma yapabiliyordu.

Arduino 5V olduğundan siz direkt sürebilirsiniz sanırım. Yüksek mikrostep + yüksek hızlarda araya bir buffer belkii gerekebilir.
Öncelikle direkt sürmeyi deneyin. Zaten shield uyumu olmayacağından gerekirse araya 50-60 mA basabilecek bir buffer eklenebilir. 74ABT245 vs. gibi.
 
İlginize ve bilginize çok teşekkürler İsmail bey. Herhangi bir bilgi açıkta kalmasın diye son kez notlarımı gözden geçireyim.

TB6600 ün DIR+,DUR-,PUL+,PUL- ve EN+,EN- bağlantı yerleri bulunmakta. Benim Arduino Uno R3 te Pin 3 ve 11 PWM kontrolü için kullanılıyor. Sanırım bunlardan birine PUL+ bağlamam yeterli olacak. DIR+ ise yön olarak pin12 ve pin 13 ten birine bağlamam yeterli olacak. Diğerlerini Ardunio Uno R3 teki boş GND pinlerine bağlamam yeterli olacak değil mi?

Gelelim adaptöre. Adım kaçırma düzgün işlememesi anlamında kullanılan bir terim sanırım. Bizim tüm isteğimiz bu motora kaplin ile bağlanacak bir pvc boruyu düzensiz şekilde (proogramlama neticesinde) sağa sola döndürmesi. CNC gibi ince işlerde kullanılmayacak. Bir nevi mikser rolü üstlenecek. Bu nedenle örneğin 12V 3.8 A lik SMPS tarzı bir bilgisayar adaptörü işimizi görebilecek mi?

Diğer konu ise Ardunio kartına gerekli enerjiyi (5v) ekstra bir güç kaynağı ile mi sağlamak gerekli yoksa TB6600 den hat çekilebiliyor mu? Teşekkürler.

ArduinoUno_R3_Pinouts.png
 
Son düzenleme:
TB6600 ün tüm (-) girişleri Arduino nun GND sine bağlanacak.
Diğerleri dediğiniz gibi. PUL+ Bir kez High-Low yapınca motor bir adım atar.
EN+ yı +5V a da bağlayabilirsiniz, motor çalışmıyorken boşuna akım çekmesin, ısınmasın isterseniz Arduinonun kontrol ettiğiniz bir pinine de.

Eğer elinizde varsa ve yüksek devirlere çıkmayacaksanız 12V luk kaynak yeterli. Yok yeni alacaksanız 24V tercih edilebilir.
TB6600 ün özel bir besleme çıkışı yok. Sadece besleme klemensine bir kablo daha bağlayıp Arduinoya da bir hat çekilebilir.
12V kaynak kullanırsanız arduino nun üzerinde zaten regülator olduğu için direkt besleme girişinden beslenebilir. Veya USB den de.
24V için ayrı bir regüle devresi gerekir. Linkteki Step down modül iş görür. Isı vs derdi de olmaz. Çıkışı 7V ayarlayıp arduinoya girebilirsiniz.
http://expkits.com/smagaza/entegre-component/LM2596-Power-Modul#.VQwSjWPWcZI

Öte yandan hız ve pozisyonun önemli olmadığı bir yerde kullanacağınızdan, H köprü hatta röle ile kontrol edilebileceğiniz uygun devirde bir DC motorda kullanabilirdiniz.
 

Forum istatistikleri

Konular
129,902
Mesajlar
931,150
Kullanıcılar
452,787
Son üye
Azemm333
Geri
Üst