Tutorial Arduino – Potentiometers

PotentiometerArduinoSchematic300

Ide Dasar

Pada Tutorial Arduino – Push Buttons, kita belajar menggunakan Arduino untuk membaca input. Tutorial kali ini akan menjelaskan cara membaca input dari pin analog Arduino. Arduino mempunya 6 pin analog yang dapat membaca input berupa voltase (dari 0 sampai 5 volts) dan mengkonversikannya ke angka digital antara 0 (0 volts) dan 1024 (5 volts), yaitu pembacaaan dengan resolusi 10 bit. Salah satu komponen yang dapat mengeksploitasi tegangan input ini adalah potentiometer atau biasa disebut juga variable resistor. Potentiometer yang terhubung dengan tegangan 5 volts akan memberikan keluaran tegangan antara 0 dan 5 volts pada pin bagian tengahnya, tergantung pada sudut diputarnya potentiometer tersebut. Kita kemudian dapat menggunakan tegangan keluaran ini sebagai sebuah variabel di dalam program kita.

Rangkaian

Komponen yang diperlukan:

  • 1 buah potentiometer 10K ohm
  • 1 buah resistor 330 ohm
  • 1 buah LED
  • Kabel jumper

Skema rangkaian dapat dilihat pada gambar berikut:

Skema rangkaian potentiometer dengan Arduino

Berikut ini adalah gambar simulasi penempatan komponen pada breadboard dan board Arduino. Gambar simulasi ini menggunakan software Fritzing yang bisa didapat di sini.

Potentiometer for Arduino

Kode Pemrograman

Di bawah ini adalah kode pemrograman yang digunakan untuk potentiometer. Tidak perlu mengetiknya karena sudah tersedia pada software Arduino. Klik menu File > Examples > 3.Analog > AnalogInput.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
  Analog Input
 Demonstrates analog input by reading an analog sensor on analog pin 0 and
 turning on and off a light emitting diode(LED)  connected to digital pin 13.
 The amount of time the LED will be on and off depends on
 the value obtained by analogRead().

 The circuit:
 * Potentiometer attached to analog input 0
 * center pin of the potentiometer to the analog pin
 * one side pin (either one) to ground
 * the other side pin to +5V
 * LED anode (long leg) attached to digital output 13
 * LED cathode (short leg) attached to ground

 * Note: because most Arduinos have a built-in LED attached
 to pin 13 on the board, the LED is optional.

 Created by David Cuartielles
 Modified 4 Sep 2010
 By Tom Igoe

 This example code is in the public domain.

 http://arduino.cc/en/Tutorial/AnalogInput

 */


int sensorPin = A0;    // select the input pin for the potentiometer
int ledPin = 13;      // select the pin for the LED
int sensorValue = 0;  // variable to store the value coming from the sensor

void setup() {
  // declare the ledPin as an OUTPUT:
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);
  // turn the ledPin on
  digitalWrite(ledPin, HIGH);
  // stop the program for <sensorValue> milliseconds:
  delay(sensorValue);
  // turn the ledPin off:
  digitalWrite(ledPin, LOW);
  // stop the program for for <sensorValue> milliseconds:
  delay(sensorValue);
}

Membuat Perubahan

Beberapa perubahan yang dapat kita lakukan pada program di atas:

  • Memicu keluaran pada saat ambang batas terlewati

Kadang kita agar program kita dapat memicu suatu keluaran pada saat nilai masukan melewati suatu ambang batas yang telah kita tentukan sebelumnya. Untuk melakukan ini dengan potentiometer, rubah kode pada loop () menjadi seperti berikut:


38
39
40
41
42
43
44
45
void loop() {
  int threshold = 512;
  if(analogRead(sensorPin) > threshold) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

Perubahan pada seperti kode di atas akan menyebabkan LED hidup apabila nilai masukan dari potentiometer melewati 512, kira-kira pertengahan antara nilai minimum dan maksimum. Anda dapat merubah sensitivitas dengan merubah nilai ambang batas yang dipakai.

  • Fading

Tingkat kecerahan dari LED dapat dikendalikan langsung dari potentiometer. Untuk melakukan hal ini, pertama kita harus merubah pin yang terhubung pada LED. Pindahkan kabel jumper yang terhubung pada pin 13 ke pin 9, rubah juga pada baris kode-nya.

int ledPin = 13; —-> int ledPin = 9;

Kemudian rubah kode pada loop () menjadi seperti berikut:


38
39
40
41
void loop() {
  int value = analogRead(sensorPin) / 4;
  analogWrite(ledPin, value);
}

Upload kode setelah dirubah dan perhatikan bahwa LED akan berubah tingkat kecerahannya sesuai perubahan pada putaran potentiometer.

Catatan: Kita membagi nilai masukan dari pin sensor dengan 4 karena fungsi analogRead() menghasilkan nilai dari 0 sampai 1024 (10 bit), sedangkan fungsi analogWrite() menerima nilai dari 0 sampai 255 (8 bit).

  • Mengendalikan Servo

Berikut ini adalah contoh aplikasi yang cukup menarik tentang memakai beberapa komponen secara bersamaan. Hubungkan servo mikro dengan Arduino seperti yang telah dijelaskan pada tutorial dengan servo di sini. Kemudian buka program Knob (File > Examples > Servo > Knob).

Upload kode dan perhatikan servo mikro yang sekarang akan ikut berputar ketika potentiometer diputar.

Hmm…tambah seru nih tutorialnya. Selamat mencoba dan berkreasi!

Print Friendly

Leave a Reply

Your email address will not be published. Required fields are marked *