AHMT sicaklikOlc() fonksiyonu

in tr •  6 years ago  (edited)


Evveliyat: ##1, ##2, ##3, ##4


ISI ve sıcaklık ile ilgili kısımlara gelmiştik. Biraz açıklamasını da yaparak devam edelim.. // görsel

sicaklikOlc() fonksiyonu


C gibi temel dillerden geliyorsanız Arduino kodları sizin için çocuk oyuncağı olabilir. Hoş farklı dillerden geliyorsanız da çok zor değil hatta bi hayli basit ve net.

Arduino değişken tanımlama


Örneğin bir değişken tanımlarken
Php'de $x=15;
JavaScript'te var x=15;
Python'da x=15

şeklinde belirtiyoruz. Burada ise değişkenin kaç bit/byte'lık oluğuna göre türünü belirtiyoruz. Ya da metin/karakter olma durumunu da söylüyoruz: byte x=15;

Arduino fonksiyonlar


Benzer şekilde fonksiyon tanımlarken de sade ve net. Sadece ufak farklılıklar var.
Python'da def fx(): bişeyler yap..
JavaScript ve php'de function fx() { bişeyler yap.. }

şeklinde tanımlarken burada
void fx() { bişeyler yap.. }
ya da
byte fx(){ bişeyler yap.. }
olarak tanımlıyoruz. void fx() kullanımı, Return ile sonuç döndürmeyen fonksiyonlar için. Şayet fonksiyonumuz bir sonuç üretiyorsa bu durumda üretilecek verinin türünü belirtmemiz gerekiyor. Örneğin fonksiyonmuz byte tipinde bir sonuç döndürüyorsa
byte fx() { bişeyler yap.. return sonuc; } şeklinde tanımlama yapıyoruz. Fonksiyonumuza bir argüman gönderip, ona göre sonuç alıyorsak bunu da byte fx(a){ a.. do.. return } şeklinde kullanıyoruz.

En genel hali ile şöyle:

dönüşTipi funksiyonİsmi( argüman-lar ){
sonuçTipi sonuç;
bişeyler yap..
return sonuç;
}

Böyle çok havada kalıyor sanırım. Yukarıdaki tanımlamaları da kapsayan kısa bir örnek yapalım.

////////////////////////////
void yaz() {Serial.println("Merhaba"); }
// Bi şeyler yapıyor ama bize bir sonuç ile geri döndürmeyeceği için
// void fx(){} kullanıyoruz.

////////////////////////////

byte cevre() {
byte A=20;
byte B=40;
byte cevreuzunlugu = 2*(A+B);
return cevreuzunlugu; }
//return ile 255'ten küçük bir değer döndüreceği için
// byte fx(){} şeklinde kullanıyoruz

////////////////////////////

int alan() {
byte C=30;
byte D=50;
int kapladigiAlan = C*D;
return kapladigiAlan; }
//return ile 255'ten büyük bir değer döndüreceği için
// int fx(){} şeklinde kullanıyoruz

////////////////////////////

int y = 350;
byte x = 75;
void topla(){ int z = x+y; Serial.println(z); }
//return ile bir değer döndürMEyeceği için
// void fx(){} şeklinde kullanıyoruz

////////////////////////////

int p = 300;
byte j = 15;
int carp(int k, int m){
int sonuc;
sonuc = k * m;
return sonuc; }
//return ile 255'ten büyük 32768'den küçük bir değer döndüreceği için
// int fx(){} şeklinde kullanıyoruz
// dışarıdan bizim verdiğimiz değişkenleri kullanarak işlem yapması için
// int fx(int arguman1){} şeklinde kullanıyoruz

////////////////////////////

//tanımladığımız fonksiyonları iş başında görelim ;)

void setup() { Serial.begin(9600);
yaz();
byte ornekIKI = cevre(); Serial.println(ornekIKI);
int ornekUC = alan(); Serial.println(ornekUC);
topla();
int ornekBES = carp(p,j); Serial.println(ornekBES);
}
void loop() {}



 

Bu bilgiler ışığında AHMT'in kodlarına yeniden bakalım..Bu sefer bi tık daha sıcak gelebilir ;)



Sıcaklık Volt ve Sıcaklık değişkenlerimizin integer ve float (noktalı sayı) olduğunu, ayrıca hangi bacağa bağlantı yaptığımızı tanımladık.

Return ile bir sonuç döndürmeyeceği için fonksiyon oluştururken void sicaklikOlc(){} olarak kullandık.

Fonksiyonun içinde ise SicaklikPini'ne bağlı sensörden gelen değerleri okuduk (doğal olarak derece değil volt) sonra kaç voltun kaç santigrat dereceye denk geldiğini hesaplatıyoruz. Bu arada bu işlemin sağlıklı olabilmesi için void setup(){} içinde
kullanacağız.

Kodun ilerleyen kısımlarında, herhangi bir yerde LM35'ten gelen ortam sıcaklığının o andaki değeri lazım olduğunda şöyle demek yeterli olacak:

sicaklikOlc();

 


Posted from my blog with SteemPress :

https://murattatar.xyz/ahmt-sicaklikolc-fonksiyonu/

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Hocam Arduino kodlarını mini C dersinden sonra vermeniz oldukça iyi olmuş :)

Aklıma bir soru geldi konuyla alakasız olabilir kusura bakmayın. Sitenize baktım kodları yayınlarken herhangi bir ayrıcalık yapmamışsınız. Demek istediğimi kendi sitemden örnek vereyim. Kodlar normal yazılardan farklı duruyor. Sonrasında siz steemit de mi kod bloklarına çevirdiniz.

Daha önce test etmedim. Mesela steempress benim bu renkli kod bloklarımı steemit tarzı bloklara direk çevirebilir mi?

;)
Steemit'te siyah, gri, yeşil ve kırmızı dışında renk yok. O yüzden buradaki gibi html renkler bile, Steemit'e gelemiyor.

murattatar.xyz tarafında görsel değil de metin editördeyken < code > < /code> etiketleri arasına alıyorum, syntax colorer bi eklenti olmadığı için düz yazı gibi gösteriyor ama steemit bunu ekstra bir şey yapmadan yukarıdaki gibi gösteriyor.

// "kızım sana söylüyorum gelinim set işit" durumu varsa(?), ben de kurayım ;)

yok hocam oyle kız mız olayı bende, ben dümdüz bir insanım ne diyorsam o :) Yakında Java derslerime devam edeceğim de ondan önce farklı bir blogumda bu kod olayını temel c de deneyecektim tabi asıl amacım git sistemini anlatmak. O yüzden sizden alacağım bilgiler benim için çok değerli olduğundan sordum.