Aslında biz bu komut olmadan da
oran orantı kurarak aynı işlemi gerçekleştirebiliriz. Ama bu komut o kadar pratik
ki insan oran orantıyla uğraşamam yazarım verileri halletsin işte diyesi
geliyor. Map komutu iki farklı sınırdaki değerleri birbirine orantılandığımızı
söyleyebiliriz.
Örneğin bizim elimizde 10 bitlik
0-1023 arası sınırlarda gezen bir değerimiz olsun. Bu değeri biz8 bite çevirmek
istersek yani0-255 arası bir değere çevirmek istersek oran orantı kurarak bu
işlemi hallederiz yada map komutuyla hallederiz. Peki map komutuyla bu işlemi
nasıl yaparız.
Örnek: Analog olarak 0-1023 arası okuduğumuz değeri analog
olarak 0-255 arası orantıyı koruyarak yazdırma.
Yani 2.5 V okuduğunuzda 2.5 V olarak çıkışa
vereceğiz.Ama bu işlemi yaparken analogWrite ve analogRead komutlarının çalışma
aralıkları aynı olmadığı için map komutu kullanarak bu aralıkları orantılayacağız.
void setup() {}
void loop()
{
int val = analogRead(A0);//val değişkenine A0. Pini okuyarak 0-1023 arası değeri aktarıyoruz.
val = map(val, 0, 1023, 0, 255);/*val değişkenine val değişkeninden aldığımız 0-1023 arası değeri, 0-255 ile orantılayarak aktarıyoruz*/
analogWrite(9, val);//val değişkeninden 0-255 arasında gelen değeri 9 nolu pine veriyoruz.
}
Gördüğünüz gibi 3 satırda işlem tamam.
0 yorum