Farklı Örneklerde Buton Kontrolleri

Farklı Örneklerde Buton Kontrolleri

Tek Pin İle Çoklu Buton Kullanma Uygulaması

#define buton A0
#define birinciled 1
#define ikinciled 2
#define ucunculed 3
#define dordunculed 4
#define besinciled 5
void setup()
{
  pinMode(buton, INPUT);
  pinMode(birinciled, OUTPUT);
  pinMode(ikinciled, OUTPUT);
  pinMode(ucunculed, OUTPUT);
  pinMode(dordunculed, OUTPUT);
  pinMode(besinciled, OUTPUT);
}

void loop()
{
  if (analogRead(buton) >= 1020) {
    digitalWrite(birinciled, HIGH);
    digitalWrite(ikinciled, LOW);
    digitalWrite(ucunculed, LOW);
    digitalWrite(dordunculed, LOW);
    digitalWrite(besinciled, LOW);
  }
  else if (analogRead(buton) >= 920 && analogRead(buton) <= 950) {
    digitalWrite(birinciled, LOW);
    digitalWrite(ikinciled, HIGH);
    digitalWrite(ucunculed, LOW);
    digitalWrite(dordunculed, LOW);
    digitalWrite(besinciled, LOW);
  }
  else if (analogRead(buton) >= 840 && analogRead(buton) <= 860) {
    digitalWrite(birinciled, LOW);
    digitalWrite(ikinciled, LOW);
    digitalWrite(ucunculed, HIGH);
    digitalWrite(dordunculed, LOW);
    digitalWrite(besinciled, LOW);
  }
  else if (analogRead(buton) >= 780 && analogRead(buton) <= 800) {
    digitalWrite(birinciled, LOW);
    digitalWrite(ikinciled, LOW);
    digitalWrite(ucunculed, LOW);
    digitalWrite(dordunculed, HIGH);
    digitalWrite(besinciled, LOW);
  }
  else if (analogRead(buton) >= 720 && analogRead(buton) <= 740) {
    digitalWrite(birinciled, LOW);
    digitalWrite(ikinciled, LOW);
    digitalWrite(ucunculed, LOW);
    digitalWrite(dordunculed, LOW);
    digitalWrite(besinciled, HIGH);
  }
  else {
    digitalWrite(birinciled, LOW);
    digitalWrite(ikinciled, LOW);
    digitalWrite(ucunculed, LOW);
    digitalWrite(dordunculed, LOW);
    digitalWrite(besinciled, LOW);
  }
  delay(10);
}

LED’in çıkış değerini, Butona basıldıkça çıkış değerinin tersi durumu olacak şekilde değiştir. Basit kullanım (On/Off)

int led = 12;
int buton = 7;

void setup() {
  pinMode(led, OUTPUT);
  pinMode(buton,INPUT);
}

void loop() {
 if (digitalRead(buton)) // butondan okunan değer "FALSE" gelirse 
 {
   digitalWrite(led,(!digitalRead(led))); //ledin çıkış değerini, çıkış değerinin tersi olacak şekilde değiştir. False ise True /-/ true ise false yap
   delay(500); // butona basılmak için beklenen süre
 } 
}

Butona Basılan Süre kadar LED’i yakma

int led = 12;
int buton = 7;
long sure = 0;

void setup() {
  pinMode(led, OUTPUT);
  pinMode(buton, INPUT);
  Serial.begin(9600);
}

void loop() {
  while (digitalRead(buton)) {
    sure = sure + 1;
    delay(1);
  }
  delay(200);
 if (sure)
 {
  Serial.print(sure/1000);
  Serial.println(" Saniye");
  digitalWrite(12, HIGH);
  delay(sure);
 }
 digitalWrite(12, LOW);
 sure=0;
}

Tek butonla RGB LED’in renklerini değiştirme

int R = 9;
int G = 10;
int B = 11;
int buton = 7;
int sayac = 0;

void setup() {
  Serial.begin(9600);
  pinMode(R, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(buton, INPUT);
}

void loop() {
  if (digitalRead(buton)) {
    sayac = sayac + 1;
    delay(500);
    while (sayac) {
      Serial.println(sayac);
      if (sayac > 3) {
        sayac = 1;
      }
      break;
    }
  }
  if (sayac == 1)
    mavi();
  else if (sayac == 2)
    kirmizi();
  else if (sayac == 3)
    yesil();
}

void mavi() {
  digitalWrite(R, LOW);
  digitalWrite(G, LOW);
  digitalWrite(B, HIGH);
}

void kirmizi() {
  digitalWrite(R, HIGH);
  digitalWrite(G, LOW);
  digitalWrite(B, LOW);
}

void yesil() {
  digitalWrite(R, LOW);
  digitalWrite(G, HIGH);
  digitalWrite(B, LOW);
}

Bir tane LED’in birden fazla butonla kontrolü

int buton1 = 7;
int buton2 = 8;
int led = 12;
int leddurum;
void setup() {
  pinMode(buton1, INPUT);
  pinMode(buton2, INPUT);
  pinMode(led, OUTPUT);
}

void loop() {
  leddurum=digitalRead(led);
  if (digitalRead(buton1) ||digitalRead(buton2) ) 
    {
      delay(500);
        if (leddurum==1)
      {
        digitalWrite(led,LOW);
      }
      else if (leddurum==0)
      {
        digitalWrite(led,HIGH);
      }
    }   
  }

Veya aşağıdaki kodlarla da yapılabilir.

int buton1 = 2;
int buton2 = 3;
int led = 12;
void setup() {
  pinMode(buton1, INPUT);
  pinMode(buton2, INPUT);
  pinMode(led, OUTPUT);
}

void loop() {
  while (digitalRead(buton1) ||digitalRead(buton2)) 
    {
      digitalWrite(led, !digitalRead(led));
      delay(500);
    }
  }
Yorumlar kapalı.

nurullahozkan@outlook.com.tr