AccessTr.neT
Arduino Map Komutu - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Arduino Map Komutu (/konu-arduino-map-komutu.html)



Arduino Map Komutu - notrino - 28/11/2018

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.


Cvp: Arduino Map Komutu - notrino - 10/12/2018

(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.


Cvp: Arduino Map Komutu - ozanakkaya - 25/01/2019

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.


Cvp: Arduino Map Komutu - notrino - 25/01/2019

(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..


Cvp: Arduino Map Komutu - ozanakkaya - 25/01/2019

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)



Cvp: Arduino Map Komutu - notrino - 25/01/2019

(25/01/2019, 13:03)ozanakkaya yazdı: 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)

Teşekkürler