Dalam Tutorial ini, anda akan pelajari bagaimana menggunakan Fungsi MAPPING dalam Arduino IDE. Fungsi MAPPING adalah satu fungsi basic yang mempunyai penggunaan yang sangat meluas terutamanya dalam memanipulasi data.
Walaupun MAPPING adalah fungsi basic, tapi kami pasti, anda tentu akan menggunakannya dalam hampir semua project-project Arduino anda tidak kira yang simple mahupun yang complicated.
map(sumber data, dari-LOW, dari-HIGH, ke-LOW, ke HIGH)
Mapping, adalah fungsi yang akan mengubah satu RANGE data, kepada RANGE data yang baru.
Sebagai contoh, kita lihat input data dari Analog Input Potentiometer.
Kita tahu, range data yang akan didapati, pastilah dari 0~1023.
Dengan data tersebut, kita mungkin mahu mengawal kelajuan satu motor yang dipandu oleh Motor Controller. Kebanyakan Motor Controller memerlukan input kawalan PWM, dan PWM Output dari pin-pin PWM Arduino dapat dikawal dengan memberikan value dari 0~255 dalam coding.
Oleh itu, kita perlu menggubah output 0~1023 tadi, kepada nilai 0~255 untuk mengawal Motor Controller. Mungkin andaboleh menggunakan formula matematik yang sedikit complicated, seperti;
dataSensor = analogRead(A1); dataBaru = dataSensor / (1023/255); // 1023/255 = 4.011 // dataBaru = 1023 / 4.011 // dataBaru = 255
Dengan formula di atas, anda mungkin dapat mengubah data 0~1023 tersebut kepada data baru 0~255. Dan setiap kali ada Range-Baru yang ingin dibuat, anda perlu membuat kiraan formula sekali-lagi.
Disinilah fungsi MAPPING memudahkan kerja coding kita.
dataSensor = analogRead(A1); dataBaru = map(dataSensor, 0, 1023, 0, 255);
Di atas merupakan coding MAPPING untuk menggantikan coding matematik di permulaan tadi. Algorythm yang digunakan adalah algortyhm map().
Penerangan mudah bagi fungsi mapping adalah seperti berikut;
dataBaru = map(inputData, minimumLama, maksimumLama, minimumBaru, maksimumBaru);
Untuk memahami dengan lebih jelas, kita teruskan dengan Tutorial ini, dan anda boleh rujuk artikel mengenai mapping dari Arduino.cc melalui URL di bawah:
Teruskan dengan Tutorial ini untuk memahami dengan lebih lanjut mengenai ADC dan Analog Input.
Dalam tutorial ini, komponen-komponen berikut perlu disediakan:
- Arduino Uno (atau yang lain) (1 unit)
- Jumper cable (3 unit)
- Potentiometer 10k ohm (1 unit)
- Breadboard (1 unit)
LANGKAH #1: SAMBUNGAN LITAR
Sambungkan litar anda seperti gambarajah berikut:

Pastikan pin tengah Potentiometer disambung pada Analog Pin.
LANGKAH #2: CODING/SKETCH
Copy sketch di bawah dan pastekan dalam Arduino IDE anda.
//Tutorial #7 : Fungsi Mapping & Analog Input //Code disediakan oleh MatGyver.my int dataSensor; int dataBaru; //declare variable untuk simpan data input Sensor void setup() { // masukkan code setup di sini, Void Setup berjalan sekali sahaja Serial.begin(9600); //mulakan connection Serial pada Baud Rate 9600 pinMode(A1, INPUT); //Analog Input Potentiometer //declare pin A1 sebagai INPUT delay(100); //letak sedikit delay untuk Serial bermula dengan stabil }//penutup Void Setup void loop() { // masukkan code utama di sini, untuk program yang berulang dataSensor = analogRead(A1); dataBaru = map(dataSensor, 0, 1023, 0, 255); //map dan convert dataSensor dari range 0~1023 //kepada dataBaru range 0~255 Serial.print(" dataBaru = "); Serial.println(dataBaru); //printkan value dataBaru dalam Serial Monitor delay(20);//delay 20milisecond adalah yang terlaju //Serial print juga akan lebih stabil //elakkan menggunakan delay yang lebih rendah } //penutup Void Loop
Atau, anda boleh download file sketch .ino untuk tutorial ini di URL berikut:
Setelah sketch diupload, buka Serial Monitor.
Paparan Serial Monitor akan kelihatan seperti di bawah:

Berbeza dengan Tutorial 6 sebelum ini yang memaparkan nilai dari 0~1023, kali ini, selepas penggunaan Fungsi-Mapping, paparan data adalah dari 0~255.
Dengan teknik manipulasi data seperti ini, anda sudah boleh mengawal PWM output dengan potentiometer, dan juga jika di-map-kan data tersebut kepada 0~180, anda sudah boleh mengawal Servo motor.
Teruskan dengan Tutorial #8 melalui URL di bawah:
Senarai Tutorial asas Arduino MatGyver.my :
- Langkah Pertama dengan Arduino
- Tutorial #1: Digital Output Arduino dengan LED
- Tutorial #2: Traffic Light!
- Tutorial #3: Digital Input dengan Push-Button
- Tutorial #4: Digital Input Advance
- Tutorial #5: Digital Input & Operasi Matematik
- Tutorial #6: Analog Input dengan Potentiometer
- Tutorial #7: Fungsi Mapping dan Analog Input
- Tutorial #8: Terang/Malap LED & PWM Output
- Tutorial #9: AUTO Terang/Malap LED & for() Loop
- Tutorial #10: Kawalan Servo dengan Servo.h Library
- Tutorial #11: