1978 yılında Bell Laboratuvarlarında Bjarne Stroustroup tarafından geliştirilmeye başlayan C++ dili C dilline nesne eklenmesi sonucu oluşturulmuştur. Başlangıçta "C with Classes" olarak adlandırılan dil, 1980'li yılların başında C++ olarak isimlendirilmiştir. C++, C diline çeki düzen veren çeşitli özellikler barındırmaktadır. Ama bunlardan en önemlisi nesneye dayalı programlama özelliğine sahip olmasıdır.



NESNEYE YÖNELİK PROGRAMLAMA NEDİR :

Nesneye Yönelik Programlamada, programlama ortamındaki her şey bir nesne olarak kabul edilmektedir, nesnelerin özellikleri değiştirilerek onlara yeni biçimler verilmektedir. Ayrıca her nesnenin duyarlı olduğu olaylar mevcuttur. Her nesne üzerinde uygulanabilecek farklı metotlar oluşturulmuştur.

  Yapısal Programlamada ağırlık programlama komutlarında iken, Nesneye Yönelik Programlamada yazılımcının ortamdaki nesneler, özellikleri, hassas oldukları olaylar ve nesnelere uygulanabilecek metotlar hakkında da detaylı bilgi sahibi olması gerekir.

 

SINIF:

Çözülmesi gereken problemin içeriğine göre yeni bir veri tipi ve bu veri tepi ile yapılacak işlemleri tanımlamamıza olanak sağlar. oluşturulan her nesnenin durum özellikleri veri üyesi, davranış özellikleri ise üye fonksiyonlarla tanımlanır. Böylece veri tipinin özellikleri ve işlevleri tek bir birimde kapsanmış veya sarmalanmış olur.



NESNE:

Nesneler sınıflar tarafından üretilirler ve bellekte yer belirtirler. Aynı sınıf içerisinde üretilen nesnelerin özellikleri benzer olduÄŸu gibi farklılıklarda gösterebilir. Sınıflarda olduÄŸu gibi nesneler için de daha ayrıntılı bilgi nesneye yönelik programlamaya giriÅŸ yaparken verilecektir. 





**İlk Program : Bir Satır Metni Yazmak


Ekran Çıktısı:



Yazdığımız kodu inceleyelim : 

  • // ile baÅŸlayan satırlar yorum satırıdır. Programınızı dökümante etmek ve diÄŸer insanların kodunuzu anlaması için yorum satırları eklersiniz. Program çalışırken bilgisayar yorum satırları ile ilgili iÅŸlem yapmaz.
  •  #include<iostream>  C++ ön iÅŸlemcisine mesaj olan bir ön iÅŸlem komuttur. # ile baÅŸlayan satırlar program derlenme'den önce ön iÅŸlemci tarafından iÅŸleme alınır. Bu satır, girdi/çıktı baÅŸlık dosyası olan <iostream> içeriÄŸinin programa dahil edilmesini ön iÅŸlemciye bildirir. 
  • std::cout<<"Welcome to C++!";  ise çift tırnak içerisindeki karakterlerin yazılması iÅŸleminin gerçekleÅŸtirilmesini bilgisayara bildirir. Çift tırnak içerisindeki karakterler ve tırnak iÅŸaretleri karakter dizini ya da  katar olarak adlandırılır. 
  • Kısaca cout : cout<<"Ekrana yazılması istenen bilgi";

Programın karmaşıklığını gidermek için ;




Ekran çıktısı:




İlk uygulamada yapılan çıktı ile aynı çıktıyı verir.


SOYUTLAMA:

Soyutlama bir sınıfa detayların tanımlanmadan yapması gereken işlemleri tanımlamaya denir. Programın karışıklığını azaltmaya yardımcı olur.

NEDEN NESNE YÖNELİMLİ PROGRAMLAMA ?

Nesneye yönelik programlamanın bize birçok avantajı vardır. En önemli avantajı ise programın karmaşıklığını azaltarak programcının işini kolaylaştırmasıdır.Oluşturulan sınıflarla bir kodun defalarca kez yazılmasına gerek kalmadığı için zamandan da tasarruf etmeyi sağlar. Kapsülleme sayesinde değişkenleri erişime kapatıp güvenliği de sağlayarak daha sonradan çıkacak hataları önler. Ayrıca fonksiyon ve operatör yüklemesi de mümkün.



KAYNAKÇA:







  



 


  BGG Dersi Vize AraÅŸtırma Ödevi


















       MikroiÅŸlemciler Laboratuvar 16 Soruluk Ödev ve İlk 3 Deneyin Raporu



Diyot, Fransızca kökenli bir teknik kelimedir. Translate deki çevirideki anlamı; akım doğrultucu olarak kullanılan iki elektrotlu lamba.

Teknik olarak Diyot ise ;

 Elektrik akımının yalnız tek bir yönde geçiÅŸine izin veren, yarı iletken malzemelerden yapılmış iki uçlu bir devre elemanıdır.




 Diyot'un anot ve katot olmak üzere iki bacağı vardır. Diyotlar üstlerinden geçen akımları anottan kotota doÄŸru geçirmektedirler. Yani tek yönde akımı iletmektedirler. Bundan dolayı diyotlar genellikle doÄŸrultucu devrelerinde kullanılır. Bazen devrenin  giriÅŸine baÄŸlanırlar; devre elemanını yüksek akımdan korumak amacı ile yerleÅŸtirilirler.  

Diyotların Yapısı:

Diyotlar p ve n tipi yarı iletken malzemenin bir araya getirilmesi ile oluÅŸurlar.  Yarı iletken malzemeler normal durumda elektrik akımını iletmez. Kullanılmakta olan yarı iletken malzemelere doping iÅŸlemi uygulanır. Bu ÅŸekilde p tipi maddelerde pozitif yüklü delikler, n tipi maddelerde ise negatif yüklü elektronlar  daha fazla sayıda bulunurlar. Bu iki yarı iletken maddeyi bir araya getirdiÄŸimizde aÅŸağıdaki gibi bir yapı oluÅŸur.

Diyotların Polarlanması:

DoÄŸru Polarlama:

Diyot'un anot ucuna güç kaynağının pozitif gerilim uygulanması ve diyot'un katot ucuna negatif gerilim uygulandığı durumdur. Yani p tipi yarı iletken malzemedeki pozitif yüklerin, n tipi malzemede bulunan negatif yüklere doÄŸru  hareket etmesidir. 

Negatif Polarlama:

Diyot'un anot ucuna güç kaynağının negatif gerilim uygulanması ve diyot'un katot ucuna pozitif gerilim uygulandığı durumdur. Yani doÄŸru polarlamadaki güç kaynağının devreye ters baÄŸlanması durumudur. Bu durumda diyot üzerinde herhangi bir yük akımı gerçekleÅŸmez. 



Ters polarlama                   DoÄŸru Polarlama




Diyotların polarlanması yukarıdaki ÅŸekildeki gibi örnek ile açıklayabiliriz. Ters polarlamada devrede bulunan lamba yanmaz. Çünkü devrede elektrik akımı yoktur. DoÄŸru polarlamada ise diyot üzerinden elektrik akımı geçmektedir. Bundan dolayı devredeki lamba yanar. 



Diyotların Karakteristik Eğrileri:

Diyot'un uçlarına uygulanan gerilim ile diyot üzerinden geçen akımla arasındaki ilişkiyi gösteren eğrilerdir. Uygulanan ters ve doğru polarlamada diyot ikisine de farklı tepkiler vermektedir.



İleri kutuplama bölgesinde diyot'un akım geçirebilmesi için Vf "eÅŸik deÄŸeri"'ni geçmesi gerekmektedir. Ters kutuplama bölgesinde diyot Vbr gerilimine kadar akım geçirmez. Bu deÄŸer aşıldığında diyot kırılma bölgesinde çalışır ve bu bölgede diyot'un üzerinden ters yönde akım geçmeye baÅŸlar. 

Silisyum diyot'un eÅŸik volt deÄŸeri = 0.7V
Germanyum diyot'un eÅŸik volt deÄŸeri = 0.3V 

Diyot'un Kullanım Alanları:

1) DoÄŸrultucu Devreleri :

a) Yarım Dalga Doğrultucu Devreleri:

Devrenin giriÅŸine uygulanan AC gerilimi DC gerilime çevirme iÅŸleminde kullanılır. Bu devrede çıkış sinyali tam düzgün deÄŸildir. 


Devrenin çıkışındaki dalgalar şekildeki gibi olur. AC gerilimde bulunan negatif yündeki dalgaları geçirmez. Sadece pozitif kısımdaki dalgaların geçişine olanak sağlar.

Daha fazla bilgi için yazımızı inceleyebilirsiniz: 


b)Tam Dalga Doğrultucu Devreleri (Köprü Diyot):

 
Bu devrede dört tane doÄŸrultma diyot kullanılır. AC yi en güzel ÅŸekilde DC'ye çevirebilen devredir. AC dalganın pozitif kısmında iki adet diyot iletimde, dalganın negatif kısmında diÄŸer iki adet diyot iletime geçer. Bu ÅŸekilde AC gerilimin hem negatif hem de pozitif dalgalarında faydalanmış oluruz.  

Yukarıdaki ÅŸekilde devrenin giriÅŸinde uygulanan AC sinyalin, köprü diyot kullanılan bir devreden geçirilmesi ile oluÅŸan çıkış sinyali  gösterilmektedir.

Daha fazla bilgi için yazımızı inceleyebilirsiniz: 

2) Diyotlar bazı devrelerde kullanılan devre elemanlarını yüksek akım ve gerilime karşı korumak içinde kullanılmaktadır.

Diyot ÇeÅŸitleri: 

1) LED
2) Zener Diyot
3) Schottky Diyot
4) Lazer Diyot
5) Foto Diyot
6) Kristal Diyot
7) Tünel Diyot
8) Varaktör Diyot
9) Mikrodalga Diyot
10) Gunn Diyot
11) IMPATT Diyot
12) Pin Diyot
13) Köprü Diyot
14) Silikon Diyot (örn. 1N4001 ve 1N4007)
15) Germanyum Diyot
16) Vidalı Diyot
17) Tekli Diyot
18) Boncuk Diyot
19) Dual Diyot





Kaynakar:














 Kara ÅŸimÅŸek veya kayan led olarak da bilinen arduino projesini gerçekleÅŸtirdik. Bu devrede toplam 9 tane led kullanılmıştır ve aynı miktarda 330 ohm direnç kullanılarak yaptık.


Devre şeması aşağıda görüldüğü gibidir.



Arduino kodu:

const int led[] ={2,3,4,5,6,7,8,9,10};

void setup() {
  // put your setup code here, to run once:
for(int i = 0; i<9; i++){
  pinMode(led[i],OUTPUT);
}
}

void loop() {
  // put your main code here, to run repeatedly:
for(int i = 0; i<9 ; i++){
  digitalWrite(led[i],HIGH);
  delay(50);
  digitalWrite(led[i],LOW);
}

for(int i = 8; i>=0; i--){
  digitalWrite(led[i],HIGH);
  delay(50);
  digitalWrite(led[i],LOW);
}
}


Devrenin çalışır haldeki videosu:


github :
https://github.com/one-engineer/kara-simsek

instagram:
https://www.instagram.com/onengineer/