yazılım etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
yazılım etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

     Projelerle arduino ve proteus serisine başlamaya karar verdim. Çünkü, bu şekilde hem proteus hem de arduino beraber kolaylıkla öğrenilebilecektir. 

    Hadi ilk bölüme başlayalım

Proteus da Arduino ile Led Yakma


    Öncelikle proteus'a arduino kütüphanesinin eklenmiş olmalıdır. Ben arduino kütüphanesinin ekli olduğunu varsayarak devam edeceğim.

    Proteus da devremizi kurmak ile başlayalım. 

    Arduino uno, bir direnç ve bir led'e ihtiyacımız vardır. Gerekli olan kompanentleri eklediğimizde devremiz aşağıdaki gibi olacaktır.


    Arduinonun 9 numaralı pinine direncimizi bağlayacağız. Ve hemen ardına ledimizi bağlayacağız. Devrenin tamamlanması için ground bağlantısını da yapmamız gerekmektedir.


Arduino kodumuz ise:

int led = 9;

void setup() {

  pinMode(led,OUTPUT);

}


void loop() {

  digitalWrite(led,HIGH);

  delay(1000);

  digitalWrite(led,LOW);

  delay(1000);

}

    Bu kodda int led = 9; ile adı led olan bir değişken tanımlanmaktadır ve değeri de 9 olarak atanmıştır. Bu bizim arduino da ledmizi bağladığımızı pini temsil etmektedir. 

pinMode(led,OUTPUT); ile 9 numaralı olan pinimizi OUTPUT olarak yani çıkış olarak tanımlamış olduk.

digitalWrite(led,HIGH); ile 9 numaralı pine 5 V verdik yani 9 numaralı pinin çıkışını lojik 1 yaptık.

delay(1000); ile 1 saniye bekledik.

digitalWrite(led,LOW); ile 9 numaralı pinin çıkışını lojik 0 yaptık yani 9 numaralı pine 0 V verdik.


    Bu şekilde 9 numaralı pine bağlı olan led 1 saniye yandıktan sonra 1 saniye de sönecektir.


    Yazdığımız bu kodu arduino ya yüklemek için, kodun .hex uzantılı dosyasına ihtiyacımız vardır. Bu dosyayı elde edebilmek için ise; arduino da Dosya > Tercihler bölümüne gelmemiz gerekmektedir. Burada; aşağıdaki işlem sırasında detaylı çıktı göster kısmındaki derleme ve yükle'nin seçili olması gerekmektedir.


    Bu işlemi yaptıktan sonra yazığımız kodu derleyelim. Derleme işlemini yaptıktan sonra teminalde .hex uzantılı dosya konumunu bulmamız gerekecektir. Bu dosya konumunu kopyalamamız lazım. Aşağıda gösterildiği gibidir.


    Kopyaladığımız bu .hex uzantılı olan dosya konumunu aşağıda işaretli olan alana yapıştıracağız.


    Bu işlemlerden sonra arduinoya kodumuz yüklenmiş olacaktır. Simülasyonu başlattığımızda doğru bir şekilde çalışacaktır.






 

Recursive Örnekler

1) Klavyeden girilen sayının faktöriyeli:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace dort_islemm
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Sayi giriniz: ");
            int sayi = Convert.ToInt32(Console.ReadLine());
            islem(sayi);
            Console.WriteLine("{0}! = {1}", sayi,islem(sayi));

            Console.ReadLine();
        }

        public static int islem(int sayi)
        {
            if (sayi <= 0) return 1;
            else return sayi * (islem(sayi - 1));
        }
        
    }
}

2)  0 dan girilen sayıya kadar toplayan program: 


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace toplama
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Sayi giriniz: ");
            int sayi = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Toplam = " + topla(sayi));

            Console.ReadLine();

        }
        public static int topla(int sayi)
        {
            if (sayi==0) { return  0; }
            else
            return sayi + topla(sayi - 1);
        }
        
    }
}

3) Girilen adım numarasındaki fibonacci değerini bulma:



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace fibonacci
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Adim sayisini giriniz: ");
            int adim = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine(fibonacci(adim));
            Console.ReadLine(); 
        }

        public static int fibonacci (int adim)
        {
            if(adim<=2)
            {
                return 1;
            }
            else
            {
                return fibonacci(adim - 1) + fibonacci(adim - 2);
            }
        }
    }
}
 4)0 dan girilen sayıya kadar yazma:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ekrana__sayi
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("sayi giriniz: ");
            int sayi = Convert.ToInt32(Console.ReadLine());
            yaz(sayi);
            Console.ReadLine();
        }

        static void yaz(int sayi)
        {
            if (sayi == 0) return;
            else
            {
                Console.WriteLine(sayi);
                yaz(sayi - 1);
            }
        }
    }
}

5) Bir dizinin minimum değerdeki elemanı:


    using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace dizinin_en_büyük_elemanı
{
    class Program
    {
        public static int findMinRec(int[] A, int n)
        {
            // if size = 0 means whole array  
            // has been traversed  
            if (n == 1)
                return A[0];

            return Math.Min(A[n - 1], findMinRec(A, n - 1));
        }

        static void Main(string[] args)
        {
            int[] A = { 1, 4, 45, 6, -50, 10, 2 };
            int n = A.Length;

            // Function calling  
            Console.WriteLine(findMinRec(A, n));
            Console.ReadLine();
        }
    }
}