Tutorial Menggunakan dan Memprogram Servo dengan Arduino

Gambar
 Tutorial Menggunakan dan Memprogram Servo dengan Arduino Penjelasan Singkat Servo  Motor Servo adalah jenis aktuator elektromekanis yang tidak berputar secara kontinu seperti motor DC atau motor stepper. Motor jenis ini digunakan dimana rotasi kontinu tidak diperlukan sehingga tidak digunakan untuk mengendalikan roda (kecuali servo ini dimodifikasi). Motor servo dapat digunakan untuk mengotrol kemudi mobil, sebagai pengatur lengan dan kaki robot dan sebagainya. Salah satu contoh servo yaitu Motor Servo SG90. Motor Servo SG90 adalah sebuah motor servo kecil dengan output power yang tinggi. Motor ini dapat berotasi sekitar 180 derajat dan bisa bekerja seperti servo standar lainnya hanya saja ukurannya lebih kecil.                                           Rangkaian Tutorial Servo Tabel 1. Rangkaian  Servo Arduino Kabel Hitam Gnd(Ground) Kabel Merah 5V Kabel Kuning pin 9 Setelah rangkaian dipasang selanjutnya kita

Komunikasi Serial Arduino dan I2C

 Komunikasi Serial Arduino dan I2C




Penjelasan Singkat

Komunikasi serial Arduino adalah Komunikasi antara Arduino Uno dan Komputer dapat dilakukan melalui port USB. Dalam hal ini, Arduino Uno tidak hanya bisa mengolah data dari pin I/O secara independ.

Tetapi dapat juga dikomunikasikan dengan komputer untuk ditampilkan hasil dari pengolahan datanya sehingga komunikasi yang dilakukan bersifat dua arah.

Pada Arduino IDE terdapat fasilitas untuk berkomunikasi dua arah melalui serial monitor yang dapat dimanfaatkan dalam berbagai keperluan.

Dengan menggunakan fasilitas ini, dapat dikirimkan data ke Arduino Uno dan sebaliknya dapat membaca kiriman dari arduino uno.

Tentu saja, hal ini memungkinkan dapat mengontrol Arduino Uno melalui komputer dan memantau sesuatu yang sedang terjadi di Arduino Uno.

Untuk itu kita akan membahas satu contoh komunikasi serial 2 arduino dan komunikasi I2C LCD.


Komunikasi Serial Arduino dan I2C

Kita akan menggunakan 2 Arduino, sebagai penerima (received) dan pengirim (transmitter). Lalu ada inputan menggunakan button dan output nya menggunakan LED dan LCD.


PROTEUS

Tutorial ini akan menggunakan proteus untuk mendemo kan contoh kali ini. Jadi bisa disesuaikan untuk rangkaian di proteusnya.

Konfigurasi PIN :


Arduino Pengirim

Pin Arduino 1 TX Pin Komponen
7 btn 1
6 btn 2
5 btn 3
A4 SDA
A5 SCL

Arduino Penerima 

Pin Arduino 2 RX Pin Komponen
8 Led
A4 SDA
A5 SCL

Lcd dan I2C

LCD pin I2C
VSS GND
VDD Power/DC
RS/4 P0/4
RW/5 P1/5
E/6 P2/6
D4/11/ P4/9
D5/12 P5/10
D6/13 P6/11
D7/14 P7/12
A0,A1,A2 GND

Setelah membuat rangkaiannya, selanjutnya masuk ke program arduino. Berikut code dan penjelasannya :

PROGRAM ARDUINO

Pada contoh komunikasi serial ini kita menggunakan 2 Arduino, jadi akan ada dua program. program yang pertama adalah arduino pengirim sebagai pengirim data dan kedua arduino penerima sebagai penerima data.

Program Arduino Pengirim


//------------------------ COPYRIGHT YT CHANNEL : ARIN CANTIKA MUSI -------------------------------//
//--------------------------- COPYRIGHT  Kumpulan Tips and Trik ----------------------------------//
//-------------------------------- KOMUNIKASI SERIAL ARDUINO -------------------------------------//
//------------------------------------ ARDUINO PENGIRIM -----------------------------------------//


#include <Wire.h> // Penggunaan Library I2C yang tersedia pada arduino
#include <LiquidCrystal_I2C.h> //Library LCD
LiquidCrystal_I2C lcd(0x20,16,2); //set address I2C dan besar karakter untuk lcd

#define btn1 7 //define (tipedata) > deklarasi variable btn pada pin di arduino
#define btn2 6
#define btn3 5

String a = "KEDIP"; //Inisialisasi pada variable a,b,c
String b = "HIDUP";
String c = "MATI";
String data;
//int dataint;
void setup() {
   Serial.begin(9600);
 //Serial.begin : untuk menentukan kecepatan pengiriman dan penerimaan data melalui port serial. Kecepatan yang umum digunakan adalah 9600 bit per detik (9600 bps).

 pinMode(btn1, INPUT_PULLUP);
 pinMode(btn2, INPUT_PULLUP);
 pinMode(btn3, INPUT_PULLUP); 
 
 lcd.init(); //inisialisasi LCD
 

 
}

void loop() {

 lcd.setCursor(0,0);  //mengatur tulisan yang muncul di LCD pada posisi (x,y)
 lcd.print("Ini Pengirim"); 
 lcd.setCursor(0,1);
 if(Serial.available()) {
  data = Serial.read();
  Serial.print(data);
  lcd.print(data);
 }
 
  int n1 = digitalRead(btn1);
  int n2 = digitalRead(btn2);
  int n3 = digitalRead(btn3);
 
// Untuk membaca nilai button dan disimpan pada variabel

 if (n1 == 0) {
 Serial.print(a); //
 lcd.setCursor(0,1); //KEDIP
 lcd.print(a);//KEDIP
 delay(500);
 lcd.clear();
 }
// Jika nilai button LOW/button ditekan maka akan terjadi kondisi di atas, yaitu menampilkan nilai a = "KEDIP" pada cursor led X=0, Y=1; dan ditampilkan dengan lcd.print() dengan lama tampil sebesar 500 ms. Kemudian tulisan akan dihapus pada layar dengan fungsi lcd.clear(). 

 if (n2 == 0) {
  Serial.print(b);
  lcd.setCursor(0,1);
  lcd.print(b); //HIDUP
  delay(500);
  lcd.clear();
 }
// Jika nilai button LOW/button ditekan maka akan terjadi kondisi di atas, yaitu menampilkan nilai b = "HIDUP" pada cursor led X=0, Y=1; dan ditampilkan dengan lcd.print() dengan lama tampil sebesar 500 ms. Kemudian tulisan akan dihapus pada layar dengan fungsi lcd.clear(). 

 if (n3 == 0) {
  Serial.print(c);
  lcd.setCursor(0,1);
  lcd.print(c); //MATI
  delay(500);
  lcd.clear();
 }

// Jika nilai button LOW/button ditekan maka akan terjadi kondisi di atas, yaitu menampilkan nilai c = "MATI" pada cursor led X=0, Y=1; dan ditampilkan dengan lcd.print() dengan lama tampil sebesar 500 ms. Kemudian tulisan akan dihapus pada layar dengan fungsi lcd.clear(). 
}

////-------------------------------- Jangan Lupa Subscribe channel youtube : Arin Cantika Musi --------------------------////
////----------------------------------------- Untuk video pembelajaran menarik lainnya ---------------------------------////
/// Share jika bermanfaat beserta sumbernya ////

Program Arduino Penerima


//-------------------------------------- COPYRIGHT YT CHANNEL : ARIN CANTIKA MUSI --------------------------------------------//
//-------------------------------------------- KOMUNIKASI SERIAL ARDUINO ----------------------------------------------------//
//------------------------------------------------- ARDUINO PENGIRIM -------------------------------------------------------//


#include <Wire.h> // Penggunaan Library I2C yang tersedia pada arduino
#include <LiquidCrystal_I2C.h> //Library LCD
LiquidCrystal_I2C lcd(0x20,16,2); //set address I2C dan besar karakter untuk lcd

int pinled = 8; //mendeklarasi pinled pada pin 8 di arduino

void setup() {
 // put your setup code here, to run once:
 Serial.begin(9600); //: untuk menentukan kecepatan pengiriman dan penerimaan data melalui port serial. Kecepatan yang umum digunakan adalah 9600 bit per detik (9600 bps).

 lcd.init(); //inisiasi lcd
 pinMode(pinled, OUTPUT); //PinMode menginisialisasi led sebagai OUTPUT

 lcd.clear(); //menghapus tampilan LCD
 lcd.setCursor(0,0); //mengatur posisi kursor pada x 0 y 0
 lcd.print("Ini Penerima"); //menulis kata
 Serial.flush(); // berfungsi sebagai untuk pengosongan data pembacaan yang ditaruh pada buffer
}

void loop() {
 // put your main code here, to run repeatedly:
  String data =""; //Variabel untuk menyimpan nilai String yang didapat dari pengirim
  
 while (Serial.available() > 0){
  data += (char) Serial.read();
 delay(5); }
// Selama Serial.variable > 0 maka variabel data akan terus menyimpan dan bertambah 1 dari pembacaan Serial.read()/Pembacaan serial dari pengirim

 lcd.setCursor(0,0);
 lcd.print("Ini Penerima");
 delay(50);
// Menampilkan tulisan pada lcd dengan posisi X=0, Y=0 dengan lama 50 ms
 
  if (data == "KEDIP") {
  digitalWrite(pinled,HIGH);
  delay(100);
  digitalWrite(pinled,LOW);
  delay(50);
 lcd.setCursor(0,1);
 lcd.print(data);
 delay(50);
 lcd.clear();
 }
// Jika kondisi diatas memenuhi/ Serial yang dibaca adalah "KEDIP" maka LED akan HIGH dan LOW dengan delay diatas, kemudian akan tampil sebuah kaata sesuai data yang dikirimkan.

 else if (data == "HIDUP") {
   digitalWrite(pinled,HIGH);
 lcd.setCursor(0,1);
 lcd.print(data);
 delay(50);
 lcd.clear();
 }
// Jika kondisi diatas memenuhi/ Serial yang dibaca adalah "HIDUP" maka LED akan HIGH dengan delay diatas, kemudian akan tampil sebuah kata sesuai data yang dikirimkan.

 else if (data == "MATI") {
  digitalWrite(pinled,LOW);
 lcd.setCursor(0,1);
 lcd.print(data);
 delay(50);
 lcd.clear();
 } 
// Jika kondisi diatas memenuhi/ Serial yang dibaca adalah "MATI" maka LED akan LOW dengan delay diatas, kemudian akan tampil sebuah kata sesuai data yang dikirimkan.
}


////-------------------------------- Jangan Lupa Subscribe channel youtube : Arin Cantika Musi --------------------------////
////----------------------------------------- Untuk video pembelajaran menarik lainnya ---------------------------------////
/// Share jika bermanfaat beserta sumbernya ////


Sekian dulu tips dan trik kali ini, semoga bermanfaat dan dapat dipahami teman-teman. 

Jika ada yang kurang jelas dan ingin bertanya ataupun request bisa di kolom komentar ya!


Untuk penjelasan lebih bisa di cek pada link youtube berikut : 

PENJELASAN KOMUNIKASI SERIAL ARDUINO


Terima kasih dan Have a nice day !!

Komentar

Posting Komentar

Postingan populer dari blog ini

Kumpulan Soal UTG dan JPU Universitas Telkom Terlengkap!!!

Tutorial Menggunakan dan Memprogram Servo dengan Arduino