TinkerCAD ile Butonlu LED Uygulaması

08.02.2019
12.654

Bu uygulamamızda Pull Down direnç sistemini kullanarak butonlu LED yakma uygulaması gerçekleştirdik.

TinkerCAD ile Butonlu LED Uygulaması

Merhabalar,

Bu uygulamamızda Pull Down direnç sistemini kullanarak butonlu LED yakma uygulaması gerçekleştirdik. Aşağıdaki devre şemamızda görüleceği üzere TinkerCAD üzerinde tasarladığımız devremizde 1 adet LED, 1 adet dört bacaklı buton, 1 adet LED için 220 ohmluk direnç ve 1 adet de buton için 1 kiloohmluk direnç kullandık. Buton ve direnç ikilisinde Pull Down direnç sistemini kullandık. Peki nedir Pull Down Direnç Sistemi?

TinkerCAD ile Butonlu LED Devresi

Pull Down ve Pull Up Direnç Sistemleri: Pull, tanım olarak çekmek, asılmak anlamına gelir. Aşağıdaki şemadan da anlaşılacağı üzere, Pull Down direncinin bir ucu GND’ye (-), diğer ucu ise mikrodenetleyici ile butona bağlıdır. Pull Up direncinin ise bir ucu VCC’ye (+), diğer ucu da mikrodenetleyici ile butona bağlıdır. Basitçe direnç altta ise sistem down, direnç üstte ise sistem up ile ifade edilir.

Pull Up ve Pull Down Direnç Sistemleri

Bu sistemler uygulamada genellikle mikrodenetleyciler ile gerçekleştirilen lojik devrelerde kullanılır. Örneğin, bir mikrodenetleyicinin başlangıçta lojik-0 olarak atanan bir pinini, LOW konumundan (lojik-0), HIGH konumuna (lojik-1) getirmek istediğimizde pull-down direnç sistemini kullanırız. Devremizde kullandığımız 1 kilo ohmluk direncin buton ile GND arasında kullanmamızın sebebi Arduino’nun 3 numaralı pininin kararsız durumda kalmamasını sağlamaktır. Direnci kullanmadığımız varsayılırsa, butona bastığımızda 5V ile GND arasında kısa devre oluşacak ve buradan Arduino’nun 3 numaralı pinine kararsız bir veri (Örneğin; 0-5 volt arası sürekli değişen bir gerilim değeri) gönderilecektir. Bunu önlemek için buton ile toprak arasına direnç konulur ve butona basılıyken Arduino’ya stabil bir lojik-1 (HIGH) verisinin gitmesi sağlanır. Butona basılmadığında da zaten Arduinoya stabil bir lojik-0 (LOW) verisi gidecektir.

Pull Up direncinde de tersi bir durum söz konusudur. Arduino’nun pinlerinden bir tanesi giriş olarak atanır ve HIGH konumundan LOW konumuna kararlı, stabil bir şekilde geçmesi istenirse Pull Up direnç sistemi kullanılır. Aşağıdaki resimde pull up direnç sisteminin çalışma prensibini inceleyiniz.

Pull Up Direnç Sisteminin Çalışma Prensibi

TinkerCAD ile Butonlu LED Yakma Uygulama Kodları:

/* BlogKod TinkerCAD ile Butonlu LED Kontrol Uygulaması */
// İlk olarak buton ve LED için kullanacağımız pinleri const ile sabitledik
// Devre şemamızda Pull Down direnç sistemini kullandık
const int butonPin = 3;                    
const int ledPin = 2; 

void setup() {
pinMode(butonPin, INPUT); // Butonu Giriş olarak tanımladık                
pinMode(ledPin, OUTPUT); // LED'i çıkış olarak tanımladık
}                 
void loop(){                     
  // IF komutu ile bir şartın gerçekleşip gerçekleşmemesi durumuna göre 
  // işlemler yapılır. Parantez içindeki şart gerçekleşirse ilk durum,
  // aksi halde else bloğundaki işlemler gerçekleşir.                   
if (digitalRead(butonPin) == LOW) { // Buton basılı değilse...
      digitalWrite(ledPin, LOW); // LED sönük kalsın
     }          
else {                        // Değilse...     
      digitalWrite(ledPin, HIGH); // LED yansın...
     }
} 

TinkerCAD ile Butonlu LED Uygulama Simülasyonu – 1

https://www.tinkercad.com/embed/03m7TjC8WNm?editbtn=1

Bu uygulamamızı şu şekilde revize edebiliriz. LED’in yanması için butona sürekli basmak yerine, 1 kez basınca yanmasını, tekrar basınca da LED’in sönmesini sağlayabiliriz. Devre tasarımımız aynı şekilde kalacak, yalnızca kodu değiştireceğiz.

Kodumuzda basılma durumunu işleme alabilmek için geçici bir durum değişkeni tanımladık:

int event = 0;

Ayrıca buton pininden gelen lojik sinyali de butonun lojik durumuna atadık ki butonun basılı halini işleme alabilelim.

butonLogic = digitalRead(butonPin);

/* BlogKod TinkerCAD ile Arduino Butonlu LED Uygulaması - 2 */
// Bu uygulama ile butona basıldığında LED yanacak
// Butona tekrar basıldığında ise LED sönecek
const int butonPin = 3;                    
const int ledPin = 2;
int ledLogic = 0;   //LED'in başlangıç lojik değeri 0 (LED Sönük)
int butonLogic = 0; //Butonun başlangıç lojik değeri 0 (Buton Basılı Değil)
int event = 0;//Butonun basılma durumuna göre bir durum değişkeni tanımlaması yaptık
void setup()
{
  pinMode(butonPin, INPUT); // Buton pini giriş olarak tanımlandı
  pinMode(ledPin, OUTPUT);  // LED pini çıkış olarak tanımlandı
}
void loop()
{//3 nolu pinden gelen değeri buton durum değişkenine atadık 
  butonLogic = digitalRead(butonPin);
  // Eğer butonun lojik durumu 1 ve durum değişkeni de 0 ise;
  if (butonLogic == 1 && event == 0) 
  {
    event = 1; // Durum değişkenine 1 ata;
              if (ledLogic == 0) // LED yakmak için LED'in lojik durumu 0 ise;
              {
                  ledLogic = 1; // LED'i yakmak için hazırol!
              } 
              else  //Değilse;
              {
                  ledLogic = 0; // LED'i söndürmek için hazırol!
              }
  }
  if (ledLogic == 1) // LED'in lojik durumu 1 ise LED yanmya hazırdır!
  {
    digitalWrite(ledPin, HIGH); // LED'i yak
  } 
  else  // Değilse;
  {
    digitalWrite(ledPin, LOW); // LED'i söndür
  }
  // Butonun lojik durumunu resetliyoruz...
  if (butonLogic == 0 && event == 1) // Eğer buton basıldı ve durum değişkeni 1 ise
  {
    event = 0; // Durum değişkenini sıfırla (Sıfır ata)
  }
  delay(10); // 10 milisaniye bekle...
}

TinkerCAD ile Butonlu LED Uygulama Simülasyonu – 2

https://www.tinkercad.com/embed/4mKw3CA1ua9?editbtn=1

Bir sonraki uygulamamızda görüşmek üzere…

BİR YORUM YAZIN

ZİYARETÇİ YORUMLARI - 2 YORUM
  1. Anonim dedi ki:

    çok saolun baya bi işime yaradı sınavda

  2. Anonim dedi ki:

    bu ne güzel güzel

Bilişim Teknolojileri ve Yazılım Ders Notları, Uygulamalar, Kodlama ve Arduino

© 2018-2025 BlogKod