Arduino Programlama Yapısı ve Arduino ya giriş

Arduino ile programlama ile yazı dizimizde sizlere elimden geldiğinde programlama yapısından başlayıp yapıları sırası ile tanıtacağız.

Temel bir Arduino program döngüsü, setup () ve loop () adında iki işlevden oluşur.

Arduino IDE’yi açın ve iki işlevi görmek için Dosya → Örnekler → 01.Basics → BareMinimum öğesini seçin. Bu iki işlev artık varsayılan olarak yeni bir Arduino IDE penceresinde göründüğünden, IDE’nin yeni versiyonunda BareMinimum örnek taslağını açmak gerekli değildir.

Function Nedir?

Function daha sonra daha ayrıntılı olarak ele alınacaktır, şimdilik sadece işlevler hakkında aşağıdakileri bilmeniz gerekecektir:

Tüm fonksiyonlar benzersiz bir isme sahip olmalıdır, setup benzersiz bir fonksiyon isminin bir örneğidir (setup ve loop Arduino programlamada özel fonksiyonlardır ve temel yapısının bir parçasını oluşturur).
     İşlev adını, bir şey içerebilen veya içermeyen parantez () açıp kapatarak takip eder.
     Tüm fonksiyonlar bir dönüş tipine sahip olmalıdır. Hem setup hem de loop geçersiz bir dönüş tipine sahiptir.
     Bir fonksiyonun gövdesi bir açılış ve kapanış ayracı ({ve}) oluşur.

Yeni bir programlama dilini öğrenmeye başladığında “merhaba dünya” programı yazmak bir programlama geleneğidir. Bunun İçin bizde bu geleneği yerine getirelim

“Merhaba dünya” programı sadece “Merhaba, dünya!” yazısını ekrana yazdırmaktır. Bu programın amacı, programlama ortamınızın doğru şekilde kurulduğunu ve çalıştığını doğrulamaktır. “Merhaba dünya” programınız çalışıyorsa, yeni programlama dilini öğrenmeye başlayabilirsiniz.

Arduino’nun “merhaba dünya” metnini yazacak bir ekranı yok, ama USB portunu kullanabiliriz ve Serial Monitör kısmına bakınız.

void setup() {
  Serial.begin(9600);
  Serial.println("Hello, world!");
}

void loop() {
}


Dosya → Farklı Kaydet … Arduino IDE menüsünden ve sonra dosyayı hello_world olarak yeniden adlandırın.

Arduino’nuzu bir USB kablosu kullanarak PC’nize takın. Programı Arduino’ya yüklemek için Yükle düğmesine tıklayın.

Şimdi uygulamamızı denemek ve metin mesajını yazdırmak için Arduino IDE Seri Monitör Penceresini açın.

Ekranda Hello World yazını görüyorsanız uygulamanız çalışmaktadır.


Hata bulma
Programlama Hataları

IDE penceresine yanlış yazılan kod satırlarında bir hata derleme hatasına neden olacaktır, bu nedenle yukarıdaki kodda gösterildiği gibi her şeyi yazdığınızdan emin olun. Doğrulama düğmesi (onay simgesi) veya Yükle düğmesi (yatay ok simgesi) tıklandığında program derlenir.

Arduino’ya yüklerken sorun yaşıyorsanız, Araçlar → Kart altında doğru Arduino kartının seçildiğinden ve Araçlar → Seri Bağlantı Noktası altında doğru seri bağlantı noktasının seçildiğinden emin olun.
Baud Hızı Ayar Hatası

Uygulama başarılı bir şekilde yüklendiyse, seri izleme penceresinde metnin gösterilmesini engelleyen tek sorun, seri monitör penceresinin sağ alt tarafındaki baud hızının “Running the hello_world” de gösterildiği gibi 9600 olarak ayarlanmamasıdır.


Setup () işlevi

Setup () işlevindeki ifadeler, taslağın her çalıştırıldığında yalnızca bir kez çalıştırılır. Program daha sonra loop () işlevindeki ifadeleri çalıştırmaya başlar.

Arduino’ya programlandıktan sonra çalışacaktır. Seri monitör penceresini açmak Arduino’yu sıfırlayacak ve taslağı tekrar çalıştırmaya başlayacaktır.

Ayrıca Arduino üzerindeki sıfırlama düğmesine basılarak veya bağlantıyı keserek ve ardından Arduino’ya giden güce yeniden bağlanarak yeniden çalışabilir.

Loop () işlevi

Loop () işlevindeki ifadeler, sürekli olarak yukarıdan aşağıya ve sonra da en üste doğru çalışır.

Loop () işlevi iki deyim içeriyorsa, ilk ifade çalıştırılacak, ardından ikinci deyim, daha sonra ilk ifade tekrarlanacak ve böylece bir döngüde olacaktır.

Merhaba dünya örneğimizde loop () işlevinde hiçbir ifade bulunmadığından, program yürütme döngüde sona erecek ve hiçbir şey yapmadan takılıp kalmaya başlayacaktır.

Boş olsa bile,  loop () işlevine sahip olmak önemlidir, çünkü onsuz, Arduino kartındaki mikro denetleyici, setup () işlevindeki ifadeler sonraki bellekte buldukları her şeyi yürütmeye çalışacaktır. Mikrodenetleyici, bir komut olarak bellekte bulduğu her şeyi yürütmeye çalışacaktır, ancak Loop() işlevi, program yürütmeyi döngüde tutarak bunu yapmasını engeller.

Dersimizin bu bölümü bitmiştir. Diğer bölümde Loop işlevini daha detaylı örnekler ile göreceğiz.

Read More

Arduino ile L298N motor sürücü kullanma

L298N motor sürücü kartı ne işe yarar?

L298N motor sürücü kartı ile arduino kullanarak motor kontrolü gerçekleştirebilirsiniz. Motor sürücü kartına bağlayacağınız 2 motoru ileri veya geri tam güçte ya da istediğiniz hızda sürebilirsiniz. Motor sürücü kartları DC motor kullanılacak projelerde işinize oldukça yarayacak ve kullanımı ve kodlaması oldukça basit bir karttır.

298N motor sürücü kartının arduino bağlantı şemasına geçmeden önce kartın harici bir güç kaynağına ihtiyacı olduğunu bilmeliyiz. Bunun için 9V pil kullanabilirsiniz.

Pilin + kutbunu motor sürücünün +12V , – kutbunu ise GND girişine bağlanmalıdır. Ayrıca motor sürücünün çalışabilmesi için motor sürücünün GND girişinden bir ek kablo ile arduino GND pinine bağlantı yapılmalıdır.

Arduino ile L298N motor sürücü kullanma 1

L298n motor sürücü kartı arduino bağlantı devre şeması

L298N motor sürücü kartı arduino bağlantı şeması görseldeki gibi yapılmalıdır. Burada Sürücü kart üzerindeki IN1 ve IN2 soldaki motoru, IN3 ve IN4 ise sağdaki motoru kontrol etmek için kullanılmaktadır. Arduinoda sırasıyla 8,9,10 ve 11 numaralı pinlere bağlantı yapabilirsiniz. Motorları tam güçte sürmek için ENA ve ENB pinlerine bağlı kelepçeler çıkarılmamalıdır.

L298N motor sürücü arduino kodları

//Kodmek.com
const int in1 = 8;     // Motor sürücümüze bağladığımız pinleri tanımlıyoruz
const int in2 = 9;     
const int in3 =  10;
const int in4 =  11;

void setup() 

{
pinMode(in1, OUTPUT);  //Tüm pinlerden güç çıkışı olacağı için OUTPUT olarak ayarladık.
pinMode(in2, OUTPUT);  
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);

}

void loop() 

{
// motor 1
digitalWrite(in1, HIGH);
digitalWrite(in2,  LOW);  
// motor 2
digitalWrite(in3, HIGH);
digitalWrite(in4,  LOW);
}

L298N motor sürücü motor hız kontrolü arduino kodları

//Kodmek.com
const int in1 = 8;     // Motor sürücümüze bağladığımız pinleri tanımlıyoruz
const int in2 = 9;     
const int in3 =  10;
const int in4 =  11;

const int enA = 5;  //Enable pinlerini arduino 5,6 pwm pinlerine bağladık.
const int enB = 6;

void setup() 

{
pinMode(in1, OUTPUT); 
pinMode(in2, OUTPUT);  
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);

pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
}

void loop() 

{
 // motor 1
analogWrite(enA,  255);   //1. motor 255 ile tam hızda dönüyor...
digitalWrite(in1, LOW);
digitalWrite(in2,  HIGH);  

 // motor 2
analogWrite(enB,  40);  //2. motor 40 ile yavaş dönüyor...
digitalWrite(in3, HIGH);
digitalWrite(in4,  LOW);
}

 

Read More