Soru & Cevap

ARDUİNO (FLOAT) DEĞİŞKENİ ...

16.05.2020 - 08:58

Arduino dersi 201 de Analog sinyal okuma konusundayım

 

 

void setup() {
  Serial.begin(9600);
}
void loop() {
  int sensorDegeri = analogRead(A0); /* A0’daki gerilimin sayısal değeri */
  float gerilim = ((float)5/1023)*sensorDegeri; 
  /* 
  5 volt 1023 ile ölçülüyordu. 
  Bu yüzden adim aralığını bulmak için 5/1023 kesrini bulduk. 
  Bu kesir okunan ADC değeri ile çarpılmıştır. 
  Böylece gerilim değeri bulunmuştur.
  */
  Serial.print(gerilim);/* bulunan gerilim değeri bilgisayara aktarıldı.   */
  Serial.println(" Volt");
  delay(100); 
}

 

 

Yukarıda ilk önce haberleşme başlatılıyor

sonra A0 pinini alog değerini okuyor

sonra float gerilim  diye değişken atıyor.Ben şunu anlamadım sensörden gelen değeri 5/1023 ile çarpıyor burası tamam orada çarpmanın önünde parantez içinde float yazıyor.Onun oradaki işlevini anlamadım onu çıkarınca seri port ekranında sürekli sıfır yazıyor onu anlamadım.Sadece sensörden gelen değer ile 5/1023 ü çarpmak yetmez mi?

3 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user
Konuk (doğrulanmamış)
17.05.2020 - 04:35

Tamsayılar default olarak int olarak tanımlanır. int/int sonucu yine bir int'dir. Haliyle 5/1023 ün en yakın tamsayı değeri "0"dır. 5/1023 gerçek değerini bulmak için 5 sayısını float'a dönüştürmeniz gerekir ki bunun için önüne o (float) ibaresi yazılır. Burada 5 bir değişken değil de bir değer olduğu için;

 float gerilim = 5.0f/1023*sensorDegeri;

bu şekilde de yazarabilirsiniz.

Murat kılç
17.05.2020 - 09:47
Çok teşekkür ederim.