Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

3 Mayıs 2021 Pazartesi

Arduino ile buton nasıl kullanılır ?

 

Arduino ile buton nasıl kullanılır ?


Arduino'nun dijital pinlerini giriş olarak nasıl kullanacağımızı göreceğiz.Arduino ile buton nasıl kullanılır ?


Dijital pinlerin bir giriş olarak kullanımını göstermek için , Arduino'nun dijital giriş / çıkış pinlerine bağlı iki LED'i kontrol etmek için buton kullanılır. 

Arduino'nun Dijital Girişlerini Okuma

Dijital girişi okumak için Arduino'nun GPIO pinlerini kullanmak için Arduino'nun pinMode () fonksiyonunu kullanıyoruz. PinMode () rutini, GPIO pinlerini aşağıdaki gibi bir dijital çıkış pini olarak tanımlamak için kullanılır:

pinMode(GPIO_Pin,INPUT);

Örneğin, Arduino'nun GPIO_0'ını bir dijital giriş pini olarak ilan etmek istiyorsanız, yukarıdaki işlevi şu şekilde kullanın:

pinMode(0,INPUT);

GPIO pinini dijital çıkış pini olarak yapılandırdıktan sonra, digitalWrite () işlevini kullanarak giriş pininin durumunu okuyabiliriz:

int state;
state = digitalRead(GPIO_Pin);

Bu digitalWrite (), durumunu bilmek istediğiniz pin numarası olan bir giriş argümanını kabul eder. Bu işlev, dijital giriş pininin durumuna bağlı olarak mantık yüksek veya düşük döndürür.


Arduino kartının 1 ve 2 numaralı pinlerine iki LED bağlanır. basma düğmesi Arduino kartının 0 numaralı pinine bağlıdır.

Basma Düğmesi Arayüzü

Basma düğmesi temel olarak iki LED'i kontrol etmek veya iki LED'i açmak / kapatmak için kullanılır. basma düğmesine basıldığında. Her iki LED de yanıyor ve bir düğmeye basılmadığında LED'ler sönük kalıyor. Akım sınırlama direnci olarak her iki LED ile iki direnç seri olarak bağlanmıştır.

Aşağı Çekme Direnci

Butonun bir tarafı 5 voltluk kaynak ile bağlanır ve diğer tarafı 10k ohm direnç ile toprağa bağlanır. Basma düğmesine basılmadığında, pin 0 için giriş olarak bir mantık düşük kullanılır ve basma düğmesine basıldığında, mantık yüksek pin 0 girişi olarak kullanılır.

Not: Basma düğmeli 10k Ohm direnç, aşağı çekme direnci olarak kullanılır. Basmalı düğmeyi bırakır bırakmaz dijital giriş mantığının durumunu düşük hale getirecektir, aksi takdirde dijital giriş sıfırda kayan bir durum görünecektir.Arduino ayrıca dahili bir aşağı çekme direncine sahiptir. Bu eğitimin sonraki bölümünde, Arduino'nun dahili çekme direncini kullanarak basma düğmesinin nasıl kullanılacağını göreceğiz. Harici direnç ihtiyacını ortadan kaldıracaktır.

Her iki durumun devre şemaları, basma düğmesine basılmadığında aşağıda Simülasyon şeması gösterilmektedir :



Bu şema, basma düğmesine basıldığında çıkışı gösterir. Gördüğünüz gibi her iki LED de yanıyor.


Yukarıdaki devrenin kodu aşağıda verilmiştir. Bu kodu Arduino yazılımına kopyalayın.

int buttonStatus; // Variable declare to store status of digitalWrite
 void setup() 
{

  pinMode(1, OUTPUT); 
  pinMode(2, OUTPUT); 
  pinMode(0, INPUT); 
 }

void loop()
 {

 buttonStatus = digitalRead(0);
  if (buttonStatus == HIGH) 
  { 
  digitalWrite(1, HIGH);
  digitalWrite(2, HIGH); 
  } 
  else 
  {

 digitalWrite(1, LOW); 
  digitalWrite(2, LOW); 
  }
 }

Kod Nasıl Çalışır?

Arduino ile buton kullanımının programlanmasını anlamak için, Öncelikle giriş fonksiyonunu ve kullanımını bilmeniz gerekir. Giriş işlevinin açıklaması aşağıda verilmiştir:

pinMode (pin numarası, GİRİŞ):Aynı  işlev, pimi bir giriş pini olarak bildirmek için kullanılır. Burada GİRİŞ  bağımsız değişken bir giriş pimi olarak belirtilen pin numarası bildirmek için kullanılır. Örneğin pinMode (0, INPUT) işlevi pin 0'ı bir giriş pini olarak bildirir.

digitalRead (pin numarası):digitalRead fonksiyonu, giriş pininin durumunu okumak için kullanılır, pin mantık seviyesinde yüksek veya mantık seviyesinde düşüktür. Bu işlevin çıktısı, uygulamanıza göre diğer işlevleri gerçekleştirmek için kullanılabilecek başka bir değişkende saklanır.

digitalWrite (pin numarası, YÜKSEK / DÜŞÜK):digitalWrite işlevi, çıkışın mantıksal yüksek veya mantık düşük olduğu belirtilen pin numarasında yazmak veya çıktı almak için kullanılır.

İlk olarak, butonun durumunu saklamak için kullanılacak bir tamsayı değişkeni tanımlarsınız.

int buttonStatus; // Variable declare to store status of digitalWrite()

Kurulum işlevinin içinde, pinMode () rutinini kullanarak dijital pin 1 ve 2'yi çıkış pinleri olarak yapılandırıyoruz. Benzer şekilde, dijital pini sıfırı bir giriş pini olarak ilan ediyoruz.

 void setup() 
{
  pinMode(1, OUTPUT); 
  pinMode(2, OUTPUT); 
  pinMode(0, INPUT); 
 }

Bildiğiniz gibi Arduino taslağında, tekrar tekrar çalışan her şey döngü işlevinin içine yerleştirilir. Loop () içinde, önce digitalRead () işlevini kullanarak pinin sıfır durumunu kontrol ederiz ve pinin durumunu "buttonstate" değişkenine kaydederiz.

Bundan sonra durum "buton durumu" değişkenini kontrol etmek için koşul kullanılırsa. Koşul doğruysa, digitalWrite () dijital çıkış pinlerini yüksek aktif hale getirir ve aksi takdirde bu çıkış pinleri düşük aktif kalır.

void loop()
 {

 buttonStatus = digitalRead(0);
// if button pressed execute next instructions
// other execute instructions under else block
  if (buttonStatus == HIGH) 
  { 
  digitalWrite(1, HIGH); // Set pin_1 active high
  digitalWrite(2, HIGH); //// Set pin_2 active high
  } 
  else 
  {

 digitalWrite(1, LOW); // Set pin_1 active low
  digitalWrite(2, LOW); // Set pin_2 active low
  }
 }

Basma Düğmesi 

Son örnekte, basma düğmeli harici bir direnç kullandık. Ancak Arduino ayrıca dahili Pull-Up özelliği de sunar. PinMode () kullanarak dahili Pull-Up'ı yapılandırabiliriz.

Bu hat, arduino'nun dahili pull-up direncini etkinleştirecek ve Arduino ile doğrudan bir butona arayüz oluşturabiliyoruz.

// Make pin 2 digital input with internal pull-up resistor enabaled
pinMode(2,INPUT_PULLUP); 

Devre Şeması

Bu şemada Arduino'nun dijital pin 2'si ile sadece bir buton bağladık ve Arduino'nun 13. pinine bağlı on board led'i kullanacağız.

Dahili kaldırma direncini kullanan Arduino ile basma düğmesi

Bu, LED'i basma düğmesi ve dahili çekme direnci ile kontrol etmek için örnek bir koddur.

void setup() 
{
  pinMode(13,OUTPUT);
  pinMode(2,INPUT_PULLUP);// put your setup code here, to run once:
}

void loop() 
{
  if(digitalRead(2)==LOW)
  {
  digitalWrite(13,HIGH);
  }
  else 
  digitalWrite(13,LOW);
}

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

Hiç yorum yok:

Yorum Gönder

Yorum yazdığınız ve üye olduğunuz için Size teşekkür ederim.Burada olduğunuza göre hepimizin ilgi alanı Elektronik ve Programlama sonsuz bir dünyadayız.Hepimize Başarılar...

Not: Yalnızca bu blogun üyesi yorum gönderebilir.