Project Arduino AnalogInput Potensiometer mengatur kecepatan BLINK

Contoh project analoginput terdapat pada aplikasi arduino IDE. Kegiatan ini merupakan rangkaian bawaan dari aplikasinya. Sebagai pelajar anda bisa memanfaatkan sketch yang sudah disediakan oleh pihak developer.

Sketch AnalogInput ini bisa bekerja dengan baik jika difasilitasi dengan komponen yang tepat. Komponen-komponen ini akan menampung atau mengirim sinyal ke microcontroller yang kerja sesuai sketch yang kita gunakan tersebut.
Project Arduino AnalogInput Potensiometer mengatur kecepatan BLINK
Kita menamai project kali ini dengan AnalogInput Potensiometer. Dimana Potensiometer merupakan jenis resistor yang nilai tahanannya atau nilai resistansi dapat diubah sesuai dengan kebutuhan kita.

Selain itu, menggunakan Arduino kita bahkan dapat melihat berapa nilai yang dihasilkan oleh potensiometer ini dengan posisi tertentu. Kemudian dapat kita manipulasi sesuai dengan kebutuhan.

Potensiometer ini kita manfaatkan mengatur kecepatan BLINK! lampu LED. Jika anda putar tripod potensio ke kanan, kedipan LED akan semakin cepat, bahkan seperti tidak berkedip.

Sebaliknya, apabila anda putar potesio ke kiri, LED akan berkedip semakin lambat, bahkan lebih dari satu detik setiap kedipan.

Apa saja bahan atau peralatan yang harus kita siapkan, berikut:

1 buah Arduino

1 buah Breadboard

1 buah Potensiometer

1 buah Led

6 buah Kabel Jumper

Skema rangkaian yang kita buat seperti gambar dibawah ini:
Project Arduino AnalogInput Potensiometer mengatur kecepatan BLINK
  1. Rangkai 5V dan GND dari Arduino ke Breadboard.
  2. Rangkai kaki kanan Potensiometer ke VCC.
  3. Rangkai kaki kiri Potensiometer ke GND.
  4. Rangkai kaki tengah Potensiometer ke pin A0 Arduino.
  5. Kaki LED positif ke VCC, dan kaki negatif ke PIN 13.
Untuk sketchnya, kita dapat mengunakan sampel pada arduino IDE, yaitu dengan mengakses File=>Examples=>Analog=>AnalogInput. Selain itu, kita juga dapat menggunakan kode dibawah ini, silahkan copy paste sketch ini:
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);
}
Penjelasan skecth:
Pada bagian int sensorPin = A0; digunakan untuk  membuat pin A0 menjadi variabel sensorPin dan karena PIN A0 adalah input analog, karena pada void setup tidak perlu dibuat program pinMode(sensorPin, INPUT); karena kalau pin analog sudah pasti INPUT, tidak dapat digunakan  untuk OUTPUT.

Bagian beriktunya adalah pengingat kembali fungsi dari sensorValue = analogRead(sensorPin); merupakan untuk menyimpan nilai baca dari sensorPin kedalam variabel sensorValue.

Sementara bagian delay(sensorValue); kita digunakan untuk memberikan waktu jeda berdasarkan nilai yang keluar dari sensorPin, jadi kecepatan lampu berkedip berdasarkan potensiometer.

Membaca Nilai Potensiometer  dan  Mengatur Terang Redup Cahaya LED (AnalogInOut)

Kita masih menggunakan rangkaian yang sama, hanya saja PIN 13 dari kaki negatif LED kita pindakan ke PIN 9 pada arduino. Kita akan menggunakan sketch program yang berbeda dari sebelumnya, untuk membaca nilai potensiometer.

Adapun kisaran harga dari potensiometer yaitu 0 - 225. Dimana ketika 0 mengisyaratkan tidak ada hambatan, sementara ketika nilai 225 adalah isyarat hambatan posisi maksimal.

Dalam hal membaca nilai potensiometer dengan arduino kali ini, gunakap program bawaan arduino IDE. Silahkan buka FILE => EXAMPLES => ANALOG => ANALOGINOUT.
Agar lebih cepat boleh salin ulang sketch berikut ini:

// These constants won't change. They're used to give names to the pins used:
const int analogInPin = A0;  // Analog input pin that the potentiometer is attached to
const int analogOutPin = 9; // Analog output pin that the LED is attached to

int sensorValue = 0;        // value read from the pot
int outputValue = 0;        // value output to the PWM (analog out)

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600);
}

void loop() {
  // read the analog in value:
  sensorValue = analogRead(analogInPin);
  // map it to the range of the analog out:
  outputValue = map(sensorValue, 0, 1023, 0, 255);
  // change the analog out value:
  analogWrite(analogOutPin, outputValue);

  // print the results to the Serial Monitor:
  Serial.print("sensor = ");
  Serial.print(sensorValue);
  Serial.print("\t output = ");
  Serial.println(outputValue);

  // wait 2 milliseconds before the next loop for the analog-to-digital
  // converter to settle after the last reading:
  delay(2);
}
Agar dapat mengakses nilai yang dihasilkan dari Potensiometer kita bisa pilih TOOLS => SERIAL MONITOR atau CTRL + SHIFT + M, atau klik tombol yang ada di pojok kanan.
Project Arduino AnalogInput Potensiometer mengatur kecepatan BLINK
Pembacaan Nilai Potensio

Project Arduino AnalogInput Potensiometer mengatur kecepatan BLINK

Penjelasan Singkat:
Nilai const int analogInPin = A0; program seperti sama seperti sebelumnya digunakan  untuk membuat variabel, tambahan kode const sebelum int adalah untuk penetapan nilai.

Bagian Serial.begin(9600); berfungsi agar arduino bisa berkomunikasi dengan komputer, 9600 adalah salah satu nilai yang dipilih untuk komunikasi.

Pada outputValue = map(sensorValue, 0, 1023, 0, 255); nilai yang dihasilkan dari sensorValue adalah 0-1023, nilainya akan dikonversi menjadi 0-225 pada variabel outputValue.

Segmen analogWrite(analogOutPin, outputValue); menyalakan LED menggunakan PWM (agar bisa diatur terang cahanya berdasarkan outputValue.

Komponen Serial.print(“sensor = ” ); berguna untuk menampilkan teks yang ada didalam tanda kutip “sensor=“.

Bagian Serial.print(sensorValue); untuk menampilkan nilai yang ada pada sensorValue.

Unit Serial.print(“t output = “); berguna untuk menampilkan teks yang ada didalam tanda kutip “t output=“.

Nilai Serial.println(outputValue); untuk menampilkan nilai yang ada pada outputValue.

UNTUK LEBIH KREATIF LAGI

Berdasarkan pembacaan nilai potensiometer ini dapat kita gunakan lebih kreatif lagi. Contohnya membuat hasil yang lebih pasti berdasarkan rangkaian seperti pada Gambar pembacaan nilai potensiometer, kamu bisa membuat sketch program seperti;

Ketika nilai potensiometer < 100 lampu merah menyala, namun nilai potensiometer < 150 lampu kuning menyala, dan juga saat nilai potensiometer < 200 lampu hijau menyala.

Untuk dapat membuat program seperti ini, tentu saja kita membutuhkan kode if. Sebagai contoh:

if ( outputValue < 100) {
digitalWrite(LEDmerah, HIGH);
}
Selamat berkreasi tanpa batas, demi memajukan Arduino Indonesia.