<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>~mühendisliğe dair kendi çapında karalamalar... &#187; Yazıcı step motor</title>
	<atom:link href="http://www.fatiherdem.net/tag/yazici-step-motor/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fatiherdem.net</link>
	<description>mühendisliğe dair kendi çapında karalamalar...</description>
	<lastBuildDate>Mon, 23 Aug 2010 14:58:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Adım(step) Motor Sürelim</title>
		<link>http://www.fatiherdem.net/adimstep-motor-surelim/</link>
		<comments>http://www.fatiherdem.net/adimstep-motor-surelim/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 00:45:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Çalışmalarım]]></category>
		<category><![CDATA[Yazıcı step motor]]></category>

		<guid isPermaLink="false">http://127.0.0.1/wordpress/?p=17</guid>
		<description><![CDATA[Başlığımız &#8220;step motor sürelim&#8221;! Hangi özellikte nasıl bir step motor diyeceksiniz, motorumuz eski bir yazıcıdan çıkma 7.5 derece adımlı unipolar step motor(6 uçlu).

Step motorlar ve servolar&#8230; işlev olarak çok yakınlar ve çoğu uygulamada birbirleri yerine kullanılabiliyorlar. Bu iki motora da açı(veya pozisyon) kontrollü hareket yaptırabiliyoruz. Ancak step motorlar yapı itibariyle servolardan çok daha basit, step [...]]]></description>
			<content:encoded><![CDATA[<p><span class="beyazdasiyah">Başlığımız &#8220;step motor sürelim&#8221;! Hangi özellikte nasıl bir step motor diyeceksiniz, motorumuz eski bir yazıcıdan çıkma <a title="resmi için tıklayınız" href="http://www.fatiherdem.net/resimler/step_motor.gif" target="_blank">7.5 derece adımlı unipolar step motor(6 uçlu)</a>.<br />
</span><span id="more-17"></span></p>
<p>Step motorlar ve servolar&#8230; işlev olarak çok yakınlar ve çoğu uygulamada birbirleri yerine kullanılabiliyorlar. Bu iki motora da açı(veya pozisyon) kontrollü hareket yaptırabiliyoruz. Ancak step motorlar yapı itibariyle servolardan çok daha basit, step motorlar sabit mıknatıs ve sarımlardan oluşurken servoların içinde bir kontrol devresi bulunmaktadır. Bu iki motorun da çok geniş bir kullanım alanı var ancak ben step motorları en çok CNC makinelerinin eksen hareketlerinde görüyorum, servoları ise açılı hareketin çok önemli olduğu robot kolu uygulamalarında çokça görüyorum.</p>
<p>Bizim sürdüğümüz step motor ise hepsinden basit <img src='http://www.fatiherdem.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Torku ancak yazıcıya kağıt alabilecek büyüklükte olan mütevazı bir motor. Step motorlarda rotor(ortada dönen parça) sabit mıknatıslardan oluşuyor stator(rotoru çepeçevre saran hareketsiz bölüm) da ise sarımlar var. Rotordaki sabit mıknatıs sayısı ve statordaki sarım sayısı tamamen motorun özellikleriyle ilgili. Sarımlar rotor etrafını sarmış sıralı bir şekilde duruyor(resmi aşağıda-bir resim altta-):<br />
Sabit mıknatıslardan oluşan rotor:<br />
<img src="http://www.fatiherdem.net/resimler/rotor.gif" alt="Step motorumuzun kalıcı(permenant) mıknatıslardan oluşan rotoru" /><br />
<span style="color: #000000;"><span style="font-size: xx-small;">Resim </span><span style="font-size: xx-small;">www.overclockers.com</span><span style="font-size: xx-small;"> dan alınmıştır.</span></span></p>
<p><span style="font-size: x-small;">Statordaki sarımlar(4 tane):<br />
<img src="http://www.fatiherdem.net/resimler/stator.gif" alt="Rotorun etraındaki sarımlar" /></span><br />
Resim www.allaboutcircuits.com dan alınmıştır.</p>
<p>Motorun sürülmesi işlemi ise bu sarımları belirli bir sırayla mıknatıslandırmaktan ibaret, teker teker veya 2 li 1 li  2li&#8230; gibi bir sırayla mıknatıslandırarak motorumuzu sürebiliriz. Sarımı mıknatıslandırmak? Sarıma akım vererek mümkün tabi. Akım vereceğiz ancak önce motorumuzdan çıkan kabloların hangisi hangi sarıma ait bunu bilmeliyiz. Sarımlarda bazı uçlar ortak olmuş olabilir(aşağıdaki gibi) veya tüm sarımların uçları dışarı verilmiş olabilir. Tüm bunları anlamanın yolu bir ohmetre ile bakmaktan geçiyor. Her bir sarımın yaklaşık 80-100 ohm civarında bir direnci var, ohm metreyi elinize alın ve başlayın 2 şerli ölçüm almaya. Çiftlerin birinde 100 ohm okudunuz! Hah! bir sarımı buldunuz demektir. 200 ohm okuduysanız bir ortaklık var demektir, ortak ucu bulmaya çalışın <img src='http://www.fatiherdem.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Bu şekilde tüm sarımları keşfettikten sonra sürücü devre işlemine başlayabiliriz.</p>
<p>Herhangi bir sarımı mıknatıslandırdığımızda rotordaki en yakın mıknatıs mıknatıslandırdığımız sarımın manyetik doğrultusuna girer. Sonra bir yandaki sarımı mıknatıslandırırız ve rotordaki en yakın mıknatıs yeni mıknatıslanan sarımın manyetik doğrultusuna girer, rotordaki sabit mıknatısların ve statordaki sarımların yerleşim biçimi bu iki hareketle motorun bir adım ileri atmasını sağlar. Aşağıdaki resim rotorda sadece tek sabit mıknatıs olsaydı ne olacağını gösteriyor, bizim tarif etmeye çalıştığımızın aşağıdaki olaydan tek farkı rotorda tek mıknatıs değil birden çok mıknatıs olmasıdır(Rotorumuzun örnek resmini yukarıda vermiştik). Hangi mıknatısa göre yön belirlenecek sorusunu sorabilirsiniz, rotordaki sabit mıknatıslardan mıknatıslanan sarıma en yakın olan mıknatısa göre <img src='http://www.fatiherdem.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Bu motorun tasarımıyla ilgili bir durum şu anda bizi çok da ilgilendirmiyor, sürme işlemi için yapmamız gereken sarımları uygun bir şekilde mıknatıslandırmaktan ibaret. Aşağıdaki hareketli gösterimde a ve b sarımları için ortak uçlar ayrı, bunlar da ortak olabilir yani 4 sarımın da bir tek ortak ucu olabilirdi, bu durumda motorumuz 6 uçlu değil 5 uçlu olurdu.<br />
<img src="http://www.fatiherdem.net/resimler/step-rot.gif" alt="" /><br />
<span style="font-size: xx-small;">Resim :http://www.cefetrs.tche.br/tro/alunos/motordepasso/toppage1.htm adresinden alınmıştır.<br />
</span><br />
Resmi aldığım adrese bakarsanız bu resmin yanında yarım adım sürme ile ilgili resim var, 2 li 1li derken onu anlatmaya çalışmıştım, hareketli gösterimde çok güzel anlatılmış. Hazırlayanların eline sağlık.</p>
<p>Sarımları mıknatıslandırma işlemi için bir devre düşünelim. Şartlarımız:<br />
1) İstediğimiz sarımı istediğimiz zaman mıknatıslandırabilmeliyiz (mikrodenetleyici kontrollü -eğer tek tip sürüş yapacaksak senkron(clock sinyali ile çalışan) bir lojik devre ile de sürebiliriz)<br />
2) Devremiz tarafından yeterli akım sağlanmalı</p>
<p>Akım verdiğimiz sarımları daha hızlı değiştirirsek  motorumuzu hızlandırabiliriz. Ne de olsa akımın hangi sarımdan akacağını dijital olarak kontrol ediyoruz. Ancak bu hızı da bir yere kadar arttırabiliriz, bir sarıma akım vererek mıknatıslandırıp rotoru gelmesi gereken pozisyona gelmeden diğer sarıma geçersek motorumuz bu hıza cevap vermeyecektir. Bu süreyi nasıl ayarlayacağız? Ben hız denemesi yapmadım, aşağıda verdiğim programdan da anlaşılacağı üzere adımlar arasında 500 ms beklemişim(epey uzun bir süre), siz bu süreyi kısaltarak ne kadar kısaltabileceğinizi test edebilir, motorunuzun ne kadar hıza ulaşabileceğini görebilirsiniz.</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;16f628.H&gt;</span>
<span style="color: #339933;">#fuses INTRC_IO, NOMCLR, NOPROTECT, NOWDT, NOLVP</span>
<span style="color: #339933;">#use delay(clock=4000000)</span>
main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//int a[8]={1,3,2,6,4,12,8,9};</span>
<span style="color: #666666; font-style: italic;">//int a[4]={1,2,4,8};</span>
<span style="color: #666666; font-style: italic;">//int a[2]={1,4};</span>
<span style="color: #993333;">int</span> a<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">4</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #009900;">&#123;</span><span style="color: #0000dd;">8</span><span style="color: #339933;">,</span><span style="color: #0000dd;">4</span><span style="color: #339933;">,</span><span style="color: #0000dd;">2</span><span style="color: #339933;">,</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #993333;">int</span> i<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
output_b<span style="color: #009900;">&#40;</span>a<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
delay_ms<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">500</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
i<span style="color: #339933;">+=</span><span style="color: #0000dd;">1</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">==</span><span style="color: #0000dd;">4</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
i<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Tekrar devremize dönersek: İlk aklımıza gelen herhangi tip bir transistorü anahtar(switch) olarak kullanıp bu anahtarları mikrodenetleyici veya lojik devre ile kontrol etmek . Bu işi önceden yapan arkadaşların devrelerine baktığımız zaman ULN2003 adlı bir entegrenin sıkça kullanıldığını görüyoruz. Bu entegrenin içinde 8 tane darlington var, bahsettiğimiz ilk yöntemden farklı değil, sadece daha yüksek akım için darlington yapısı kullanılmış.<br />
Bizim motorumuzun keşfettiğimiz 4 tane sarımı vardı. 6 uçlu(kablolu) bir motordu, 2 sarımın da ortak olduğu bir nokta vardı, bu uçları +VCC ye bağlamıştık(aşağıdaki resmi inceleyeiniz, bunu yapıp yapmamakta serbestiz, farklı kombinasyonlarla farklı sürüşler uygulanabilir) ve kalan uçlarından hangisini toprağa çekersek o sarım mıknatıslanıyordu. Yani sürme işlemi için ULN2003 ün 8 darlingtonundan 4 tanesi bizim için yeterli. Devre şemamız ise şöyle:<br />
<img src="http://www.fatiherdem.net/resimler/step_motor_surucu_devresi.gif" alt="" /><br />
<a href="http://www.fatiherdem.net/yuklenenler/adim.rar">Çok emin olmayarak(hata olabilir) hazırladığım Proteus Simülasyon ve CCS C kaynak kodunu indirmek için buraya tıklayınız.</a><br />
Videosu:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent" /><param name="src" value="http://www.youtube.com/v/g3QEuwY_z3Y&amp;rel=1" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://www.youtube.com/v/g3QEuwY_z3Y&amp;rel=1" wmode="transparent"></embed></object> <strong style="display:none"></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fatiherdem.net/adimstep-motor-surelim/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>
