06 Januari 2012

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 ohm1 buah resistor 330 ohm1 buah LEDKabel 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 milliseconds:
delay(sensorValue);
// turn the ledPin off:
digitalWrite(ledPin, LOW);
// stop the program for for 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.

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:

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

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

View the original article here

Ikuti Blog ini

Langganan

Mau dapet Update-an Blog ini lewat e-mail? Masukkin aja alamat Email kamu disini:

Dikirim Oleh FeedBurner