Arduino

Eğitsel Robotun Programlanması

pinMode komutu mikrodenetleyici kartın dijital portlarının giriş veya çıkış olarak kullanılmasına karar verir. Mikrodenetleyici ile motorları kontrol etmek için 4 adet port kullanılır. Bunlardan ikisi sağ motor, diğer ikisi sol motor için kullanılır.
Programı eğitsel robota uygun hâle getirirken kullanılacak 2. komut void loop() fonksiyonu içindeki digitalWrite(LED_BUILTIN, HIGH); komutudur. Bu komut aynı zamanda motorlara enerji vermeyi sağlar. Bu komut içindeki LED_BUILTIN yerine uygun mikrodenetleyici kartı port numarası yazılır. Ayrıca HIGH yerine 1, LOW yerine 0 yazılabilir. Motorları ileri veya geri hareket ettirirken yukarıdaki tabloda yer alan durumlardan yararlanılabilir. Motorları ileri yönde hareket  ettirmek için mikrodenetleyici kart üzerindeki D5 ve D9 numaralı portların “1”, D6 ve D10 numaralı portların “0” yapılması gerekir.
Aşağıda verilen program yazılıp mikrodenetleyici karta yüklendiğinde motorlar ileri yönde dönecektir. Eğer motorlardan herhangi biri veya her ikisi birden geri yönde dönüyorsa bu durum iki şekilde düzeltilebilir. Birinci yöntem ters dönen motorun ilgili mikrodenetleyici kartının kontrol kablosunun yerlerini  eğiştirmektir.
İkinci yöntem ise ters dönen motorun motor sürücüsü üzerine takılı motor kablolarının yerini değiştirmektir. Örneğin sağ motor ters dönüyorsa sağ motor için mikrodenetleyici karttan motor sürücüye giden kontrol kablosu D5 ve D6’nın yerlerini değiştirmek yeterli olur.
void setup() {
pinMode(5, OUTPUT);// sağ motor ileri pini
pinMode(6, OUTPUT);// sağ motor geri pini
pinMode(9, OUTPUT);// sol motor ileri pini
pinMode(10, OUTPUT);//sol motor geri pini
}
void loop() {
digitalWrite(5,1); // sağ ileri = 1
digitalWrite(6,0); // sağ geri = 0
digitalWrite(9,1); // sol ileri = 1
digitalWrite(10,0); //sol geri = 0
}
Eğitsel robotun hareketleri iki motorun hareketine bağlıdır. Tabloda görüldüğü gibi mikrodenetleyicinin D5, D6, D9 ve D10 numaralı portlarına gönderilen 0 veya 1 bilgisine göre motorlar hareket etmektedir. Motorların hareketleri de eğitsel robotun hangi doğrultuda hareket etmesi gerektiğini belirlemektedir. Eğitsel
robottaki uygulamalarda Tablo 3.4’teki robotun hareket durumlarında kırmızı ile gösterilenler kullanılacaktır. Mavi ile gösterilenler ise çizgi izleyen robot uygulamalarında kullanılacaktır. Motorların hareketine göre robotun hareketleri şu şekilde sağlanır.
Eğitsel robotun ileri, geri, sağa, sola hareket komutlarını içeren fonksiyonları kullanan örnek bir program yazmak gerekirse aşağıdaki işlemler gerçekleştirilmelidir.
Eğitsel robot 2 saniye ileri, 1 saniye geri, 2 saniye sağa, 1 saniye sola gitsin ve 2 saniye dursun sonra da program başa dönsün.
Programın belirli saniye aralıklarıyla ileri, geri, sağa, sola hareketini içeren fonksiyonlar “void loop()” fonksiyonu içinde çağrılır. Eğitsel robotun ileri, geri, sağa, sola hareket komutlarını içeren fonksiyon tanımlamaları da “void loop()” fonksiyonu dışında yapılır.
Robotu ileri, geri, sağa ve sola belirli sürelerde hareket ettiren program kodları şunlardır:
void setup() {
pinMode(5, OUTPUT);// sağ motor ileri pini
pinMode(6, OUTPUT);// sağ motor geri pini
pinMode(9, OUTPUT);// sol motor ileri pini
pinMode(10, OUTPUT);//sol motor geri pini
}
void loop() {
ileri(); //ileri fonksiyonunun kullanımı
delay(2000);
geri(); //geri fonksiyonunun kullanımı
delay(1000);
sag(); //sağa dönme fonksiyonunun kullanımı
delay(2000);
sol(); //sola dönme fonksiyonunun kullanımı
delay(1000);
dur(); //durma fonksiyonunun kullanımı
delay(2000);
}
void ileri(){
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(9,1);
digitalWrite(10,0);
}
void geri(){
digitalWrite(5,0);
digitalWrite(6,1);
digitalWrite(9,0);
digitalWrite(10,1);
}
void sol(){
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(9,0);
digitalWrite(10,1);
}
void sag(){
digitalWrite(5,0);
digitalWrite(6,1);
digitalWrite(9,1);
digitalWrite(10,0);
}
void dur(){
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(9,0);
digitalWrite(10,0);
}

 


İlgili Makaleler
Eğitsel Robotun Devre Şeması
LDR İle Ölçülen Işık Şiddetinin LCD Ekranda Gösterilmesi
Robotik Kodlama Çalışma Soruları
Eğitsel Robotun Montajı
Mesafe Sensöründe Okunan Değerlerin LCD Ekranda Gösterilmesi
7 Segment Display’in Uzaktan Kumanda ile Kullanımı
LCD Ekranda Yazılan Yazının Sağa veya Sola Kaydırılması
Potansiyometre ile LED Lambalarının Yanıp Sönme Hızının Ayarlanması
Sıcaklık Sensörü ile Okunan Değerlerin LCD Ekranda Gösterilmesi
Seri Port Ekranında Merhaba Dünya Mesajını Yazdıran Arduino Uno Uygulaması
Eğitsel Robotun Programlanması
Mikrodenetleyici Kart İle Birlikte Kullanılan 7 Segment Display Elemanı ve Özellikleri
Robot Tabanlı Proje Geliştirmede Eğitsel Robot Bileşenleri
TinkerCAD Platformunu Kullanarak Merhaba Dünya Mesajını LCD Ekranda Görüntüleyen Arduino Uygulaması
Rakamları 7 Segment Display Elemanıyla Görüntüleyen Uygulama
Arduino Uno Kart Kullanarak Anahtar İle Kontrol Edilen Dijital Giriş Uygulamasını TinkerCAD Platformunda Yapma
RGB LED ile Uzaktan Kumandanın Kullanımı
Arduino Kart İle Led Yakma Uygulamasını TinkerCAD Platformunda Yapma
Arduino Uno Kart ile Trafik Lambası Kontrolü
Arduino Kart İle Rastgele Belirlenen Süre Kadar Led Yakma Uygulamasını TinkerCAD Platformunda Yapma

Yorum Ekle
   
Kötü
İyi