31 Aralık 2019 Salı

Karnaugh (Karno) Haritaları Sadeleştirme Örnekleri

Sorular :

Aşağıda verilen karnaugh haritalarında  doğru gruplandırmayı yapıp çıkış ifadelerini bulunuz.






Çözümler: 


karnaugh maps
karnaugh maps examples

karnaugh maps examples


karnaugh haritaları örnekleri


Karnaugh Haritalarında Numaralandırma

Lojik devre tasarımını tam anlamıyla yapabilmek için öncelikle karnaugh haritalarında doğru gruplamanın yapılması gerekmektedir.

Aşağıdaki şekilde giriş sayısına göre kaç kutulu karno oluşturulduğu görülmektedir.





Aşağıdaki giriş sayısına göre oluşturulan kutucukların nasıl numaralandırıldığı görülmektedir. Karnaugh haritalarında doğru gruplandırma yapmak için numaralandırmanın doğru yapılması gerekmektedir.








Kaynak:

https://en.wikichip.org/wiki/karnaugh_map

18 Aralık 2019 Çarşamba

Arduino İle LDR li Karanlıkta Işık Veren Devre

Bu uygulamada Arduino mikrodenetleyicisi kullanarak LDR nin üzerine düşen ışık miktarına göre ortamı aydınlatan devre yapılmıştır.

Bu devrenin çalışması şu şekildedir: LDR  üzerinde ışık varken led diyot ışık vermeyecek , LDR üzerindeki ışık miktarı azalınca Led diyot yanacaktır.

Devrede kullanılan malzemeler şunlardır:
  • 1 adet  Arduino UNO
  • Breadboard
  • 1 adet LED
  • 1 adet 220 ohm Direnç 
  • 1 adet 1K ohm Direnç
  • 1 adet LDR 
  • İstediğiniz Renk Ve Boyutta Atlama Kablosu


    Devrede nin  şeması aşağıdaki gibidir :

    arduino uygulamaları



    Program kodları aşağıdaki gibidir: 


    #define led 3          //3.Pinde LED olduğunu tanımlıyoruz

    void setup() {

        pinMode(led,OUTPUT);    //LED'in çıkış elemanı olduğunu belirtiyoruz
        Serial.begin(9600);          //9600 Baundluk bir seri haberleşme başlatıyoruz

    }

    void loop() {

      int isik = analogRead(A0);      //Işık değişkenini A0 pinindeki LDR ile okuyoruz
      Serial.println(isik);                 //Okunan değeri seri iletişim ekranına yansıtıyoruz
      delay(100);                             //0.1 saniye gecikme oluşturuyoruz

      if(isik > 900)                          //Okunan ışık değeri 900'den büyük ise
      {                        
        digitalWrite(led,LOW);        //LED ışık vermesin
      }

      if(isik < 850)                          //Okunan ışık değeri 850'den küçük ise
      {
        digitalWrite(led,HIGH);        //Led ışık versin 
      }

    }


    LDR Nedir ? Ne İşe Yarar? 

    LDR ‘Light Dependent Resistor’ tamlamasının kısaltmasından gelmektedir ve anlamı ışığa bağımlı dirençtir. LDR ayrıca foto direnç olarak da adlandırılır.Bu Ortamdan aldığı fiziksel değişimden faydalanarak çıkışında da bir değişiklik gösterebildiği için sensör görevi gördüğünü söyleyebiliriz. 

    LDR nin üzerindeki ışık arttıkça direnci azalır. LDR üzerindeki ışık miktarı azaldıkça LDR nin direnci artar. Kısacası LDR direnci üzerine düşen ışık miktarına göre değişiklik gösterir. 

    Aşağıdaki resimde LDR nin çalışma grafiği ve şekli gösterilmiştir. 

    LDR nedir ve LDR ne işe yarar




    11 Aralık 2019 Çarşamba

    Potansiyometre İle Led Parlaklığı Ayarlama

    Bu uygulamada potansiyometre ile ledin parlaklığının ayarlanması sağlanmıştır.  Bu uygulamada , Arduino da analog giriş çıkış pini kullanılmıştır.

    Bu uygulamada amaç, potansiyometreden gelen analog sinyali ölçerek sinyalin büyüklüğü oranında ledin parlaklığını ayarlamaktır.

    Devrede kullanılan malzemeler şunlardır:
    • 1 adet  Arduino UNO
    • Breadboard
    • 1 adet LED
    • 1 adet 220 ohm Direnç 
    • 1 adet 10K Potansiyometre
    • İstediğiniz Renk Ve Boyutta Atlama Kablosu
    Devre şeması aşağıdaki gibidir: 

    pot ile led kontrol



    Program kodları aşağıdaki gibidir: 

    int ledPin=5;              // dijital 5 pinine ledPin ismi verildi
    int potPin=A0;            // AO pinine potPin ismi verildi
    int potDegeri;            // potDegeri değişkeni tanımlandı

    void setup(){

    }

    void loop(){
      potDegeri=analogRead(potPin);
      potDegeri=map(potDegeri, 0, 1023, 0, 255);
      analogWrite(ledPin, potDegeri);
      delay(10);
    }



    Program kodlarındaki bazı önemli satırların çalışma mantığı aşağıda gösterilmiştir:

    potDegeri=analogRead(potPin);    analogRead() fonksiyonu ile potansiyometrePin adlı pinden değer okunuyor ve potansiyometreDegeri adlı değişkene kaydediliyor.Okunan bu değer 0-1023 arasında bir değerdir.


    potDegeri=map(potDegeri, 0, 1023, 0, 255);  potDegeri 0-1023 arasında bir sayıdır.  Led’e sinyal göndereceğimiz PWM pini 0-255 arasında bir değer alabiliyor. Bu nedenle 0-1023 arasındaki sayısıları,  0-255 arası adımlara bölüyoruz. Bu işi yapan özel fonksiyonun adı map() fonksiyonudur.

    analogWrite(ledPin, potDegeri); analogWrite() komutu pinlere analog sinyal göndermek için kullanılır. potDegeri değişkenindeki değeri ledPin adlı pine gönderiyoruz. Led potansiyometreden gelen değer kadar parlak yanıyor.


    Kaynaklar:


    Arduino ile Buzzer Uygulaması

    Bu uygulamada buzzer 'ın  ARDUİNO ile nasıl kontrol edildiği anlatılmıştır.

    Buzzer; projelerimizde uyarı sesleri çıkarabilmek amacı ile kullanılan mini hoparlördür. 2 çeşit buzzer vardır. Bunlar, aktif ve pasif buzzerlardır. Aktif buzzer istenilen notaya göre ses çıkarabilir ve programla çeşitli müziklerin yapılması mümkün olan buzzerlardır. Pasif buzzer ise, sadece tek bir tonda ses çıkabilen ve sadece uyarı amacı ile kullanılan buzzerlardır.

    Devrede kullanılan malzemeler şunlardır:
    • Arduino UNO x1
    • Breadboard
    • 1 adet Buzzer 
    • İstediğiniz Renk Ve Boyutta Atlama Kablosu

    Devre şeması aşağıdaki gibidir: 

    arduino ile buzzer uygulaması

    Devrede buzzer elemanı Arduino nun 9 nolu pinine bağlanmıştır ve buzzer 'ın belirli saniye aralıklarıyla ses vermesi sağlanmıştır. 

    Program kodları aşağıdaki gibidir: 

    int buzzer=9; //   buzzer   9 numaralı dijital pine bağlandı

    void setup()

    {

         pinMode(buzzer, OUTPUT); // 9 numaralı pin çıkış olarak tanımlandı

    }

    void loop()

    {

         digitalWrite(buzzer, HIGH);
         delay(2000);   
         digitalWrite(buzzer, LOW);
         delay(2000);



    Program kodlarına bakılacak olunursa , buzzer ın 2 saniye ses çıkarıp 2 saniye sonra sesi kestiği görülmüştür.  










    10 Aralık 2019 Salı

    Arduino İle Karaşimşek Uygulaması

    Bu uygulamada 6 adet ledi butonlar aracılığıyla yakıp söndüren programın kodları yazılıp devre şeması çizilmiştir.

    Devrede kullanılan malzemeler şunlardır:

    • Arduino UNO x1
    • Breadboard
    • 6 adet istediğiniz renk LED
    • 6 adet 220 ohm Direnç 
    • İstediğiniz Renk Ve Boyutta Atlama Kablosu
    Devre şeması aşağıdaki gibidir:
    karasimsek
    -Karaşimşek Devresi-

    Uygulamada iki adet buton ve 6 adet led diyot kullanılmıştır.  Buton 1 e basıldığında ledler soldan  sağa , buton 2 ye basıldığında ise ledler sağdan sola doğru yanacaktır. Kodlarda değişiklik yaparak programı istediğiniz şekilde değiştirebilirsiniz. 

    Program kodları aşağıdaki gibidir: 




    int Ledler[] = {3,4,5,6,7,8};
    int buton1=12;              //12 nolu pin buton1 olarak tanımlandı
    int buton2=13;              //13 nolu pin buton2 olarak tanımlandı

    void setup()
    {
    pinMode(buton1, INPUT);    // buton1 giriş olarak ayarlandı  
    pinMode(buton2, INPUT);    // buton2 giriş olarak ayarlandı  

    for(int i=0; i<5 ;i++)    
      { 
        pinMode(Ledler[i], OUTPUT);   // LED pinleri cikis olarak ayarlandi 
      }
      
    }



    void loop()
    {
       if(digitalRead(buton1) == true)   //buton1 e basılıp basılmadığını kontrol et 
       {    
         for(int i=0; i<6; i++)
             { /* Tum LEDleri sirayla soldan sağa 100 milisaniye aralıklarla yakip sonduruyoruz */
             digitalWrite(Ledler[i],HIGH);      
             delay(100);                           
             digitalWrite(Ledler[i],LOW);
             delay(100);                  
             }
       }
       

       if(digitalRead(buton2) == true)   //buton 2 ye basılıp basılmadığını kontrol et 
       {    
         for(int i=5; i>=0; i--)
             { /* Tum LEDleri sirayla sağdan sola  100 milisaniye yakip sonduruyoruz */
             digitalWrite(Ledler[i],HIGH);      
             delay(100);                           
             digitalWrite(Ledler[i],LOW);
             delay(100);                  
             }
       }
    }