Const ve Define – Arduino Dersleri

Bilgiyi yaymak için paylaş!

Const ve define değişkenler kullanımını etkileyen yapılardır. Arduino’da değişkenlerin kullanımını bilmiyorsanız bir göz atmanızda yarar var.

Const Nedir?

Değişkenlere bir değer verdiğiniz zaman o değeri sonradan değiştirebilir yeni değerler almasını sağlayabilirsiniz. Bazı durumlarda belirlediğiniz değişkenin istediğinizin dışında bir değer almaması gerekir. Bu aldığı ilk değeri korumak için yani sabit haline getirmek için “const” kullanılır.

int x = 7;
void setup() {
  Serial.begin(9600);
  x = 5; // x'in yeni değeri 5
  Serial.println(x);
  delay(1000);
}

void loop() {
  x = 8; // x'in son değeri 8
  Serial.println(x);
}

Yukarıdaki kodda const kullanmadan bir değişkenin değerleri değiştiğini göstermektedir.

const int x = 7;
void setup() {
  Serial.begin(9600);
  x = 5; // x'in yeni değeri 5
  Serial.println(x);
  delay(1000);
}

void loop() {
  x = 8; // x'in son değeri 8
  Serial.println(x);
}

Eğer yukarıdaki kodu Arduino’ya yüklemeyi denerseniz “assignment of read-only variable ‘x’ ” hatası alacaksınız. Anlamı; bu değişken sadece okunabilir, değiştirilemezdir. Kısaca tanımladığınız değişkeni sadece okuyabilirsiniz.

const int x = 7;
void setup() {
  Serial.begin(9600);

}

void loop() {
  Serial.println(x);
}

Define Nedir?

Normalde değişkenler değeri saklamak için Arduino’nun hafızasını kullanırlar. Define hafızayı kullanmadan değerleri saklamamızı sağlar. Define’nın çalışma mantığı değişken gibidir. Değişken adı ve değer alır fakat eşittir ifadesi kullanılmaz. Define, Arduino kodunu en üstüne yazılır.

#define değerİsmi Değer
#define LED_PIN 2
void setup() {
  pinMode(LED_PIN,OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN,HIGH);
  delay(1000);
  digitalWrite(LED_PIN,LOW);
  delay(1000);
}

Define bir değeri bir isme tanımlamaya yarar. Yukarıdaki kodda LED_PIN yazılan yerlere 2 otomatik bir şekilde yerleştirilecektir. Define’a değer tanımlaması sayı, harf, kelime vb. şeklide yazılabilir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir