Arduino

Seri Monitör Yardımıyla Girilen Değere Göre Ledi Yakma Uygulamasını TinkerCAD Platformunda Yapma

Bu Robotik Kodlama Projesi seri monitör yardımıyla kullanıcının belirttiği 4 ledden birini yakma işlemini TinkerCAD platformunda anlatmak için hazırlandı. Burada giriş işlemini uzaktan kumandayla, bluetooth ya da wifi modülünü kullanarak projenize işlevsellik kazandırabilirsiniz. Projeyi TinkerCAD ortamında yapacağımız için interneti olan bir bilgisayara ihtiyacımız olacaktır. Şimdi uygulamayı adım adım anlatalım.

Adım 1: Öncelikle bilgisayarımızı açalım. Bilgisayarda yüklü bulunan bir tarayıcıyı açalım. TinkerCAD web sayfasına girelim.

Adım 2: Web sayfasında oturum açalım. Bunun için gmail hesabını kullanabiliriz.

Adım 3: Ekrana gelen pencerede Circuits(Devreler) sekmesine tıklayalım. Sağ tarafta Yeni devre Oluştur butonuna tıklayalım.

Adım 4: Sol üst köşede yer alan metin kutusuna projenin adını yazalım. Proje adı yapacağımız işlemi anımsatan bir cümle olmalıdır. Proje ismini kullanırken Türkçe karakter kullanmayalım. Ben proje adı olarak IstenilenLediYakma ismini kullandım.

Adım 5: Sağ tarafta yer alan araç kutusundan Arduino Uno devresini bulalım ve sahneye ekleyelim. Bir devreyi sahneye eklemenin iki yolu vardır. Devre seçiliyken ya farenin sol tuşuna basarak devreyi sahneye sürükleyip bırakırız ya da devre seçiliyken üzerinde farenin sol tuşuna iki defa arka arkaya tıklarız. Devreyi sahnede uygun bir yere koyalım.

Adım 6: Devre elemanlarının birbirleriyle ilişkilerini sağlamak ve devrenin tasarımı yapmak için sahneye BreadBoard(Deneysen devre) ekleyelim.

Adım 7: Web sayfasının pencere başlığını "title" etiketi arasına yazalım. Projeyi çalıştırıp sonucu görelim.

Adım 8: Sahneye rengi kırmızı olan bir Led ekleyelim. Ledler uçları anot(+) ve katot(-) olan 2 bacaklı devre elemanıdır. Bu elemanın kısa ucunu GNDye bağlayalım. Bu amaçla rengi siyah olan kablo kullanalım. Uzun ucunu bir dirence bağlayacağız. Bu amaçla rengi kırmızı olan bir kabloyla bağlantıyı j9 deliğine yapalım.

Adım 9: Sahneye 220ohm direnç ekleyelim. Dirençler birbirlerinden renklerin dizilişleriyle ayrılır. 220ohm(Kırmızı-Kırmızı-Kahverengi-Altın sarısı) ile gösterilir. Bu direncin bir ucunu g9, diğer ucunu e9 deliğine bağlayalım.

Adım 10: Şimdi sahneye yeşil renkte bir Led ekleyelim. Kısa bacağını siyah kabloyla 12 nolu - deliğe bağlayalım. Uzun bacağını ise yeşil renkli bir kabloyla j13 deliğine bağlayalım.

Adım 11: Sahneye 220ohm direnç ekleyelim. Bu direncin bir ucunu g13, diğer ucunu e13 deliğine bağlayalım.

Adım 12: Şimdi sahneye mavi renkte bir Led ekleyelim. Kısa bacağını siyah kabloyla 16 nolu - deliğe bağlayalım. Uzun bacağını ise mavi renkli bir kabloyla j17 deliğine bağlayalım.

Adım 13: Sahneye 220ohm direnç ekleyelim. Bu direncin bir ucunu g17, diğer ucunu e17 deliğine bağlayalım.

Adım 14: Sahneye turuncu renkte bir Led ekleyelim. Kısa bacağını siyah kabloyla 20 nolu - deliğe bağlayalım. Uzun bacağını ise turuncu renkli bir kabloyla j21 deliğine bağlayalım.

Adım 15: Sahneye 220ohm direnç ekleyelim. Bu direncin bir ucunu g21, diğer ucunu e21 deliğine bağlayalım.

Adım 16: Şimdi siyah kabloyla bağlı tüm bacakların olduğu - ucu Arduino devresinde GND ye bağlayalım. Bunun için siyah kabloyla 1 nolu - slotunu Arduino da yer alan GND slotuna bağlayalım.

Adım 17: Sıra geldi ledlerin + uçlarını Arduino da yer alan dijital uçlara bağlamaya. Kırmızı ledi 8 nolu dijital pine bağlayalım. Bunun içim kırmızı kabloyla d9 pininden 8 nolu dijital pine bağlantı kuralım.

Adım 18: Yeşil ledi 9 nolu dijital pine bağlayalım. Bunun için yeşil kabloyla c13 pininden 9 nolu dijital pine bağlantı kuralım.

Adım 19: Mavi ledi 10 nolu dijital pine bağlayalım. Bunun için mavi kabloyla b17 pininden 10 nolu dijital pine bağlantı kuralım.

Adım 20: Turuncu ledi 11 nolu dijital pine bağlayalım. Bunun için turuncu kabloyla a21 pininden 11 nolu dijital pine bağlantı kuralım.

Adım 21: Devremize ait bağlantı işlemlerini gerçekleştirmiş olduk. Devre şeması aşağıdaki gibi olacaktır.

Sıra geldi kodlama işlemini yapmaya. TinkerCAD platformunda iki türlü kodlama biçimi vardır. Blok ve metin tabanlı kodlamayı gerçekleştirebiliriz. Biz burada metin tabanlı kodlamayı kullanacağız. Metin tabanlı kodlamada c++ dili kullanılmaktadır. Kod sekmesine tıklayalım. Buradan Metin seçeneğini seçelim. Ekrana gelen uyarı penceresini Devam Et diyerek kapatalım. Metin tabanlı kodlamada setup() ve loop() isminde iki adet metod kullanılmaktadır. Setup() metodu başlangıçta çalışan bir metoddur. Loop() metodu ise devreye elektrik geldiği müddetçe sürekli çalışan meteddur.

Adım 22: Öncelilkle Ledlerin Arduinonun hangi dijital pinlerine çıkış için bağlandığını tespit edelim. Bunun için pinMode komutundan yararlanılacaktır. Bu kodları setup() fonksiyonunun içine yazacağız.

void setup()
{
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
}

Adım 23: Şimdi de seri monitör ile Arduino arasında iletişim sağlanması gerekir. Değişik hızlarda erişim yöntemi olmasına rağmen genellikle 9600 değeri kullanılır. İşlemi başlatmak için Serial.begin komutundan yararlanılacaktır. Bu kodu setup() metodunun içine yazacağız.

void setup()
{
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  Serial.begin(9600);
}

Adım 24: Seri monitörden bilgi gelip gelmediğini kontrol etmemiz gerekir. Girilen değerin bir değişken yardımıyla saklanması gerekir. Bu amaçla girilen_deger isminde char tipinde bir değişken tanımlamalıyız. Bu kod loop() metodu içine yazılacaktır.

void loop()
{
  char girilen_deger;
}

Adım 25: Seri porttan girdi olup olmadığını kontrol etmemiz gerekir. Bunun için Serial.available() komutunu kullanabiliriz. Bu komutu bir if deyimi içinde kullanmalıyız.

void loop()
{
  char girilen_deger;
  
  if(Serial.available()){
    
  }
}

Adım 26: Eğer değer girişi olmuşsa bu değerin seri porttan okunup tanımladığımız değişkene aktarılması gerekir. Bunun için Serial.read() komutunu kullanabiliriz.

void loop()
{
  char girilen_deger;
  
  if(Serial.available()){
    girilen_deger = Serial.read();
  }
}

Adım 27: Elimizde 4 tane led var. Eğer seri porttan 1 değeri gelirse kırmızı renkli ledi yakalım. Bunun için digitalWrite() komutunu kullanabilirsiniz.

void loop()
{
  char girilen_deger;
  
  if(Serial.available()){
    girilen_deger = Serial.read();
    
    if(girilen_deger == '1'){
      digitalWrite(8,HIGH);
    }
  }
}

Adım 28: Eğer seri porttan 2 değeri gelirse yeşil renkli ledi yakalım. Bunun için digitalWrite() komutunu kullanabilirsiniz.

void loop()
{
  char girilen_deger;
  
  if(Serial.available()){
    girilen_deger = Serial.read();
    
    if(girilen_deger == '1'){
      digitalWrite(8,HIGH);
    }
 
    if(girilen_deger == '2'){
      digitalWrite(9,HIGH);
    }
 
  }
}

Adım 29: Eğer seri porttan 3 değeri gelirse mavi renkli ledi yakalım. Bunun için digitalWrite() komutunu kullanabilirsiniz.

void loop()
{
  char girilen_deger;
  
  if(Serial.available()){
    girilen_deger = Serial.read();
    
    if(girilen_deger == '1'){
      digitalWrite(8,HIGH);
    }
 
    if(girilen_deger == '2'){
      digitalWrite(9,HIGH);
    }
 
    if(girilen_deger == '3'){
      digitalWrite(10,HIGH);
    }
  }
}

Adım 30: Eğer seri porttan 4 değeri gelirse turuncu renkli ledi yakalım. Bunun için digitalWrite() komutunu kullanabilirsiniz.

void loop()
{
  char girilen_deger;
  
  if(Serial.available()){
    girilen_deger = Serial.read();
    
    if(girilen_deger == '1'){
      digitalWrite(8,HIGH);
    }
 
    if(girilen_deger == '2'){
      digitalWrite(9,HIGH);
    }
 
    if(girilen_deger == '3'){
      digitalWrite(10,HIGH);
    }
 
    if(girilen_deger == '4'){
      digitalWrite(11,HIGH);
    }
    
  }
}

Kodlarımızı çalıştıralım. Seri porttan 1 girdiğimizde kırmızı led, 2 girdiğimizde yeşil led yanıyor. Ancak kırmızı led yanmaya devam ediyor. Bir led yandığında diğer ledlerin sönmesini sağlayalım. Sıfıra basılınca tüm ledlerin sönmesini, beşe basınca da tüm ledlerin yanmasını sağlayalım. Bunların kod yazımı işlemlerini size bırakıyorum.


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

Yorum Ekle
   
Kötü
İyi