Dalam Tutorial ini, anda akan pelajari bagaimana menggunakan potentiometer sebagai Input-Analog pada Arduino. Signal Analog dari Potentiometer akan dipaparkan dalam Serial Monitor.
Dalam dunia electronics, terdapat 2 jenis signal Analog yang utama, iaitu :
- Input Voltan (Volts)
- Input Current (Amps)
Lain sistem mempunyai range Voltan dan range Current yang berlainan. Bagi Arduino, asas Analog-Inputnya menggunakan Voltan 5-Volt, dan signal Analog 5-Volt tersebut akan diubah ke dalam bentuk Digital oleh peripheral ADC (Analog-to-Digital Converter) dalam MCU Arduino.
ADC dalam Arduino adalah ADC 10-bit, di mana, range signal dari 0-Volt ke 5-Volt akan di-convert kepada range nombor 10-bit, iaitu dari 0 ke 1023.
Apabila anda cuba paparkan Signal Analog ini ke dalam Serial Monitor, anda pasti akan mendapat bacaan nombor dari 0~1023 . Juga, sebagai contoh, apabila signal Analog yang diterima adalah 2.5-Volt iaitu separuh dari 5-Volt, maka Serial Monitor juga akan memaparkan nilai yang separuh dari 1023, iaitu 512.
Teruskan dengan Tutorial ini untuk memahami dengan lebih lanjut mengenai ADC dan Analog Input.

Perkara Asas Sebelum Mulakan Tutorial
Bagi menggunakan pin Analog algorythm berikut perlu digunakan:
- Declare Pin, dalam Void Serup()
pinMode(A1, INPUT); //tukar A1 kepada mana-mana A0---A5
- Membaca Input Analog
analogRead(A1);//memberikan value 0~1023
Untuk mengetahui lebih lanjut mengenai Analog Input dan potentiometr, anda boleh baca artikel berikut:
Teruskan dengan Tutorial ini, bagi memaparkan
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 #6 : Analog Input //Code disediakan oleh MatGyver.my int nilaiSensor; //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); //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 nilaiSensor = analogRead(A1);//baca bacaan sensor dengan READ //simpan nilai sensor dalam nilaiSensor Serial.println(nilaiSensor); //printkan value nilaiSensor 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:

Di satu hujung putaran Potentiometer, paparan Serial Monitor akan menunjukkan nilai 0. Apabila, Potentiometer diputar ke arah berlawanan, nilai paparan akan meningkat sehingga 1023 pada maksimum putaran.
Dengan mengetahui nilai bacaan dari Analog input, data 0~1023 tersebut dapat dimanipulasi untuk digunakan dalam pelbagai applikasi dan autmasi seperti robot dan lain-lain lagi.
Nota Kaki : Bacaan input dapat disongsangkan dengan menukar tempat pin GND dengan 5V.
Tutorial Tambahan – PS2 Joystick

PS2 Analog Joystick di atas, mempunyai 2 Potentiometer yang bertindak membaca posisi Joystick pada X-axis dan Y-axis. X-axis output ditandakan dengan VRx manakala Y-axis ditandakan dengan VRy, manakala Ground dan 5V telah disekalikan.
Apa yang anda perlu tahu, module joystick ini mempunyai spring yang menge-tengah-kan joystick apabila dilepas.Oleh itu, anda bole expect bacaan nilai setiap Potentiometer sepatutnya berada pada lebih kurang 512 tanpa digerakkan joystick.
Teruskan dengan Tutorial Bonus ini.
LANGKAH #1 : SAMBUNGAN LITAR
Sambungkan litar anda seperti gambarajah berikut:

Pin VRx disambung pada pin A1 dan pin VRy disambung pada pin A2.
LANGKAH #2 : CODING/SKETCH
Copy sketch di bawah dan pastekan dalam Arduino IDE anda.
//Tutorial #6 : Analog Input Bonus //Code disediakan oleh MatGyver.my int nilaiSensorX; int nilaiSensorY; //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); //PIN VRx //declare pin A1 sebagai INPUT pinMode(A2, INPUT); //PIN VRy //declare pin A2 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 nilaiSensorX = analogRead(A1); //simpan nilai sensor VRx dalam nilaiSensorX nilaiSensorY = analogRead(A2); //simpan nilai sensor VRy dalam nilaiSensorY Serial.print("VRx ="); Serial.print(nilaiSensorX); Serial.print(" VRy ="); Serial.println(nilaiSensorY); //printkan value nilaiSensor 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:
PAPARAN SERIAL MONITOR

Seperti yang dijangka, bacaan untuk setiap axis joystick adalah hampir pada 512. Jika Joystick digerakkan kekiri-kanan-atas-bawah, nilai-nilai itu akan turut berubah.
Nilai-nilai bacaan inilah yang dapat digubah untuk membuat pengawalan robot dan juga pelbagai applikasi lain.
Teruskan dengan Tutorial #7 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:
One thought on “Tutorial #6: Analog Input dengan Potentiometer”