<?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>Alperen Alpaydın &#8211; Robo90 &#8211; Blog</title>
	<atom:link href="https://blog.robo90.com/yazar/alperenalpaydin/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.robo90.com</link>
	<description>Arduino, 3D Yazıcı, Elektronik, Yazılım ve Teknoloji Hakkında Yüzlerce İçerik!</description>
	<lastBuildDate>Fri, 22 Sep 2023 15:45:21 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://blog.robo90.com/wp-content/uploads/2023/09/cropped-robo90-blog-favicon-robot-1-32x32.png</url>
	<title>Alperen Alpaydın &#8211; Robo90 &#8211; Blog</title>
	<link>https://blog.robo90.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>PID (Proportional Integral Derivative) Kontrol Algoritması Nedir?</title>
		<link>https://blog.robo90.com/pid-kontrol-algoritmasi-nedir/</link>
					<comments>https://blog.robo90.com/pid-kontrol-algoritmasi-nedir/#respond</comments>
		
		<dc:creator><![CDATA[Alperen Alpaydın]]></dc:creator>
		<pubDate>Fri, 22 Sep 2023 14:20:59 +0000</pubDate>
				<category><![CDATA[Teknik]]></category>
		<category><![CDATA[Algoritma]]></category>
		<category><![CDATA[PID]]></category>
		<category><![CDATA[Robot]]></category>
		<guid isPermaLink="false">https://blog.robo90.com/?p=8762</guid>

					<description><![CDATA[<p>Bu yazımızda robotikle, robotlarla ve otomasyon sistemleri ile uğraşanların sıkça duyduğu PID’yi ele alacağız. PID kelimesi “proportional integral derivative” kelimelerinin kısaltılmasından gelir. Türkçesi “oransal integral türev” anlamına gelir. Türev-İntegral geçtiği için biraz göz korkutsa da bu yazı ile ilköğretimde okuyan biri bile PID kontrolü anlayabilir. PID Nedir? Nerede ve Ne İçin Kullanılır? PID, içerisinde otomasyon [...]</p>
<p><a rel="nofollow" href="https://blog.robo90.com/pid-kontrol-algoritmasi-nedir/">PID (Proportional Integral Derivative) Kontrol Algoritması Nedir?</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Bu yazımızda robotikle, robotlarla ve otomasyon sistemleri ile uğraşanların sıkça duyduğu PID’yi ele alacağız. PID kelimesi “proportional integral derivative” kelimelerinin kısaltılmasından gelir. Türkçesi “oransal integral türev” anlamına gelir. Türev-İntegral geçtiği için biraz göz korkutsa da bu yazı ile ilköğretimde okuyan biri bile PID kontrolü anlayabilir.</p>



<h2 class="wp-block-heading">PID Nedir? Nerede ve Ne İçin Kullanılır?</h2>



<p>PID, içerisinde otomasyon içeren birçok sistemde kullanılan kontrol yöntemidir. Anlık verilerinin yanında önceki verilere göre gerçekleşen değişimleri kullanarak sistemi kontrol eder. Uçakların otopilotları, şerit takip sistemleri, akıllı ev sistemleri, uzay araçları, ısıtıcılar-soğutucular ve daha sayamadığım yüzlerce farklı işlerde kullanılır. Konuyu çizgi izleyen robot üzerinden anlatarak diğer teknolojilerde nasıl kullanılacağından da bahsedeceğim.</p>



<figure class="wp-block-gallery has-nested-images columns-3 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex"><div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img decoding="async" data-id="8763" src="https://blog.robo90.com/wp-content/uploads/2023/09/john-mcarthur-8KLLgqHMAv4-unsplash-1024x662.jpg" alt="PID uçaklarda kullanımı" class="wp-image-8763" style="width:250px" width="250" title="PID (Proportional Integral Derivative) Kontrol Algoritması Nedir? 1" srcset="https://blog.robo90.com/wp-content/uploads/2023/09/john-mcarthur-8KLLgqHMAv4-unsplash-1024x662.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/09/john-mcarthur-8KLLgqHMAv4-unsplash-300x194.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/09/john-mcarthur-8KLLgqHMAv4-unsplash-768x496.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/09/john-mcarthur-8KLLgqHMAv4-unsplash-1536x993.jpg 1536w, https://blog.robo90.com/wp-content/uploads/2023/09/john-mcarthur-8KLLgqHMAv4-unsplash-2048x1324.jpg 2048w, https://blog.robo90.com/wp-content/uploads/2023/09/john-mcarthur-8KLLgqHMAv4-unsplash-150x97.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/09/john-mcarthur-8KLLgqHMAv4-unsplash-450x291.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/09/john-mcarthur-8KLLgqHMAv4-unsplash-1200x776.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<figure class="wp-block-image size-large is-resized"><img decoding="async" data-id="8765" src="https://blog.robo90.com/wp-content/uploads/2023/09/bill-jelen-woWf_VJ7dNs-unsplash-1-1024x683.jpg" alt="PID roketlerde kullanımı" class="wp-image-8765" style="width:250px" width="250" title="PID (Proportional Integral Derivative) Kontrol Algoritması Nedir? 2" srcset="https://blog.robo90.com/wp-content/uploads/2023/09/bill-jelen-woWf_VJ7dNs-unsplash-1-1024x683.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/09/bill-jelen-woWf_VJ7dNs-unsplash-1-300x200.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/09/bill-jelen-woWf_VJ7dNs-unsplash-1-768x512.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/09/bill-jelen-woWf_VJ7dNs-unsplash-1-1536x1024.jpg 1536w, https://blog.robo90.com/wp-content/uploads/2023/09/bill-jelen-woWf_VJ7dNs-unsplash-1-2048x1365.jpg 2048w, https://blog.robo90.com/wp-content/uploads/2023/09/bill-jelen-woWf_VJ7dNs-unsplash-1-150x100.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/09/bill-jelen-woWf_VJ7dNs-unsplash-1-450x300.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/09/bill-jelen-woWf_VJ7dNs-unsplash-1-1200x800.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large is-resized"><img decoding="async" data-id="8766" src="https://blog.robo90.com/wp-content/uploads/2023/09/jp-valery-FdBfCrKnR4I-unsplash-1024x683.jpg" alt="hareket eden tesla otomobil" class="wp-image-8766" style="width:250px" width="250" title="PID (Proportional Integral Derivative) Kontrol Algoritması Nedir? 3" srcset="https://blog.robo90.com/wp-content/uploads/2023/09/jp-valery-FdBfCrKnR4I-unsplash-1024x683.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/09/jp-valery-FdBfCrKnR4I-unsplash-300x200.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/09/jp-valery-FdBfCrKnR4I-unsplash-768x512.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/09/jp-valery-FdBfCrKnR4I-unsplash-1536x1024.jpg 1536w, https://blog.robo90.com/wp-content/uploads/2023/09/jp-valery-FdBfCrKnR4I-unsplash-2048x1365.jpg 2048w, https://blog.robo90.com/wp-content/uploads/2023/09/jp-valery-FdBfCrKnR4I-unsplash-150x100.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/09/jp-valery-FdBfCrKnR4I-unsplash-450x300.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/09/jp-valery-FdBfCrKnR4I-unsplash-1200x800.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<h2 class="wp-block-heading">PID&#8217;nin Avantajları</h2>



<p>Konuya bir robotu pid ile kontrol etmenin getirdiği farktan bahsederek başlayalım. PID kelimesinin açılımındaki “oransal” kontrol, robotun çizgiye olan uzaklığına göre düzeltme manevrası ile yapılır. Birçoğumuzun ilk yaptığı çizgi izleyen robot, oransal kontrol ile çalışmış oluyor. Örneğin çizgiye uzaklığı -5 ile 5 arasında tanımlayalım. 0 değeri merkez yani çizginin üzerinde bulunduğu durum. Negatif kısım solda, pozitif kısım sağda olduğunu gösteriyor. </p>



<p>Çizgi sensörümüzün aldığı verilere göre robotun verdiği kararları aşağıdaki gibi yapabiliriz:</p>



<p class="has-text-align-center">-1 hafif sağa dön</p>



<p class="has-text-align-center">-3 sağa dön</p>



<p class="has-text-align-center">-5 sağa keskin dön</p>



<p class="has-text-align-center">1 hafif sola dön&nbsp;</p>



<p class="has-text-align-center">3 sola dön</p>



<p class="has-text-align-center">5 sola keskin dön</p>



<p>Robotumuz sadece böyle karar alarak aslında sola döndüğünde düzeltmesi için tekrar sağa dönmesi, bunu düzeltmesi için tekrar sola dönmesi şeklinde bir döngüye girer. Sürekli sağa ve sola titreme yaparak çizgiyi izler. Eğer aldığımız verileri PID algoritması ile işlersek hem bu titremenin önüne geçmiş oluruz hem de çizgiyi daha tutarlı şekilde takip etmesini sağlarız. Bir uçağın otopilotunda PID algoritma kullanmadığımız bir sistem düşünürsek uçak irtifasını korumaya çalışmak için sürekli aşağı-yukarı kumanda vererek uçuş güvenliğini düşürür. Yolcu konforundaki farkı tahmin edebiliriz.</p>



<p>Aşağıdaki ilk videoda sadece oransal kullanılmış bir çizgi izleyen robot, ikinci videoda pid algoritması kullanılmış bir robot ve bunların arasındaki farkları görüyoruz.</p>



<figure class="wp-block-video aligncenter"><video height="720" style="aspect-ratio: 1280 / 720;" width="1280" controls src="https://blog.robo90.com/wp-content/uploads/2023/09/7lc1p5.mp4"></video><figcaption class="wp-element-caption">Sadece oransal kullanılmış bir çizgi izleyen robot</figcaption></figure>



<figure class="wp-block-video aligncenter"><video height="640" style="aspect-ratio: 352 / 640;" width="352" controls src="https://blog.robo90.com/wp-content/uploads/2023/09/pid-cizgi.mp4"></video><figcaption class="wp-element-caption">PID kullanılmış robot</figcaption></figure>



<h2 class="wp-block-heading">Türev ve Integral Nedir?</h2>



<p>Şimdi türev ve integrale bakabiliriz. Türev tanım olarak bir durumda yaşanan en küçük değişimdir. Fakat tanım ile değil bir örnek ile açalım. Damlayan bir musluk ve altında bir kova hayal edelim. Musluk damladıkça kova dolacaktır. Musluğumuz her saniye başında bir damla su damlatıyor ise bu kovadaki su miktarında meydana gelebilecek en küçük değişim bir damla kadar sudur. Her saniye bir damla kadar su miktarı artıyor. Daha az bir değişim gözlemleyemiyoruz. Yarım damla veya 2 damla. En küçük değişim miktarımız yani türevimiz o zaman bir damladır. Türevi kısaca bu kadar bilmek PID kontrolü anlamak için yeterli olacaktır.</p>



<p>Şimdi kovamıza bir delik açalım. Buradan da belirli aralıklarla su boşalsın. Bir yandan kovamız damlayan musluk ile dolarken bir yanda da boşalacak. Doldurma hızımızın boşaltma hızından yüksek olduğunu kabul edelim. Bir gece bekleyince kovada bir miktar su olduğunu görürüz. Örneğin kovada 5L su bulunsun. O zaman, şimdiden musluğun damlamaya başladığı zamana kadarki integralimiz 5L sudur. Bu süreçte kovamız hem su dolmuş hem de su akıtmıştır. Bunların hepsinin eklenmesi ile integrali hesapladık. Bu örnek de PID kontrol için yeterli bir integral bilgisi oluşturmuştur.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="680" src="https://blog.robo90.com/wp-content/uploads/2023/09/jeswin-thomas-hecib2an4T4-unsplash-1024x680.jpg" alt="integral" class="wp-image-8773" title="PID (Proportional Integral Derivative) Kontrol Algoritması Nedir? 4" srcset="https://blog.robo90.com/wp-content/uploads/2023/09/jeswin-thomas-hecib2an4T4-unsplash-1024x680.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/09/jeswin-thomas-hecib2an4T4-unsplash-300x199.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/09/jeswin-thomas-hecib2an4T4-unsplash-768x510.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/09/jeswin-thomas-hecib2an4T4-unsplash-1536x1019.jpg 1536w, https://blog.robo90.com/wp-content/uploads/2023/09/jeswin-thomas-hecib2an4T4-unsplash-2048x1359.jpg 2048w, https://blog.robo90.com/wp-content/uploads/2023/09/jeswin-thomas-hecib2an4T4-unsplash-150x100.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/09/jeswin-thomas-hecib2an4T4-unsplash-450x299.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/09/jeswin-thomas-hecib2an4T4-unsplash-1200x796.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">PID ile Çizgi İzleyen Robot Uygulaması</h2>



<h3 class="wp-block-heading">Şimdi çizgi izleyen robotumuzda türevi ekleyerek PID algoritmamızı birlikte oluşturalım:</h3>



<p>Az önceki -5 ile 5 arasında değer veren sensörümüzü tekrardan alalım. Bu değere hata ismini verelim. Hatamız 5 olsun. Robotumuz “sola keskin dön” kararını alır. Sola doğru giderken bir an sonra 2 değerini aldığında türevimiz (değişim son durum-ilk durum formülü hesaplanır.) 2-5=-3 olur. Şu anda hatamız 2 ve türevimiz -3. Toplam durum 2+(-3)=-1 oldu. O zaman şimdi robotumuz “hafif sağa dön” komutunu vermeli. Böylece robot keskin solun ardından hafifçe sağa yönelerek çizgi ile paralelleşerek çizgiye yerleşir. Aşağıdaki fotoğrafta mavi grafik sadece oransal hesaplamayı, kırmızı grafik ise türev eklenmesini ifade ediyor.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="563" height="360" src="https://blog.robo90.com/wp-content/uploads/2023/09/Ekran-goruntusu-2023-09-22-001801-e1695391033297.png" alt="Türev ve integral grafigi" class="wp-image-8774" title="PID (Proportional Integral Derivative) Kontrol Algoritması Nedir? 5" srcset="https://blog.robo90.com/wp-content/uploads/2023/09/Ekran-goruntusu-2023-09-22-001801-e1695391033297.png 563w, https://blog.robo90.com/wp-content/uploads/2023/09/Ekran-goruntusu-2023-09-22-001801-e1695391033297-300x192.png 300w, https://blog.robo90.com/wp-content/uploads/2023/09/Ekran-goruntusu-2023-09-22-001801-e1695391033297-150x96.png 150w, https://blog.robo90.com/wp-content/uploads/2023/09/Ekran-goruntusu-2023-09-22-001801-e1695391033297-450x288.png 450w" sizes="(max-width: 563px) 100vw, 563px" /></figure>
</div>


<h3 class="wp-block-heading">Peki integrali eklersek ne olur?</h3>



<p>İntegral kova örneğinden hatırlarsak birikimli olarak ilerleyen bir şey. İçerisinde 10 dakika öncesi de bulunuyor. Türeve karşı negatif etki yaparak robotun daha sert dönmesine yol açar. Çünkü o süreç içerisinde kendisine sürekli ekleme yapar. </p>



<p>Örneğin robotun hatası 5 olsun. Bir sonraki durumda 3, daha sonrakinde 1 olsun. İntegral sürekli ekleme yaparak 5+3+1=9 olur. Türev ile 5 olan keskin dönüşü azaltmış iken integral daha da keskin dönüşe zorlar. Aşağıdaki grafikte olduğu gibi. Bunu engellemek için PID kontrolde katsayılar kullanılır. Örneğin integralin katsayısını 0,1 yaparsak 9 yerine 0.9 ekler. Böylece etkisi azaltılır. Aynı şey oransal ve türevi için de geçerlidir. Robotun karakteristiğine göre katsayıları belirleriz. Örneğin, türevin katsayısı 1 iken robot hala titreme yapıyorsa katsayıyı artırmamız gerekir ya da robot çizgiyi bulamıyor ise katsayıyı düşürmemiz gerekir.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="309" height="262" src="https://blog.robo90.com/wp-content/uploads/2023/09/grafik2.png" alt="PID integral grafiği" class="wp-image-8776" title="PID (Proportional Integral Derivative) Kontrol Algoritması Nedir? 6" srcset="https://blog.robo90.com/wp-content/uploads/2023/09/grafik2.png 309w, https://blog.robo90.com/wp-content/uploads/2023/09/grafik2-300x254.png 300w, https://blog.robo90.com/wp-content/uploads/2023/09/grafik2-150x127.png 150w" sizes="(max-width: 309px) 100vw, 309px" /></figure>
</div>


<p>O zaman bütün bunları birleştirerek PID kontrol için bir formül yazalım:</p>



<p>Kp: Oransal Katsayı</p>



<p>Ki: İntegralin katsayısı</p>



<p>Kd: Türevin katsayısı</p>



<p>PID = Kp*hata + Kd*Türev + Ki*İntegral</p>



<p>Türev ve integrali ise şu şekilde hesaplayabiliriz:</p>



<p>Önceki Durum: Bir önceki anda alınan hata</p>



<p>Toplam: Önceki alınan her hatanın toplamı</p>



<p>Türev = Hata &#8211; Önceki Durum</p>



<p>İntegral = Toplam + Hata</p>



<p>Şimdi Arduino üzerinde PID ile çizgi izleyen robotu kontrol eden bir program yazarak öğrendiklerimizi destekleyelim. </p>



<h2 class="wp-block-heading">Projenin Malzemeleri</h2>



<p><a href="https://www.robo90.com/arduino-nano-klon-usb-kablo-hediyeli" data-type="link" data-id="https://www.robo90.com/arduino-nano-klon-usb-kablo-hediyeli">Arduino Nano Klon &#8211; USB Kablo Hediyeli</a></p>



<p><a href="https://www.robo90.com/qtr-8a-analog-kizilotesi-sensor-karti-cizgi-izleyen" data-type="link" data-id="https://www.robo90.com/qtr-8a-analog-kizilotesi-sensor-karti-cizgi-izleyen">QTR-8A Analog Kızılötesi Sensör Kartı &#8211; Çizgi İzleyen</a></p>



<p><a href="https://www.robo90.com/6v-250-rpm-reduktorlu-motor-sari" data-type="link" data-id="https://www.robo90.com/6v-250-rpm-reduktorlu-motor-sari">6V 250 RPM Redüktörlü Motor &#8211; Sarı</a></p>



<p><a href="https://www.robo90.com/l293d-motor-surucu-entegresi-dip16" data-type="link" data-id="https://www.robo90.com/l293d-motor-surucu-entegresi-dip16">L293D Motor Sürücü Entegresi &#8211; Dip16</a></p>



<pre class="wp-block-code"><code>#include &lt;QTRSensors.h&gt;
#define motor1a A0
#define motor1b A1
#define motor1p 10

#define motor2a A2
#define motor2b A3
#define motor2p 11


QTRSensors qtr;                                        //tanimlamalar
int error, turev,guc,lasterror=0;
int integral=0;
int solll,saggg;
int hiz=100;
float kp=0.03;
float kd=0.01;                                         //pid katsayilari
float ki=0;
const uint8_t SensorCount = 8;
uint16_t sensorValues&#91;SensorCount];
void setup() {
   qtr.setTypeRC(); //Analog sensor kullanilacaksa setTypeRC yerine setTypeAnalog kullanin
  qtr.setSensorPins((const uint8_t&#91;]){9,8,7,6,5,4,3,2}, SensorCount);    //sensor tanimlama
 

  delay(500);
  pinMode(13, OUTPUT);
  digitalWrite(13, HIGH);

  pinMode(10, OUTPUT);
  pinMode(A0, OUTPUT);
  pinMode(A1, OUTPUT);
  pinMode(A2, OUTPUT);
  pinMode(A3, OUTPUT);
  pinMode(11, OUTPUT);

//kalibrasyon kodlari
  for (uint16_t i = 0; i &lt; 400; i++)
  {
    qtr.calibrate();
  }
  digitalWrite(13, LOW);

  Serial.begin(9600);
  for (uint8_t i = 0; i &lt; SensorCount; i++)
  {
    Serial.print(qtr.calibrationOn.minimum&#91;i]);
    Serial.print(' ');
  }
  Serial.println();

 
  for (uint8_t i = 0; i &lt; SensorCount; i++)
  {
    Serial.print(qtr.calibrationOn.maximum&#91;i]);
    Serial.print(' ');
  }
  Serial.println();
  Serial.println();
  delay(1000);
}
void loop(){
 digitalWrite(motor1a,HIGH);
  digitalWrite(motor2a,HIGH);

  digitalWrite(motor2b,LOW);
  digitalWrite(motor1b,LOW);

uint16_t position = qtr.readLineWhite(sensorValues);
 error=position-3500;
 integral=integral+error;
 turev=error-lasterror;
 lasterror=error;
 guc=(kp*error)+(kd*turev)+(integral*ki);
 solll=hiz+guc;
 saggg=hiz-guc;
 if(solll&lt;0) solll=0;
 if(saggg&lt;0) saggg=0;
 if(solll&gt;255)solll=255;
 if(saggg&gt;255) saggg=255;
 analogWrite(motor1p,solll);
 analogWrite(motor2p,saggg);
}

</code></pre>



<p>Proje ile örneklendirdikten sonra PID’nin diğer uygulamaları hakkında birkaç örnek verebiliriz.</p>



<h2 class="wp-block-heading">PID Uygulama Örnekleri</h2>



<p>Uçaklar uçarken pilotlar sürekli el ile kumanda vermezler. Otopilota izlenecek yol ve irtifa bilgisi girildikten sonra otopilot bu işlemi yapar. Uçaklardaki otopilotun çalışma mantığının çizgi izleyen robot ile aynıdır. Belirli rota çizgisi üzerinde uçağı tutar. Aynı şekilde irtifada da olması gereken irtifa ile hata payına göre hesaplama sonucu gerekli kumanda verilir. Böylece sürekli aşağı-yukarı şeklinde kumanda verilmez.</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://blog.robo90.com/wp-content/uploads/2023/09/shandell-venegas-pFqOn1gfSe8-unsplash-1024x768.jpg" alt="Boeing 737 kokpit" class="wp-image-8781" title="PID (Proportional Integral Derivative) Kontrol Algoritması Nedir? 7" srcset="https://blog.robo90.com/wp-content/uploads/2023/09/shandell-venegas-pFqOn1gfSe8-unsplash-1024x768.jpg 1024w, https://blog.robo90.com/wp-content/uploads/2023/09/shandell-venegas-pFqOn1gfSe8-unsplash-300x225.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/09/shandell-venegas-pFqOn1gfSe8-unsplash-768x576.jpg 768w, https://blog.robo90.com/wp-content/uploads/2023/09/shandell-venegas-pFqOn1gfSe8-unsplash-1536x1152.jpg 1536w, https://blog.robo90.com/wp-content/uploads/2023/09/shandell-venegas-pFqOn1gfSe8-unsplash-2048x1536.jpg 2048w, https://blog.robo90.com/wp-content/uploads/2023/09/shandell-venegas-pFqOn1gfSe8-unsplash-150x113.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/09/shandell-venegas-pFqOn1gfSe8-unsplash-450x338.jpg 450w, https://blog.robo90.com/wp-content/uploads/2023/09/shandell-venegas-pFqOn1gfSe8-unsplash-1200x900.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
</div>


<p>Hastanelerde ve iş yerlerinde gördüğümüz akıllı ısıtma-soğutma sistemleri de PID kontrol ile çalışmaktadır. Eğer sadece oransal kontrol kullanılsaydı ayarlanan dereceyi geçince soğutma, tekrar ısıtma yaparak hem enerji zararına hem de ısıtma soğutma sisteminin çabuk bozulmasına sebebiyet verirdi.</p>



<p>Bu yazımızda PID kontrolün ne olduğuna, türev-integral ile bağlantısına, nasıl kullanılacağına ve endüstriyel uygulamalarına baktık. Umarım faydalı olmuştur.</p>



<div class="wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-16018d1d wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://blog.robo90.com/kategori/projeler/teknik/">Teknik Kategorisindeki Diğer Yazılarımıza Göz ATabilirsiniz</a></div>
</div>
<p><a rel="nofollow" href="https://blog.robo90.com/pid-kontrol-algoritmasi-nedir/">PID (Proportional Integral Derivative) Kontrol Algoritması Nedir?</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.robo90.com/pid-kontrol-algoritmasi-nedir/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://blog.robo90.com/wp-content/uploads/2023/09/7lc1p5.mp4" length="2497080" type="video/mp4" />
<enclosure url="https://blog.robo90.com/wp-content/uploads/2023/09/pid-cizgi.mp4" length="1022845" type="video/mp4" />

			</item>
		<item>
		<title>Fırçalı ESC Tasarımı ve Yapımı</title>
		<link>https://blog.robo90.com/fircali-esc-tasarimi-yapimi/</link>
					<comments>https://blog.robo90.com/fircali-esc-tasarimi-yapimi/#respond</comments>
		
		<dc:creator><![CDATA[Alperen Alpaydın]]></dc:creator>
		<pubDate>Thu, 03 Aug 2023 19:38:11 +0000</pubDate>
				<category><![CDATA[Genel]]></category>
		<category><![CDATA[Editor's Choice]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Featured Reviews]]></category>
		<category><![CDATA[Latest in Tech]]></category>
		<category><![CDATA[Latest Posts]]></category>
		<category><![CDATA[Top Picks]]></category>
		<category><![CDATA[Trending]]></category>
		<guid isPermaLink="false">https://blog.robo90.com/?p=7848</guid>

					<description><![CDATA[<p>Bu yazımızda Fırçalı Motor ve Fırçalı ESC konusunu ele alacağız. Bu yazının sonunda RC ve robotik hobimizde kullanabileceğimiz bir fırçalı motor esc’si yapmış olacağız. Elektrik motorlarını temel olarak 2 gruba ayırırız: AC motorlar ve DC motorlar. AC motorlar alternatif akım ile çalışır ve bu yazımızın konusu değil. Bu yüzden biz DC motorlar ile ilgileneceğiz. DC [...]</p>
<p><a rel="nofollow" href="https://blog.robo90.com/fircali-esc-tasarimi-yapimi/">Fırçalı ESC Tasarımı ve Yapımı</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Bu yazımızda Fırçalı Motor ve Fırçalı ESC konusunu ele alacağız. Bu yazının sonunda RC ve robotik hobimizde kullanabileceğimiz bir fırçalı motor esc’si yapmış olacağız.</p>



<p>Elektrik motorlarını temel olarak 2 gruba ayırırız: <strong>AC motorlar</strong> ve <strong>DC motorlar</strong>. </p>



<p><strong>AC motorlar</strong> alternatif akım ile çalışır ve bu yazımızın konusu değil. Bu yüzden biz DC motorlar ile ilgileneceğiz. </p>



<p><strong>DC motorları</strong> da temel olarak 2 gruba ayırırız:</p>



<p><strong>Fırçasız DC motor</strong> ve <strong>Fırçalı DC motor</strong></p>



<h2 class="wp-block-heading">Fırçalı Motor:</h2>



<p>Üzerinden akım geçen teller bir manyetik alan yaratır. Aşağıdaki fotoğrafta manyetik alan çizgilerinin demir tozları ile bir görüntüsü görünüyor. Mıknatıslar, manyetik alan sayesinde oluşan manyetik kuvvet tarafından itilip çekilebilir.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="982" height="474" src="https://blog.robo90.com/wp-content/uploads/2023/08/uzerinden-akim-gecen-telin-manyetik-alan-gosterimi-deneyi.png" alt="Üzerinden akım geçen telin manyetik alanı" class="wp-image-7969" title="Fırçalı ESC Tasarımı ve Yapımı 9" srcset="https://blog.robo90.com/wp-content/uploads/2023/08/uzerinden-akim-gecen-telin-manyetik-alan-gosterimi-deneyi.png 982w, https://blog.robo90.com/wp-content/uploads/2023/08/uzerinden-akim-gecen-telin-manyetik-alan-gosterimi-deneyi-300x145.png 300w, https://blog.robo90.com/wp-content/uploads/2023/08/uzerinden-akim-gecen-telin-manyetik-alan-gosterimi-deneyi-768x371.png 768w, https://blog.robo90.com/wp-content/uploads/2023/08/uzerinden-akim-gecen-telin-manyetik-alan-gosterimi-deneyi-150x72.png 150w, https://blog.robo90.com/wp-content/uploads/2023/08/uzerinden-akim-gecen-telin-manyetik-alan-gosterimi-deneyi-450x217.png 450w" sizes="(max-width: 982px) 100vw, 982px" /><figcaption class="wp-element-caption">Üzerinden akım geçen telin manyetik alanı</figcaption></figure>
</div>


<p>Elektrik motorları da bu prensibi kullanarak elektrik enerjisini harekete çevirir. Şimdi etrafında mıknatıs olan bir telden akım geçirirsek dönecektir ve duracaktır. Çünkü akımın yönünü değiştirmediğimiz için oluşturduğumuz manyetik alanın yönü de değişmez. Bu yüzden döndükten sonra kutuplar değişeceğinden manyetik alanın yönünü de değiştirmek gerekir. Yani elektrik akımının yönünü değiştirmek gerekiyor. Bunu da fırça sistemi ile çözeriz. Dönen tel ile pilden gelen elektrik akımı birbirine sürtecek şekilde bağlıdır. Sisteme elektrik geldiğinde tel yarım tur döner, dönerken uçlarının da yönü değiştiği için elektrik akımının geldiği yerdeki diğer metal parçaya sürterek elektrik alır. Ardından tekrar yarım tur döner. Bu döngü sürekli gerçekleşerek fırçalı motor çalışır. Fırça sistemi aşağıdaki fotoğrafta daha net belli olmaktadır.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/08/DC-Motor-300x266.png" alt="DC motorun fırça gösterimi" title="Fırçalı ESC Tasarımı ve Yapımı 10"></figure>
</div>


<p>Fırçalı motorları doğrudan bir doğru akım kaynağı ile çalıştırabiliriz. Akımın yönünü değiştirmek için ayrıyeten bir şeye ihtiyaç duymayız. Bu sebepten dolayı kullanımları kolaydır. Fakat bu motorları düşük akım ile çalışan mikrokontrolcüler ve kumanda alıcıları ile çalıştıramayız. İhtiyaç duydukları akım, mikrokontrolcülerin dayanabileceği maksimum akım miktarını geçerse mikrokontrolcü zarar görür. Bunun önüne geçmek ve hız kontrolünü sağlamak için motor sürücüler veya ESC(elektronik hız kontrolcüsü) kullanırız.</p>



<h2 class="wp-block-heading">ESC Nasıl Çalışır? Fırçalı ESC?</h2>



<p>ESC’ler yarı iletken teknolojisini kullanarak çalışır. Yarı iletkenler, karbon, silisyum gibi elementler, normal durumda yalıtkan olup dışarıdan akım, ısı veya ışık gibi uyarı aldığında iletken hale geçen elementlerdir. Bu elementler atomik boyutta belirli şekillerde dizilerek diyot ve transistörü oluşturur. Diyot, elektrik akımını tek yönde geçiren devre elemanıdır. Transistör ise elektrik akımı ile tetikleyince iletken olan bir devre elemanıdır.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="640" height="419" src="https://blog.robo90.com/wp-content/uploads/2023/08/fircali-esc-tasarimi-yazisi-cip-gorseli.jpg" alt="Fütüristik çip görseli" class="wp-image-7968" title="Fırçalı ESC Tasarımı ve Yapımı 11" srcset="https://blog.robo90.com/wp-content/uploads/2023/08/fircali-esc-tasarimi-yazisi-cip-gorseli.jpg 640w, https://blog.robo90.com/wp-content/uploads/2023/08/fircali-esc-tasarimi-yazisi-cip-gorseli-300x196.jpg 300w, https://blog.robo90.com/wp-content/uploads/2023/08/fircali-esc-tasarimi-yazisi-cip-gorseli-150x98.jpg 150w, https://blog.robo90.com/wp-content/uploads/2023/08/fircali-esc-tasarimi-yazisi-cip-gorseli-450x295.jpg 450w" sizes="(max-width: 640px) 100vw, 640px" /></figure>
</div>


<p>Yapacağımız ESC’de mosfet kullanacağız. Mosfetler, transistörlere göre daha yüksek akım geçirebilmesinden dolayı projelerimizde ön plana çıkıyor. Projemizde kullanacağımız <a href="https://www.robo90.com/irlz44n-n-kanal-mosfet-to220" data-type="link" data-id="https://www.robo90.com/irlz44n-n-kanal-mosfet-to220">IRFZ44N mosfeti</a>nin datasheetinde 25 derece sıcaklıkta 49A’e kadar akım taşıyabileceği yazmaktadır. Bu bizim için fazlasıyla yeterli. Daha büyük projelerde seçilecek mosfetin geçireceği akım da önemli yer tutuyor.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/08/datasheet.png" alt="IRFZ44n datasheet absolute maximum ratings görseli" title="Fırçalı ESC Tasarımı ve Yapımı 12"><figcaption class="wp-element-caption">görsel: datasheet from infineon</figcaption></figure>
</div>


<p>Aşağıdaki fotoğrafta mosfetin bacak sıralaması gözükmekte.&nbsp;</p>



<p>Gate: Elektrik akımı oluşturarak mosfeti tetikleyeceğimiz bacak.</p>



<p>Drain ve Source: Kullanacağımız yüksek akımın geçtiği bacaklar. N tipi mosfetlerde drain’den source’a akarken P tipi mosfetlerde tam tersidir.</p>



<p>&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter"><img decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/08/IRFZ44N-Pin-Diagram.png" alt="Fırçalı ESC Tasarımı ve Yapımı - Robo90 - Blog 2" title="Fırçalı ESC Tasarımı ve Yapımı 13"></figure>
</div>


<p>Peki kumandadan gelen çıkışı neden doğrudan mosfete bağlayamayız? Çünkü mosfeti sürmek için analog ya da pwm sinyale ihtiyaç vardır. Fakat kumandalar ppm türünde sinyal ile haberleşir. Bu yüzden doğrudan mosfete bağlayamayız. Projemizde kumandadan gelen ppm tipinde sinyali Arduino pro mini çözümleyip pwm sinyaline çevireceğiz.</p>



<h2 class="wp-block-heading">Optokuplör</h2>



<p>Başka bir parça olan optokuplöre gelelim. Optokuplörler mikrodenetleyicileri korumak için biçilmiş kaftan. Optokuplörler, devrelerdeki farklı elektrik akımlarını birbirinden ayırmak için kullanılır. İçindeki led ile karşı taraftaki fototransistörü uyararak elektrik akımının arasına ışıkla ile koruma yapar. İki taraf da ışıkla haberleştiği için diğerinden gelecek feedback akımlarından korur. Projemizde ise optokuplör kullanmayı feedback akımlarının çok yüksek seviyelere çıkmayacağından tercih etmedik.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/08/Optocoupler.png" alt="Fırçalı ESC Tasarımı ve Yapımı - Robo90 - Blog 3" title="Fırçalı ESC Tasarımı ve Yapımı 14"></figure>
</div>


<h2 class="wp-block-heading">Batarya Eleme Devresi / Battery Eliminator Circuit ( BEC )</h2>



<p>Değinmemiz gereken bir diğer konu ise BEC. Açılımı “Battery Eliminator Circuit” olan BEC’in Türkçesi “Batarya Eleme Devresi”dir. Batarya eleme devresi denilmesinin sebebi ise bu devreler olmadan önceki zamanlardır. Bu zamanlar, ana elemanı(motor) beslemek için gereken pilin yanında bunu yönetecek mikrodenetleyiciyi beslemek için ayrı pil kullanılmasıydı. Bu devrelere bu yüzden mikrodenetleyiciyi beslemek için gereken pil gereksinimini iptal ettiği için batarya eleme devresi denmiştir. Yani BEC, projemizde motoru besleyecek pilin voltajını düşürerek mikrodenetleyiciyi beslemek için gereken voltajı sağlayacak devredir. Bu devreler rc hobide esc’lerden ayrı ya da entegre şekilde kullanılabilir. Bizim de batarya eleme devremiz esc’nin üzerinde olacaktır. </p>



<p>&nbsp;</p>


<div class="wp-block-image">
<figure class="aligncenter"><img decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/08/bec-circuit-300x300.jpg" alt="Fırçalı ESC Tasarımı ve Yapımı - Robo90 - Blog 4" title="Fırçalı ESC Tasarımı ve Yapımı 15"></figure>
</div>


<p>Projede kullanacağımız <a href="https://www.robo90.com/arduino-pro-mini-5v-16mhz-klon" data-type="link" data-id="https://www.robo90.com/arduino-pro-mini-5v-16mhz-klon">Arduino Pro Mini, 5V</a> ile çalışmaktadır. Bu yüzden batarya voltajını 5 volta düşüren regülatöre ihtiyacımız var. Regülatör olarak lm7805 kullanacağız. Lm7805, giriş voltajını ısıya çevirerek 5 volta düşürür. Bu verimlilik açısından dezavantaj olsa da kolay kullanımı ve erişilebilir olması sebebiyle projemizde yer aldı. Aşağıda 78 serisi regülatörlerin datasheetinde yer alan kullanımı gözüküyor. 0.33 ve 0.1 uF kondansatör ile destekleyerek rahatça kullanılmakta.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/08/Ekran-goruntusu-2023-08-03-222253.png" alt="Fırçalı ESC Tasarımı ve Yapımı - Robo90 - Blog 5" title="Fırçalı ESC Tasarımı ve Yapımı 16"></figure>
</div>


<p>Devre aşağıdaki gibi olacaktır. Devreyi açıklayacak olursak sağdaki üçlü konnektör alıcıya bağlı olacak şekilde getirdiği sinyal Arduino&#8217;nun dijital 6 pinine bağlıdır. Bu sinyali işleyen Arduino, pwm pini olan 11 numaralı pinden <a href="https://www.robo90.com/1k-direnc-paketi-1-4-w-10-adet" data-type="link" data-id="https://www.robo90.com/1k-direnc-paketi-1-4-w-10-adet">1 K ohmluk direnç</a> ile mosfetin gate bacağına bağlıdır. Ayrıca girişten gelen voltaj 5 volta düşürüldükten sonra hem Arduinonun 5V pinine hem de alıcının güç girişine bağlanmıştır ve devredeki tüm eksi hattı ground aracılığı ile birbirine bağlanmıştır.</p>



<p class="has-text-align-center"><img loading="lazy" decoding="async" width="593" height="330" src="https://blog.robo90.com/wp-content/uploads/2023/08/Ekran-goruntusu-2023-08-03-222440.png" alt="Fırçalı ESC Tasarımı ve Yapımı - Robo90 - Blog 6" title="Fırçalı ESC Tasarımı ve Yapımı 17"><br></p>



<pre class="wp-block-code"><code>void setup() {<br>pinMode(6,INPUT);<br>pinMode(11,OUTPUT);<br>}<br>void loop() {<br>int deger = pulseIn(6,HIGH); // ppm tipinde veriyi okuduk<br>deger = map(deger,1000,2000,0,255); //Veriyi 8 bite çevirdik<br>analogWrite(11,deger); // 11 numaralı pinden mosfete çıkış<br>delay(50);<br>}</code></pre>



<p>Devreyi uygulamak için delikli plaket üzerine kurduk. Ayrıca Arduino&#8217;nun boş kalan pwm pinlerine 3 tane servo çıkışı bırakarak projeyi ilerde yapılabilecek güncellemelere açık bıraktık. Mosfete ise bir soğutucu bağladık.</p>


<div class="wp-block-image">
<figure class="aligncenter"><img decoding="async" src="https://blog.robo90.com/wp-content/uploads/2023/08/esc-foto.png" alt="Fırçalı ESC Tasarımı ve Yapımı - Robo90 - Blog 7" title="Fırçalı ESC Tasarımı ve Yapımı 18"></figure>
</div>


<p>ESC’yi denemek için fırçalı motorlu RC uçağa bağladık:</p>



<figure class="wp-block-video aligncenter"><video height="1384" style="aspect-ratio: 720 / 1384;" width="720" controls src="https://blog.robo90.com/wp-content/uploads/2023/08/video.mp4"></video><figcaption class="wp-element-caption">Tasarlanan ESC&#8217;nin uçak üzerinde deneyiminin videosu</figcaption></figure>



<p>Kaynaklar ve fotoğraflar:</p>



<p><a href="https://brilliant.org/wiki/magnetic-field-lines/" rel="nofollow noopener" target="_blank">https://brilliant.org/wiki/magnetic-field-lines/</a></p>



<p><a href="https://physics.stackexchange.com/questions/496925/potential-drop-across-inductor-vs-potential-drop-across-rotating-coils-in-b-fi" rel="nofollow noopener" target="_blank">https://physics.stackexchange.com/questions/496925/potential-drop-across-inductor-vs-potential-drop-across-rotating-coils-in-b-fi</a></p>



<p><a href="https://components101.com/articles/what-is-optocoupler-and-how-it-works" rel="nofollow noopener" target="_blank">https://components101.com/articles/what-is-optocoupler-and-how-it-works</a></p>



<p><a href="https://www.rcpano.net/2020/04/30/how-to-make-basic-and-cheap-brushed-esc-for-rc-airplanes/" rel="nofollow noopener" target="_blank">https://www.rcpano.net/2020/04/30/how-to-make-basic-and-cheap-brushed-esc-for-rc-airplanes/</a></p>
<p><a rel="nofollow" href="https://blog.robo90.com/fircali-esc-tasarimi-yapimi/">Fırçalı ESC Tasarımı ve Yapımı</a> yazısı ilk önce <a rel="nofollow" href="https://blog.robo90.com">Robo90 - Blog</a> üzerinde ortaya çıktı.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.robo90.com/fircali-esc-tasarimi-yapimi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://blog.robo90.com/wp-content/uploads/2023/08/video.mp4" length="570111" type="video/mp4" />

			</item>
	</channel>
</rss>
