Veri tiplerini inceleme gibi bir amacım yoktu ancak projedeki fonksiyonların nasıl çalıştığını irdelerken, konu veri tiplerine gelmiş oldu. İyi de oldu.
Aslında konu çok uzayacak olmasa, mümkün olduğunda ve yeri geldiğinde Mantıksal Kapı Devrelerine kadar inmek bile çok keyifli olabilir.
-yakın gelecek olmasa bile orta vadeli gelecek manasında- Yarın; Niyazi amcanın kızı Ecrin ya da Filiz teyzenin oğlu Eymen kendi işlemcisini tasarlayacaksa, “p ve q’lar”, “1 VEYA 0 = 1 eder”ler, “XOR”lar, “Seri bağlı PNP”ler.. havada uçuyor olmalı.
Günümüzde bile pek ala hissettiğimiz HomoTapiens, HomoSapiens ve HomoDeus ayrışmaları giderek keskinleşeceği için elbetteki büyük bir kitle matematiğe ve mantığa Uranüs kadar uzak olacaklar ama bulunduğu gezegeni olumlu yönde daha ileriye taşıyacak birileri de olacaktır mutlaka.
AHMT’in kodlarına dönecek olursak,
Daha önce Arduino’nun ana döngüsü olan void loop() {} içinde, şöyle yazmıştık:
istenenISI = map(analogRead(A3),7,1023,10,30);
Serial.print("istenen ISI: "); Serial.print(istenenISI);
Burada, kullanıcı odayı hangi sıcaklıkta istiyorsa onu ayarlamak için bir potansiyometreyi çeviriyordu ve biz de ANALOG bağaca gelen değerleri okuyorduk. Ki kullanıcı hangi ara değerleri istemiş görelim. -digitaller gibi sadece var/yok değil, 0, 5, 8, 18, 26.. vb.-
yukarıdaki şekilde void loop(){} içinde işimizi görüyorduk ancak kodlar ilerledikçe kullanıcının ayarlamış olduğu değeri başka yerlerde de kullanmamız gerekecek. Ve bunu tek hamlede almak işimizi hayli pratikleştirebilir.
Bu yüzden ufak değişikliklerle bunu bir fonksiyon olarak yazalım ve lazım olukça kullanalım 😉
Son birkaç yazıda temellerini attığımız üzere, fonksiyonumuzdan bize bir sonuç döndürmesini istediğimiz için,
bize dönecek olan değerin tipine göre bir kullanım yapıyoruz. Oda için istenen ısı değerleri döneceği için 0-255 aralığı yani BYTE kullanmak yerinde olacaktır.
byte ISI(){ istenenISI=0;
istenenISI = map(analogRead(A3),7,1023,10,30);
Serial.print("istenen ISI: "); Serial.print(istenenISI);
return istenenISI;
}
fonksiyonun başına ve sonuna dikkat..
Bize bir sonuç ya da rakam vermeyecek ama hayli kritik bir işlev görecek olan fonksiyonumuz ise void kombi(){}
neden byte kombi(){} değil de void kombi(){} diye soruyorsanız, “büyük ihtimal seriye ortadan dalmışsınız” derim. Vira #1 🙂
void kombi(byte alt, byte ust){
byte dereceDeger = derece();
if (dereceDeger<alt){ yanson(15); Serial.print("kombi Yandi: "); /* digitalWrite(role, LOW); */ }
else if (dereceDeger>=ust) {yanson(4); Serial.print("kombi Sondu: "); /* digitalWrite(role, HIGH); */ }
else {yanson(1); Serial.print("kombi else: "); /* digitalWrite(role, LOW); */}
}
burası fiziksel olarak işi yüklenen kısım olacağı için bir sonraki yazıda burayı biraz açalım..
2 thoughts on “Ecrin, Eymen, HomoDeus, byte ISI(){}, void kombi(){}”