<?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>Çağdaş&#039;ın Günlüğü &#187; mplab</title>
	<atom:link href="http://www.cagdastopcu.com/tag/mplab/feed" rel="self" type="application/rss+xml" />
	<link>http://www.cagdastopcu.com</link>
	<description>THE GNU HARDWARE DEVELOPER</description>
	<lastBuildDate>Tue, 04 Oct 2011 14:50:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PIC 16f628A ve HI-TECH C ile Servo Motor Kontrolü</title>
		<link>http://www.cagdastopcu.com/pic-16f628a-ve-hi-tech-c-ile-servo-motor-kontrolu.html</link>
		<comments>http://www.cagdastopcu.com/pic-16f628a-ve-hi-tech-c-ile-servo-motor-kontrolu.html#comments</comments>
		<pubDate>Mon, 22 Feb 2010 16:33:04 +0000</pubDate>
		<dc:creator>cagdas</dc:creator>
				<category><![CDATA[Elektrik]]></category>
		<category><![CDATA[elektronik]]></category>
		<category><![CDATA[pragramlama]]></category>
		<category><![CDATA[Robotik]]></category>
		<category><![CDATA[16f628a]]></category>
		<category><![CDATA[hitech]]></category>
		<category><![CDATA[kontrol]]></category>
		<category><![CDATA[motor]]></category>
		<category><![CDATA[mplab]]></category>
		<category><![CDATA[pic]]></category>
		<category><![CDATA[servo]]></category>

		<guid isPermaLink="false">http://www.cagdastopcu.com/?p=262</guid>
		<description><![CDATA[Ara tatilinde yaptığım ve Proteus ISIS ile simule ettiğim kodum. Butonlara basarak R/C servo motoru 60 derecelik sağa ve sola döndürüyor. R/C servo motorlar amatör Radio Controlled sistemlerde kullanıldığı için R/C adını almışlardır. Radyo kontrollü hobi uçağı yapabilirsiniz bununla Asıl motor olmayacaktır elbette kanatların altındaki kanatçıkları oynatarak uçağın yönünü değiştirebilirsiniz. Bu motorlar genellikle belirli bir &#8230; </p><p><a class="more-link block-button" href="http://www.cagdastopcu.com/pic-16f628a-ve-hi-tech-c-ile-servo-motor-kontrolu.html">Continue reading &#187;</a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop --><!-- End Shareaholic LikeButtonSetTop --><p>Ara tatilinde yaptığım ve Proteus ISIS ile simule ettiğim kodum. Butonlara basarak R/C servo motoru 60 derecelik sağa ve sola döndürüyor. R/C servo motorlar amatör Radio Controlled sistemlerde kullanıldığı için R/C adını almışlardır. Radyo kontrollü hobi uçağı yapabilirsiniz bununla <img src='http://www.cagdastopcu.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Asıl motor olmayacaktır elbette kanatların altındaki kanatçıkları oynatarak uçağın yönünü değiştirebilirsiniz. Bu motorlar genellikle belirli bir periyotta (10 ile 20 milisaniye) bir dikdörtgen (pwm asıl adı) sinyalle kontrol edilirler. Bu periyotluk dilimde eğer 1 ms&#8217;lik 1 verir ve gerisini sıfır yaparsanız motor eksi yöne 60 dereceye, 1.5 ms 1 ve gerisi sıfır olursa sıfır dereceye ve 2 ms&#8217;lik bir sinyal yollarsanız da +60 dereceye oturur. Aslında normal dc motorun biraz kontrol devreli ve dişlili halidir (redüktör). Aşağıda Proteus ISIS simulasyonunun görünüşünü koydum. Analog analiz kısmının çalışması için servo motoru devreden ayırmamız gerekmektedir. Sanırım Proteus&#8217;un bir bug&#8217;ı.</p>
<p style="text-align: center;"><a href="http://www.cagdastopcu.com/wp-content/uploads/2010/02/servokontrol.bmp"><img class="aligncenter size-full wp-image-263" title="servokontrol" src="http://www.cagdastopcu.com/wp-content/uploads/2010/02/servokontrol.bmp" alt="" width="506" height="311" /></a></p>
<p>Hi-Tech C kodları ise aşağıdaki gibidir:</p>
<pre class="brush:c">#include

#include
#include 

__CONFIG(WDTDIS&amp;PWRTEN&amp;LVPDIS&amp;INTIO);

void main(void){
    int hiz=0;
    char i = 100;
    PR2 = 255;
    //char k = 0x3D;
    //CMCON = 0x07;
    TRISA = 0x03;
    TRISB = 0x00;
    CCPR1L = 0x3F;
    PORTA = 0x00;
    PORTB = 0x00;
    CCP1X = 1;
    CCP1Y = 0;

    T2CKPS1 = 1; //Prescale özelligi
    T2CKPS0 = 1;
    TOUTPS3 = 0;
    TOUTPS2 = 0;
    TOUTPS1 = 0;
    TOUTPS0 = 0;

    CCP1M0 = 1; //CCP1 PWM MODUNDA
    CCP1M1 = 1;
    CCP1M2 = 1;
    CCP1M3 = 1;

    TMR2ON = 1; //TMR2 ENABLE
    for(;;){
        if(RA0){
            while(RA0);
            RB0 = 1;
            CCPR1L = 0x0E;
             CCP1X = 1;
             CCP1Y = 0;

             T2CKPS1 = 1; //Prescale özelligi
             T2CKPS0 = 1;
             TOUTPS3 = 0;
             TOUTPS2 = 0;
             TOUTPS1 = 0;
             TOUTPS0 = 0;

             CCP1M0 = 1; //CCP1 PWM MODUNDA
             CCP1M1 = 1;
             CCP1M2 = 1;
             CCP1M3 = 1;
             TMR2ON = 1; //TMR2 ENABLE
             __delay_ms(100);
             RB0=0;

    TMR2ON = 1; //TMR2 ENABLE

        }
        if(RA1){
            while(RA1);
            RB1 = 1;
            CCPR1L = 0x9E;
             CCP1X = 1;
             CCP1Y = 0;

             T2CKPS1 = 1; //Prescale
             T2CKPS0 = 1;
             TOUTPS3 = 0;
             TOUTPS2 = 0;
             TOUTPS1 = 0;
             TOUTPS0 = 0;

             CCP1M0 = 1; //CCP1 PWM
             CCP1M1 = 1;
             CCP1M2 = 1;
             CCP1M3 = 1;
             TMR2ON = 1; //TMR2 ENABLE
             __delay_ms(100);
             RB1=0;
        }

    }
}</pre>
<p>Burada timer2 nin pwm modülünü kullanarak periyotu ve bu peryodun ne kadarının 1 olması gerektiğini belirledik.<br />
CCPR1L her değer değişimde timer2&#8242;nin ve pwm modülünün ayarlarını tekrardan girmemiz gerektiğini 16F628A&#8217;nın<br />
datasheetinden bulmak zorunda kalmıştım. 16F877&#8242;ler için böyle bir sıkıntı yaşanmamaktadır.</p>
<p>MPLAB proje dosyasını, kaynak kodlarını ve Proteus ISIS simulasyonunu wp&#8217;deki bir sorundan dolayı koyamadım. En kısa zamanda ekleyeceğim.</p>
<div class="shr-publisher-262"></div><!-- Start Shareaholic LikeButtonSetBottom --><!-- End Shareaholic LikeButtonSetBottom --><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.cagdastopcu.com/pic-16f628a-ve-hi-tech-c-ile-servo-motor-kontrolu.html&via=cagdastopcucom&text=PIC 16f628A ve HI-TECH C ile Servo Motor Kontrolü&related=cagdastopcu.com:official twitter of cagdastopcu.com&lang=en&count=horizontal" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div>]]></content:encoded>
			<wfw:commentRss>http://www.cagdastopcu.com/pic-16f628a-ve-hi-tech-c-ile-servo-motor-kontrolu.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.628 seconds -->

