Merhabalar,
Arduino da belli aralıktaki sinyali başka bir aralık için skalalandırırken Map komutu kullanılıyor. Örneğin;
Kod:
Output= map (input,0,1023,0,255)
Bu kodlamada 0-1023 aralığındaki analog sinyal 0-255 aralığındaki çıktıya dönüştürülüyor. Aynı şekilde Access'te
Vba da böyle bir skalalandırma komutu var mı? Yani 0-500'ü 4-250'ye çevirmek istediğimi düşünün mesela..
Tşk.
(28/11/2018, 11:30)notrino yazdı: [ -> ]Merhabalar,
Arduino da belli aralıktaki sinyali başka bir aralık için skalalandırırken Map komutu kullanılıyor. Örneğin;
Kod:
Output= map (input,0,1023,0,255)
Bu kodlamada 0-1023 aralığındaki analog sinyal 0-255 aralığındaki çıktıya dönüştürülüyor. Aynı şekilde Access'te Vba da böyle bir skalalandırma komutu var mı? Yani 0-500'ü 4-250'ye çevirmek istediğimi düşünün mesela..
Tşk.
Selamlar,
Bu konuyu şu şekilde değiştiriyorum zira paralel bir sonuç oluşuyor;
Ekli örneğimde "Input" değerlerine yukardan aşağıya -30 ile 80 yazın, "Output" değerlerine 4 ve 20 yazın. Şimdi "İstenen Input" kısmına örneğin 15 yazın. Butona basınca "Sonuç Output" olarak 10,54 gibi bir değer bulacaksınız. Bu doğru bir değerdir. Kodlamada iki noktalı koordinat sisteminin lineer denkleme dönüşmüş hali bulunuyor. Klasik olarak hesaplanmış bir metot bu. Benim merak ettiğim şey, bu hesaplama yerine
Vba ya da
Access içinde özel ve basit bir komut var mı? Yani iki ya da daha çok noktalı Input değerlerini, verilen Output değerlerine göre skalalandıracak basit bir komut arıyorum. Tşk.
Bununla ilgili ayrı kod olacağını sanmıyorum, hesaplama için fonksiyon yazılabilir, ancak yazılacak fonksiyon içerisine yine aynı hesaplama dahil edilecek.
public function MapHesap(a as double, b as double, c as double, das double, e As double) as double
gibi fonksiyon yazılması lazım, altına yazılacak hesaplama kodu zaten forma yazılacak.
(25/01/2019, 01:29)ozanakkaya yazdı: [ -> ]Bununla ilgili ayrı kod olacağını sanmıyorum, hesaplama için fonksiyon yazılabilir, ancak yazılacak fonksiyon içerisine yine aynı hesaplama dahil edilecek.
public function MapHesap(a as double, b as double, c as double, das double, e As double) as double
gibi fonksiyon yazılması lazım, altına yazılacak hesaplama kodu zaten forma yazılacak.
Evet, evet y=f(x) gibi bir fonksiyonla bu işi çözebiliyorum aslında. Ben sadece Map komutunda olduğu gibi tek satırlık bir kodla bu skalalandırma işini yapabilir miyim diye merak etmiştim. Teşekkürler..
Yazılacak fonksiyon;
Public Function MapHesap(istenen As Double, in1 As Double, in2 As Double, out1 As Double, out2 As Double) As Double
MapHesap = ((istenen - in1) * (out1 - out2) / (in1 - in2)) + out1
End Function
Kod içerisinde kullanımı,
Me.Metin9 = MapHesap(Me.Metin7 , Me.Metin0, Me.Metin2, Me.Metin4 , Me.Metin6)