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.

Arduino : Arduino IDE

Arduino : Arduino IDE

Apa itu Arduino IDE?

Arduino tidak dapat langsung digunakan tanpa di program terlebih dahulu. Untuk itu, dibutuhkan software yang dapat digunakan untuk memprogram Arduino agar dapat digunakan.

Arduino IDE adalah software untuk menulis program / sketch yang berupa perintah-perintah pembacaan input maupun perintah output kepada Arduino. Software ini bisa kita download langsung di situs resmi arduino yaitu arduino.cc/en/software

Saat ini terdapat 2 jenis software Arduino IDE yaitu Arduino IDE 2.0 dan Arduino IDE 1.8.X. Arduino IDE 2.0 memiliki banyak fitur baru diantaranya fitur auto-complete yang memudahkan kita mengetikkan perintah dan fungsi, sedangkan Arduino IDE 1.8.X adalah IDE arduino versi lama yang sangat ringan sehingga bisa dijalankan di komputer yang berusia cukup tua. Selain menggunakan IDE yang terinstal di komputer, kita juga menggunaka Arduino Web Editor untuk membuat program Arduino.

Antarmuka Arduino IDE 2.0.2

Antarmuka Arduino 1.8.x

untuk penggunaan software arduino IDE, kita akan pelajari sambil mempelajari cara pengendalian Arduino pada tulisan-tulisan berikutnya. Sekian dari saya, terima kasih dan semoga bermanfaat

Arduino : Apa itu arduino?

Arduino : Apa itu arduino?

Arduino adalah sebuah papan sirkuit tunggal yang digunakan untuk membuat prototype (purwarupa) elektronika terutama otomasi dan robotika.

Arduino sendiri terdiri dari 2 bagian pokok yaitu :

  • Hardware :Arduino board (papan sirkuit arduino)
  • Software : Arduino IDE (Integrated Development Environment atau software untuk memprogram Arduino.

Arduino Board

Arduino adalah papan sirkuit elektronik yang menggunakan sebuah microcontroller atau kendali mikro sebagai otak-nya. Selain microcontoller, Arduino juga sudah memiliki port power sebagai tempat masuknya arus listrik, port USB untuk mengupload program, dan pin-pin I/O yang dapat digunakan untuk membaca sensor dan melakukan perintah kontrol.

Arduino Uno

Bagian-Bagian Dari Arduino

1. Port USB

Port USB pada arduino berfungsi sebagai penghubung antara Arduino dengan komputer atau laptop untuk mengupload program. Selain itu, port USB ini juga berfungsi sebagai sumber tegangan 5 Volt yang cukup untuk menyalakan arduino.

2. Power Socket

Power Socket berfungsi sebagai penghubung antara sumber tegangan eksternal baik berupa baterai atau adaptor dengan Arduino. Sumber tegangan yang direkomendasikan adalah antara 5 Volt – 9 Volt DC. Berapapun tegangan yang diberikan dari sumber eksternal nantinya akan di ubah menjadi tegangan 5 Volt oleh regulator tegangan.

3. Mikrokontroler

Mikrokontroler adalah otak dari Arduino ini. Mikrokontroler adalah sejenis chip atau IC (Integrated Circuit) yang berfungsi sebagai pembaca sinyal input, memproses data nya dan mengontrol output. Cara kerja mikrokontroler ini mirip dengan cara kerja komputer pada umumnya namun lebih sederhana. Arduino UNO menggunakan mikrokontroler ATmega 328p sebagai otaknya dan Arduino Mega menggunakan ATmega 2560.

berikut ini adalah spesifikasi standar ATMega 328p:

Jumlah Pin28
RAM2 KB
Flash Memory (untuk menyimpan program)32 KB
EEPROM1 KB

4. Pin Power

Power pin pada Arduino Uno terdapat pada sisi kiri sejajar dengan pin analog input. blok pin ini terdiri dari 6 pin konektor yaitu:

Reset : Digunakan untuk melakukan reset atau menghidupkan ulang Arduino dari awal lagi. Untuk menggunakan pin reset ini, kita harus menghubungkannya ke GND atau 0 V dengan bantuan switch momentary.

3.3 V dan 5 V : pin ini memiliki tegangan masing-masing 3.3 V dan 5 V yang dapat digunakan untuk memberi tegangan ke sensor maupun ke perangkat output. berfungsi mirip dengan kutub positif pada baterai.

GND : pin ini adalah pin ground atau 0 V atau mirip dengan kutub negatif pada baterai.

5. Pin Analog Input

Pin analog input adalah pin yang berlabel A0 sampai A5. Pin ini berfungsi untuk mengukur besar tegangan atau beda potensial yang berasal dari sensor analog. Nilai pembacaan tegangan ini nantinya bisa digunakan dalam pembuatan alat kontrol nantinya.

Walaupun kelompok pin ini disebut Analog In yang memang diperuntukkan membaca nilai-nilai analog (tegangan) namun pin ini juga dapat digunakan sebagai pin digital sebagai input maupun output.

6. Pin Digital

Kelompok pin yang berikutnya adalah Pin digital. Pin digital ditandai dengan angka 0 – 13 pada Arduino UNO. Pin ini berfungsi sebagai input dan output. Pin digital akan memiliki tegangan sebesar 5 V ketika di fungsikan sebagai output dan memiliki kemampuan membaca nilai-nilai digital yang berasal dari sensor ketika di fungsikan sebagai input.

Sebagai output (keluaran), pin digital memiliki sifat yang sama dengan sebuah saklar, yaitu akan memiliki tegangan 5 V ketika di aktifkan dan sebaliknya akan bertegangan 0 V jika dinonaktifkan. Dengan tegangan 5V, pin digital ini bisa mensupply arus sebesar 40 mA.

Itulah tadi bagian-bagian dari sebuah Arduino, sebenarnya masih banyak lagi komponen-komponen lainnya yang perlu untuk kita ketahui, namun kita bisa mengenalinya sambil mempelajari materi-materi berikutnya. Sampai jumpa di tulisan-tulisan berikutnya, semoga bermanfaat.