Program Arduino: Analog Input Potensiometer!

Seperti yang kita tahu, Potensiometer adalah jenis resistor yang ukuran resistansinya atau nilai hambatannya bisa kita rubah sesuai dengan kebutuhan kita. Nah pada Arduino, bahkan kita bisa melihat berapa nilai yang dihasilkan oleh potensiometer pada posisi tertentu. Lalu bisa kita manipulasi sesuai dengan kebutuhan kita.

Nah untuk pertama kalinya kita akan coba membuat program, agar si Potensiometer ini dapat mengatur kecepatan BLINK! Dan yang harus kamu siapkan adalah:

  1. 1x Arduino BELI
  2. 1x Breadboard BELI
  3. 1x Potensiometer BELI
  4. 1x Led BELI
  5. 7x Kabel Jumper BELI

Buatlah rangkaian seperti gambar dibawah ini:

NOTES:

  • Hubungkan 5V dan GND dari Arduino ke Breadboard.
  • Hubungkan kaki kanan Potensiometer ke VCC.
  • Hubungkan kaki kiri Potensiometer ke GND.
  • Hubungkan kaki tengah Potensiometer ke pin A3 Arduino.
  • Untuk LED rangkaiannya tidak jauh berbeda dengan pembahasan sebelumnya.

***

Untuk programnya, kamu bisa  gunakan sampel pada File=>Examples=>Analog=>AnalogInput. Atau sallin ulang sketch ini:

byte sensor= A0;
byte led= 13;
int nilai;

void setup(){
pinMode(led, OUTPUT);
}

void loop(){
nilai= analogRead(sensor);

digitalWrite(led, HIGH);
delay(nilai);
digitalWrite(led, LOW);
delay(nilai);
}

NOTES:

  • int sensorPin = A0; digunakan untuk  membuat pin A0 menjadi variabel sensorPin dan karena pin AO adalah input analog, maka pada void setup tidak perlu dibuat program pinMode(sensorPin, INPUT); karena kalau pin analog sudah pasti INPUT, tidak bisa digunakan  untuk OUTPUT.
  • mengingat kembali fungsi dari sensorValue = analogRead(sensorPin); adalah untuk menyimpan nilai baca dari sensorPin kedalam variabel sensorValue.
  • delay(sensorValue); digunakan untuk memberikan waktu jeda berdasarkan nilai yang keluar dari sensorPin, jadi kecepatan lampu berkedip berdasarkan potensiometer.

***

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

Seperti yang kita tahu bahwa potensiometer adalah jenis resistor yang hambatannya  dapat berubah.

Masih dengan rangkaian yang sama (pin 13 dipindakan ke pin 9) kita akan membuat sketch program, untuk membaca nilai dari potensiometer. Yang mana kisaran nilai dari potensiometer adalah 0-225.
0 ketika tidak ada hambatan, dan 225 saat hambatan maksimal.

Untuk program kamu bisa buka FILE=>EXAMPLES=>ANALOG=>ANALOGINOUT.
Atau salin ulang sketch berikut ini:

byte sensor= A0;
byte led= 9;

int nilai;
int output;

void setup(){
  pinMode(led, OUTPUT);
  Serial.begin(9600);
}

void loop(){
  nilai= analogRead(sensor);
  output= map(nilai, 0, 1023, 0, 255);

  analogWrite(led, output);

  Serial.print("sensor: ");
  Serial.print(nilai);
  Serial.print("  ");
  Serial.print("output: ");
  Serial.print(output);

  delay(2);
}

untuk melihat nilai yang dihasilkan dari Potensiometer kamu bisa pilih TOOLS=>SERIAL MONITOR atau CTRL+SHIFT+M , atau klik tombol yang ada di pojok kanan.

NOTES:

  • const int analogInPin = A0; program seperti sama seperti sebelumnya digunakan  untuk membuat variabel, tambahan kode const sebelum int adalah untuk penetapan nilai.
  • Serial.begin(9600); berfungsi agar arduino bisa berkomunikasi dengan komputer, 9600 adalah salah satu nilai yang dipilih untuk komunikasi.
  • outputValue = map(sensorValue, 0, 1023, 0, 255); nilai yang dihasilkan dari sensorValue adalah 0-1023, nilainya akan dikonversi menjadi 0-225 pada variabel outputValue.
  • analogWrite(analogOutPin, outputValue); menyalakan LED menggunakan PWM (agar bisa diatur terang cahanya berdasarkan outputValue.
  • Serial.print(“sensor = ” ); berguna untuk menampilkan teks yang ada didalam tanda kutip “sensor=“.
  • Serial.print(sensorValue); untuk menampilkan nilai yang ada pada sensorValue.
  • Serial.print(“t output = “); berguna untuk menampilkan teks yang ada didalam tanda kutip “t output=“.
  • Serial.println(outputValue); untuk menampilkan nilai yang ada pada outputValue.

MARI LEBIH KREATIF!!!

Dengan membuat rangkaian seperti pada Gambar 1.5 B, kamu bisa membuat sketch program seperti;

  1. Jika nilai potensiometer < 100 lampu merah menyala, jika nilai potensiometer < 150 lampu kuning menyala, jika nilai potensiometer < 200 lampu hijau menyala.

Untuk membuat program seperti diatas tentu kamu membutuhkan kode if. Sebagai contoh:

if ( outputValue < 100) {
digitalWrite(LEDmerah, HIGH);
}

OK! Selamat mengerjakan 😉

14 Comments

    Rachmat Wibowo

    Kang,nuhun mau tanya bagaimana cara mengabungkan program antara sensor suhu dengan led?

    Reply
    Ajang Rahmat

    menyalakan led berdasarkan suhu ya maksudnya?

    silahkan buka postingan berikut:
    https://www.kelasrobot.com/2015/12/program-arduino-sensor-suhu-lm35.html

    Reply
    Unknown

    Mas klo bleh tau. Yg analogi out itu di upload juga atau cuma yg perintahnya aj,mohon pencerahannya

    Reply
    muhammad syaiful

    Gan kalo misal untuk sensor naik atau turun gimana? KAN ada 8 titik. Misal titik 2 ke 3 dianggap naik. Dan sebalikannya 8 ke 7, 4 ke 3 dianggap turun? Hanya ada 2 kondisi. Thanks

    Reply
    Subq Abdulqodir

    terima kasih kang ilmunya, mau tanya gimana kalo pake 2 potensimeter

    Reply
    DIY Corner

    Permisi Mas, utk hasil pembacaan potensionya yg dijadikan waktu delay, apa bisa dikalikan nilai tertentu untuk memperlama delaynya, misal nilai baca x 1.000.000. Saya butuh menghidupkan atau mematikan alat dalam orde jam bukan detik.
    Terima kasih sebelumnya

    Reply
      Ajang Rahmat

      bisa gan, diprogramnya dikalikan aja atau bisa juga dibuat mapping

      Reply
    La Tahzan

    Gan, kalo mencari program arduino informasi kuadran make potensio caranya gimana ?

    Reply
    bowor

    Mau tanya mas,itu kan utk 1 potensio 1 lampu, saya ingin menambah lebih banyak gimana ya kok gagal mulu kodenya di utak atik.

    Saya perlu minimal 3 potensio 3 output lampu led nya yg bisa redup terag. Terima kasih

    Reply
      bowor

      Mana kode yg harus di rubah atau di tambah

      Reply
        Ajang Rahmat

        yang harus ditambah mulai dari variabel misal potensio2
        terus bagian pinmode juga
        dan di void loop juga mas

        Reply
          bowor

          byte sensor= A0;
          byte led= 9;

          int nilai;
          int output;

          void setup(){
          pinMode(led, OUTPUT);
          Serial.begin(9600);
          }

          void loop(){
          nilai= analogRead(sensor);
          output= map(nilai, 0, 1023, 0, 255);

          analogWrite(led, output);

          Serial.print(“sensor: “);
          Serial.print(nilai);
          Serial.print(” “);
          Serial.print(“output: “);
          Serial.print(output);

          delay(2);
          }

          Lagi pakai HP susah buat edit. Minta di bantu satu potensio lagi gan sama lampu nya.

          Reply



Leave a Reply

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