20 Nisan 2024 Cumartesi
Arduino Projeleri

Arduino ile Bir Pine Birden Çok Buton Bağlamak

2.1kviews

Merhaba arkadaşlar.

Arduino üzerinde 1 pini kullanarak nasıl birden fazla buton ve bununla nasıl işlem yapılabilir onu öğreneceksiniz. Bilginiz üzere gücün korunumu yasasından devrede değişen drenç ile, devreden geçen akımı ve gerilimi artırıp yada azalta biliyoruz. Bu durumda bize arduinonun gelen gerilimin seviyesine göre kodda belirtildiği işlemi yapmamızı sağlıyor.

 

Bir alttaki fritzing çizimi bunu daha kolay anlamanızı sağlıyacaktır

.

Görüldüğü üzere her hangi bir butona bastımız üzere devreki akım gidebilecek en kısa yolu takip edicek ve üzerinden geçtiği dirençlerden yüzünden değeri değişecek.

Bu durum girişinde okuduğumuz değere göre işlem yapmamıza imkan sunuyor.

const byte BOS = 0;
const byte SOLA = 1;
const byte YUKARI = 2;
const byte SAGA = 3;
const byte ASAGI = 4;
const byte SEC = 5;
const byte keypadPin = A0;
byte key = 0;
void setup() 
{
Serial.begin(9600);while(!Serial) { ; }   //Seri penceremizi tanıtıyoruz.
Serial.println(F("Start\n")); pinMode(keypadPin,INPUT_PULLUP); //Analog girişten alınan degeri okutuyoruz
}
void loop() 
{
key=getKey();
if(key==SOLA)
  { Serial.println("SOL");} //'Sol' isimli butona basıldığında ekrana yazmasını istediğimiz degeri veriyoruz.
    if(key==SAGA)
      { Serial.println("SAĞ");} //'Sağ' isimli butona basıldığında ekrana yazmasını istediğimiz degeri veriyoruz.
        if(key==YUKARI)
          { Serial.println("YUKARI");} //'Yukarı' isimli butona basıldığında ekrana yazmasını istediğimiz degeri veriyoruz.
            if(key==ASAGI)
              { Serial.println("AŞAĞI");} //'Aşağı' isimli butona basıldığında ekrana yazmasını istediğimiz degeri veriyoruz.
                if(key==SEC)
                  { Serial.println("SEÇİNİZ");} //'Sec' isimli butona basıldığında ekrana yazmasını istediğimiz degeri veriyoruz.
                    if(key==BOS)
                      { Serial.println("Herhangi Butona Basılmadı");} //'Bos' Herhangi bir butona basılmadığında yazmasını istediğimiz degeri veriyoruz.
delay(100);
}                      
byte getKey()
{
  int val = 0; byte button = 0;
    val = analogRead(keypadPin); button = BOS; //A0 giriş pininden okunan değere göre yapmasını isteğimiz durumu yazıyoruz.
 if(val <=35) { button == SOLA; } //Gelen deger 35 veya 35den küçük ise 'Sol' isimli butona basılmıştır.
  else if(val >=52 && (val <=92)) { button=YUKARI;} //Gelen deger 52 ve 92 arasında ise 'Yukarı' isimli butona basılmıştır.
    else if(val >=104 && (val <=144)) { button=ASAGI;} //Gelen deger 104 ve 144 arasında ise 'Asağı' isimli butona basılmıştır.
      else if(val >=150 && (val <=190)) { button=SAGA;} //Gelen deger 150 ve 190 arasında ise 'Sağ' isimli butona basılmıştır.
        else if(val >=192 && (val <=232)) { button=SEC;} //Gelen deger 192 ve 232 arasında ise 'Seç' isimli butona basılmıştır.
return button;
}

 

Leave a Response

mdusgun
Don't keep up on your dreams. Keep sleeping.