Membaca nilai Potensiometer dengan menggunakan Arduino

Membaca nilai Potensiometer dengan menggunakan Arduino

Potensiometer merupakan salah satu jenis resistor yang dapat diubah-ubah nilainya (Resistor Variabel). Potensiometer memiliki 3 buah kaki dan sebuah pemutar khusus untuk menentukan besar resistansi. Potensiometer sering digunakan untuk mengatur tegangan pada suatu rangkaian karena potensiometer bekerja dengan prinsip rangkaian pembagi tegangan.

Rangkaian Potensiometer dengan Arduino

Kita bisa menggunakan potensiometer sebagai input untuk mengatur berbagai komponen elektonik seperti LED dan motor dengan bantuan Arduino sebagai kontrolernya. Arduino akan digunakan untuk membaca nilai tegangan pada potensiometer lalu berdasarkan pembacaan nilai tegangan tersebut, Arduino memberi perintah output ke komponen output misalnya LED dan motor.

Sebelum kita mengontrol output dengan Arduino dan potensiometer, terlebih dahulu kita akan mempelajari cara kerja potensiometer yang dirangkaikan dengan Arduino dengan menggunakan serial monitor.

Gambar Rangkaian

Coding

int potPin = A3;
int nilaiPot;

void setup() {
  Serial.begin(9600);
}

void loop() {
  nilaiPot = analogRead(potPin);
  Serial.println(nilaiPot);
  delay(100);
}

Jika program sudah di upload, maka hasilnya akan seperti video berikut ini

Dari video diatas terlihat output pada serial monitor menunjukkan angka antara 0-1023 atau sebaliknya. mengapa demikian?

Arduino melalui pin analog (A0-A5) akan membaca tegangan antara 0-5 V dan merubahnya ke suatu nilai antara 0-1023. Jika tegangan yang terbaca pada potensiometer adalah 5V, maka Arduino akan menampilkan nilai 1023. Sebaliknya, jika nilai tegangan yang terbaca adalah 0V maka Arduino akan menampilkan nilai 0 pada serial monitornya. Nilai pada serial monitor akan berangsur-angsur berkurang ketika potensiometer diputar dan tegangan yang terbaca menurun sampai ke nilai 0.

Kita bisa melakukan pengukuran dengan multimeter untuk membuktikan keterangan diatas. Perhatikan video dibawah ini

Demikianlah cara membaca nilai potensiometer dan menampilkannya ke serial monitor. Dengan pengetahuan ini, kita bisa membuat berbagai macam project Arduino dengan menggunakan potensiometer.

Motor Servo dan Cara Mengontrolnya dengan Arduino

Motor Servo dan Cara Mengontrolnya dengan Arduino

Motor servo adalah salah satu jenis motor yang sering digunakan untuk membuat perangkat robotik. Motor servo memiliki keunikan tersendiri dibandingkan dengan motor DC biasa karena motor servo dapat berputar antara 0 – 180 derajat untuk tipe positional dan 0-360 derajat untuk yang bertipe continuous selain itu motor servo ini juga sangat akurat sehingga sering digunakan untuk sebagai penggerak lengan robot yang membutuhkan keakuratan posisi dalam mengambil atau meletakkan barang.

Menghubungkan Arduino dengan Servo

Sebelum menghubungkan motor servo ke Arduino, ada baiknya kita memperhatikan spesifikasi servo yang akan kita gunakan. Servo dengan spesifikasi dibawah 250 mA bisa langsung diberi tenaga dari pin power 5 volt yang terdapat pada Arduino, sedangkan servo yang memiliki kebutuhan arus diatas 250 mA harus di supply dengan menggunakan power supply terpisah. Untuk kabel signal (biasanya berwarna oranye) pada servo kita hubungkan ke salah satu pin digital Arduino yang memiliki kemampuan PWM (~). Perhatikan gambar berikut

Rangkaian servo dengan supply langsung ke Arduino
Rangkaian servo dengan power supply eksternal

Coding

#include <Servo.h> 

int servoPin = 9;

Servo myservo;

void setup() {
    servo.attach(servoPin);
}

void loop() {
    myservo.write(0);
    delay (2000);
    myservo.write(45);
    delay(1000);
    myservo.write(90);
    delay(1000);
    myservo.write(135);
    delay(1000);
    myservo.write(180);
    delay(1000);
}

Keterangan Program

#include <Servo.h> 

menambahkan library “Servo” kedalam sketch yang sedang ditulis

int servoPin = 9;

Memasukkan nomor pin yang digunakan kedalam variabel “servoPin”. nama variabel bisa disesuaikan dengan jumlah pin yang terhubung dengan servo. Misalnya, int servoPin1, int servoPin2, int servoPin3, dst.

Servo myservo;

memberikan nama object untuk setiap servo yang digunakan. jika servo yang digunakan lebih dari 1 maka bisa dibuat object name myservo1, myservo2, myservo3 dst.

servo.attach(servoPin);

Menghubungkan servo yang akan di kontrol oleh Arduino

myservo.write(45);

Menggerakkan servo kearah yang diinginkan. angka yang terdapat didalam kurung adalah posisi putaran servo. jika servo ingin digerakkan sejauh 90 derajat makan ketikkan myservo.write(90);

Jika program sudah berhasil di upload ke Arduino, maka hasilnya akan terlihat seperti video dibawah ini

Gimana? mudahkan?
selamat mencoba ya….

Mengukur jarak dengan sensor ultrasonik dan indikator LED

Mengukur jarak dengan sensor ultrasonik dan indikator LED

Pada tulisan sebelumnya, kita sudah mencoba untuk mengukur jarak dengan sensor ultrasonik (HC-SR04) yang outputnya ditampilkan melalui serial monitor. Kali ini kita akan mencoba untuk membuat alat pengukur jarak dengan menggunakan sensor yang sama dan menggunakan lampu LED sebagai indikatornya.

Cara kerja alat

Alat pengukur jarak ini akan mengukur jarak benda terhadap sensor ultrasonic dan menampilkan hasil pengukurannya lewat deretan lampu LED. Semakin dekat suatu benda dengan Sensor ultrasonik, semakin banyak lampu LED yang akan hidup.

Skema Rangkaian

Coding

untuk coding nya sama dengan program pada tulisan terdahulu tentang mengukur jarak dengan sensor ultrasonik (HC-SR04), hanya saja kita perlu melakukan penyesuaian dan menambahkan beberapa baris fungsi logika untuk menghidupkan LED berdasarkan jarak yang terbaca oleh Arduino.

int led1=2;
int led2=3;
int led3=4;
int led4=5;
int led5=6;

int trigpin = 10;
int echopin = 9;
long durasi;
long jarak;

void setup() {
  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
  pinMode(led3,OUTPUT);
  pinMode(led4,OUTPUT);
  pinMode(led5,OUTPUT);

  pinMode(trigpin,OUTPUT);
  pinMode(echopin,INPUT);
}

void loop() {
  digitalWrite(trigpin, LOW);
  delayMicroseconds(5);
  digitalWrite(trigpin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigpin, LOW);

  durasi = pulseIn(echopin,HIGH);
  jarak = (durasi/2) / 29.1;

  if (jarak<30){
    digitalWrite (led1, HIGH);
  }
  else{
    digitalWrite(led1,LOW);
  }

  if (jarak<40){
    digitalWrite (led2, HIGH);
  }
  else{
    digitalWrite(led2,LOW);
  }

if (jarak<50){
    digitalWrite (led3, HIGH);
  }
  else{
    digitalWrite(led3,LOW);
  }

if (jarak<60){
    digitalWrite (led4, HIGH);
  }
  else{
    digitalWrite(led4,LOW);
  }

if (jarak<70){
    digitalWrite (led5, HIGH);
  }
  else{
    digitalWrite(led5,LOW);
  }
}

Setelah program berhasil di upload, maka hasilnya akan terlihat seperti video dibawah ini:

Dari tampilan video diatas, terlihat bahwa semakin dekat suatu objek dengan sensor ultrasonik, maka semakin banyak lampu LED yang menyala.
Bagaimana? mudah kan?

Mengukur Jarak Dengan Sensor Ultra Sonic (HC-SR04)

Mengukur Jarak Dengan Sensor Ultra Sonic (HC-SR04)

HC-SR04 (Modul Sensor Ultra Sonik)

Modul HC-SR04 adalah modul yang digunakan untuk mengukur jarak dengan menggunakan gelombang ultra sonik.

Cara Kerja Modul

HC-SR04 terdiri dari 2 bagian utama yaitu pemancar gelombang suara dan penerima gelombang suara. Pada saat diberi tegangan, bagian pemancar akan memancarkan gelombang suara ultrasonik dan dan bagian penerima akan menunggu pantulan gelombang suara yang kembali akibat terhalang dengan benda padat. Waktu yang dibutuhkan oleh gelombang ultrasonic untuk berjalan dan memantul kembali lalu di konversi/di ubah menjadi jarak dengan persamaan jarak, waktu dan kecepatan.

Rangkaian Arduino dengan HC-SR04 (sensor ultrasonic)

ArduinoHC-SR04
D8Trig
D9Echo
5VVCC
GNDGND

Coding

int trigpin = 8;
int echopin = 9;
long durasi;
long jarak;

void setup() {
  Serial.begin(9600);
  pinMode(trigpin,OUTPUT);
  pinMode(echopin,INPUT);
}

void loop() {
  digitalWrite(trigpin, LOW);
  delayMicroseconds(5);
  digitalWrite(trigpin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigpin, LOW);

  durasi = pulseIn(echopin,HIGH);
  jarak = (durasi/2) / 29.1;

  Serial.print(jarak);
  Serial.println(" cm");
  delay(500);
}

langkah selanjutnya adalah mengupload kode yang telah kita tulis ke Arduino lalu mencoba hasilnya dengan melihat tampilan output pada serial monitor.
Selamat mencoba

Digital Input / Output pada Arduino

Digital Input / Output pada Arduino

Pada tulisan ini kita akan membahas tentang cara memfungsikan pin-pin digital pada Arduino sebagai pin input dan output. Pembahasan pada tulisan ini akan mencakup 3 fungsi program dalam Arduino yaitu : pinMode ( ), digitalWrite ( ), dan digitalRead ( ).

Fungsi pinMode ( )

pinMode berfungsi untuk mengkonfigurasikan pin digital sebagai input atau output. Pin digital yang di konfigurasikan sebagai input akan membaca value atau nilai yang diberikan oleh sensor, sebaliknya jika di konfigurasikan sebagai output, maka pin digital akan memberikan sinyal keluaran HIGH atau LOW kepada komponen/modul misalnya LED atau motor.

pinMode biasa dituliskan didalam void setup() karena biasanya hanya digunakan 1 kali saja

Syntax penulisan pinMode adalah:

pinMode (pin, mode);

Keterangan:

pinModemengkonfigurasikan atau mengatur pin menjadi I/O
pinnomor pin yang akan di konfigurasikan
modekonfigurasi pin sebagai INPUT atau OUTPUT

Contoh penggunaan:

//menjadikan pin 13 sebagai output

void setup(){
    pinMode (13, OUTPUT);
} 
//menjadikan pin 13 sebagai input

void setup(){
     pinMOde (13, INPUT);
}

Selain INPUT dan OUTPUT, terdapat mode INPUT_PULLUP yang akan kita bahas pada tulisan selanjutnya

Fungsi digitalWrite ( )

digitalWrite berfungsi untuk memberikan value atau nilai output HIGH atau LOW kepada salah satu pin digital Arduino. Nilai HIGH dan LOW ini bisa disamakan dengan ON dan OFF pada sebuah saklar, dimana HIGH berarti ON atau memberi tegangan 5V pada pin dan LOW berarti OFF yaitu memberikan tegangan sebesar 0V pada pin.

Untuk menggunakan digitalWrite, maka sebelumnya pin harus dikonfigurasikan sebagai OUTPUT dengan fungsi pinMode

Syntax penulisan digitalWrite adalah

digitalWrite(pin,value);

Keterangan:

digitalWritememberikan nilai output HIGH atau LOW pada pin
pinnomor pin
valueoutput HIGH atau LOW

Contoh Penggunaan

//menghidupkan LED yang terhubung dengan pin 13

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

void loop(){
    digitalWrite(13, HIGH);
}
//menghidup matikan LED yang terhubung pin 13
void setup() {
    pinMode (13,OUTPUT);
}

void loop() {
    digitalWrite(13,LOW);
    delay(1000);
    digitalWrite (13, HIGH);
    delay(1000);
}

Fungsi digitalRead ( )

digitalRead berfungsi untuk membaca nilai HIGH atau LOW dari sebuah pin digital. hasil pembacaan digital ini nantinya akan digunakan untuk menentukan tindakan yang harus dikerjakan oleh mesin yang kita buat. untuk menggunakan fungsi ini, pin digital harus di set sebagai INPUT melalui fungsi pinMode.

Syntax penulisan digitalRead adalah

digitalRead(pin)

Keterangan

digitalReadmembaca nilai digital (HIGH atau LOW) pada sebuah pin
pinnomor pin

Contoh Penggunaan digitalRead

/membaca nilai sensor yang dipasangkan ke pin 9 dan menampilkan hasil pembacaan di serial monitor

void setup(){
   Serial.begin (9600);
   pinMode(9, INPUT);
}

void loop(){
    int nilai = digitalRead(9);
    Serial.print(nilai)
}

Sampai disini dulu tulisan nya ya…

Semoga bermanfaat dan jangan kalau ada yang mau ditanyakan silahkan ketikkan pertanyaan kamu di kolom komentar.