9 Okt 2019

12 - Sensor Jarak

Sensor Jarak

Sensor jarak dapat mendeksi dimana keberadaan suatu objek, dapat digunakan untuk percobaan mengitung jarak, kecepatan, akselerasi dan dapat digunakan pada robot untuk menghindari suatu penghalang. Pada latihan ini akan membawa kamu mengetahui dasar bagaimana menggunakan sensor jarak ultrasonik untuk mengukur jarak dengan metoda sinyal suara.

Sensor Jarak Ultrasonik: sensor ini bekerja dengan cara mengirimkan sinyal suara dari sebuah pemancar, kemudian menghitung dibutuhkan waktu berapa lama ketika sinyal suara tersebut menabrak sebuah objek dan memantul diterima oleh sebuah penerima.

Kebutuhan Komponen:

— 1 x Arduino UNO
— 1 x Breadboard
— 1 x HC-SR04 Ultrasonik
— 6 x Kabel Jumper

Perakitan:

Rangkaian:

Upload Sketch:

Untuk mengisikan program ke board Arduino melalui PC/Laptop dapat menggunakan software Arduino IDE.

Apabila kamu tidak mau menggunakan PC/Laptop untuk mengupload sketch/program ke board Arduino, kamu masih bisa menggunakan handphone Android untuk mengisikan program ke Arduino menggunakan aplikasi Bluino Loader, cara uploadnya pun bisa dua cara melalui USB dengan menggunakan adapter OTG atau melalui Bluetooth.

Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) di bawah.
/*
  12 - Sensor Jarak

  Mengukur jarak benda yang berada didepan sensor ultrasonik HC-SR04 kemudian menampilkannya pada serial monitor
*/

int trigPin = 2;        //hubungkan dengan pin trigger pada sensor jarak      
int echoPin = 3;        //hubungkan dengan pin echo pada sensor jarak     

float distance = 0;           //menyimpat nialai jarak yang diukur oleh sensor

void setup() {
  Serial.begin (115200);      //memulai komunikasi dengan serial monitor

  pinMode(trigPin, OUTPUT);   //pin trigger mengeluarkan pulsa listrik
  pinMode(echoPin, INPUT);    //pin echo akan mengukur durasi pulsa balik yang dikeluarkan dari sensor
}

void loop() {
  distance = getDistance();   //variabel untuk menyimpan nilai jarak yang diukur oleh sensor

  Serial.print(distance,1);   //menampilkan jarak yang telah diukur pada serial monitor dengan 1 angka dibelakang koma
  Serial.println(" cm");      //menampilkan unit satuan setelah nilai
  delay(50);                  //jeda 50ms antara setiap pembacaan
}

//------------------FUNCTIONS-------------------------------

//Menghasilkan nilai jarak yang terukur oleh sensor jarak HC-SR04
float getDistance() {
  float echoTime;                   //variabel untuk menyimpan waktu yang diperlukan sebuah ping memantul dari sebuah objek
  float calcualtedDistance;         //variabel untuk menyimpan kalkulasi jarak dari echo time
  
  //mengirim sinyal pulsa ultrasonic yang lamanya 10ms
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10); 
  digitalWrite(trigPin, LOW);

  echoTime = pulseIn(echoPin, HIGH);      //menggunakan perintah pulsein untuk melihat seberapa lama waktu yang dibutuhkan
                                          //pulsa ubtuk memantul kembali ke sensor

  calcualtedDistance = echoTime / 58.26;  //menghitung jarak dari objek yang telah memantulkan pulsa (setengah waktu pantul dikalikan dengan kecepatan suara)
  
  return calcualtedDistance;              //kirim hasil nilai jarak yang telah dihitung
}

Cara menggunakan:

Buka serial monitor untuk melihat jarak yang terbaca oleh sensor jarak ultrasonik, kemudian gerakan tanganmu maju mundur didepan sensor dan amati apakah jarak yang terbaca oleh sensor sama dengan jarak sebenarnya.

14 - Pengendali Relay

Pengendali Relay

Pada latihan ini kamu akan membuat sebuah saklar pengendali seperti yang digunakan di industri pabrik untuk menghidupkan sebuah mesin menggunakan dua push button Start/ON dan Stop/OFF untuk mematikannya. Kamu dapat mencoba memperaktekanya untuk mengendalikan sebuah kipas angin, dengan cara menghubungkan kabel colokan kipas angin dengan kontak terminal pada modul relay sebelum dihubungkan ke sumber tegangan listrik.

Relay: pada dasarnya merupakan sebuah saklar mekanik yang dikontrol secara listrik. di dalam relay terdapat lilitan dengan inti besi yang akan berubah menjadi magnet ketika dialiri arus listrik dan menarik tuas saklar sehingga menyebabkan saklar menjadi kontak. Relay mempunyai pin NC (Normally Close), Pin NC kebalikan dari pin NO yaitu akan terhubung antara pin COM dengan NC ketika kondisi relay mati. Pin-pin kontak pada relay dapat digunakan sesuai dengan kebutuhan apakah dalam keadaan aktif nyala atau mati. Kedua pin NO dan NC juga dapat digunakan untuk dua peralatan yang nyalanya bergantian.

Kebutuhan Komponen:

— 1 x Arduino UNO
— 1 x Breadboard
— 1 x Modul Relay
— 2 x Push Button
— 2 x Resistor 10kΩ
— 10 x Kabel Jumper

Perakitan:

Rangkaian:


Upload Sketch:

Untuk mengisikan program ke board Arduino melalui PC/Laptop dapat menggunakan software Arduino IDE.

Apabila kamu tidak mau menggunakan PC/Laptop untuk mengupload sketch/program ke board Arduino, kamu masih bisa menggunakan handphone Android untuk mengisikan program ke Arduino menggunakan aplikasi Bluino Loader, cara uploadnya pun bisa dua cara melalui USB dengan menggunakan adapter OTG atau melalui Bluetooth.

Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) di bawah.
/*
  14 - Pengendali Relay

  Menyalakan dan mematikan relay dengan menggunakan dua push button START dan STOP.
*/


int startButton = 4;  //pin yang dihubungkan dengan push button start 
int stopButton = 5;   //pin yang dihubungkan dengan push button start
int relayPin = 8;    //pin yang dihubungkan dengan relay
int startButtonStatus = 0;    //variabel untuk menyimpan kondisi push button start
int stopButtonStatus = 0;     //variabel untuk menyimpan kondisi push button stop

void setup() { 
  pinMode(relayPin, OUTPUT);    //atur relayPin sebagai output
  pinMode(startButton, INPUT);  //atur relayPin startButton input
  pinMode(stopButton, INPUT);   //atur relayPin stopButton input

  digitalWrite(relayPin, LOW);  //biarkan kondisi relay mati pada kondisi awal
}

void loop() { 
  startButtonStatus = digitalRead(startButton);  //membaca kondisi pin startButton dan menyimpannya di startButtonStatus
  stopButtonStatus = digitalRead(stopButton);    //membaca kondisi pin stopButton dan menyimpannya di stopButtonStatus

  //memeriksa jika push button START kondisi HIGH, AND(&&) push button STOP kondisi LOW, jika ya nyalakan relay. 
  if (startButtonStatus == HIGH && stopButtonStatus == LOW) { 
    digitalWrite(relayPin, HIGH); 
  }

  //memeriksa jika push button START kondisi LOW, AND(&&) push button STOP kondisi HIGH, jika ya matikan relay.
  if (startButtonStatus == LOW && stopButtonStatus == HIGH) {
    digitalWrite (relayPin, LOW); 
  } 
}

Cara menggunakan:

Kamu seharusnya dapat mendengarkan suara klik ketika kontak relay aktif, dan melihat LED indikator pada modul relay menyala. Jadi ketika pertama kali Arduino dinyalakan kondisi relay mati, ketika kamu menekan push button ON maka relay akan aktif sebaliknya ketika menekan push button OFF maka relay akan mati.

09 - Motor Servo

Motor Servoo

Pada latihan ini kamu akan belajar bagaiman cara menghubungkan motor servo dan mengendalikannya dengan dengan sebuah potensiometer. Motor servo banyak digunakan pada pengendali mobil RC, pesawat RC, tangan robor dan masih banyak lagi perlatan yang memerlukan pergerakan secara presisi.

Motor Servo: terdapat tiga pin pada koneksi motor servo, power, ground dan sinyal. Ketika kamu memberikan pulsa listrik yang benar pada pin sinyal maka motor servo akan bergerak ke sudut putaran tertentu dan diam diposisi tersebut. Servo pada umumnya mempunya batas putaran gerak 0° sampai 180° walaupun ada yang dapat bergerak 360°. Sinyal yang diterima oleh motor servo berupa sinyal PWM yang sama seperti digunakan pada LED untuk mengatur kecerahannya.

Kebutuhan Komponen:

— 1 x Arduino UNO
— 1 x Breadboard
— 1 x Servo
— 8 x Kabel Jumper

Perakitan:

Rangkaian:

Upload sketch:

Untuk mengisikan program ke board Arduino melalui PC/Laptop dapat memakai software Arduino IDE.

Apabila kamu tidak mau menggunakan PC/Laptop untuk mengupload sketch/program ke board Arduino, kamu masih bisa menggunakan handphone Android untuk mengisikan program ke Arduino menggunakan aplikasi Bluino Loader, cara uploadnya pun bisa dua cara melalui USB dengan menggunakan adapter OTG atau melalui Bluetooth dengan tambahan komponen modul Bluetooth HC-05.

Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) di bawah.
[14:58, 10/7/2019] sugandi adi10: /*
  09 - Motor Servo

  Mengontrol posisi motor servo menggunakan potensiometer.
*/

#include    //menyertakan library untuk penggunaan motor servo
 
Servo myservo;       //membuat objek servo untuk mengontrol sebuah motor servo 
 
int servoPin = 9;    //pin yang terhubung dengan motor servo

int potpin = 0;  //menggunakan pin analog untuk dihubungkan ke potensiometer
int val;         //variabel untuk membaca nilai dari pin analog
 
void setup() 
{ 
  myservo.attach(servoPin);  //menghubungkan servo ke pin 9 ke objek servo 
} 
 
void loop() 
{ 
  val = analogRead(potpin);            //membaca nilai dari potentiometer (nilai antara 0 dan 1023) 
  val = map(val, 0, 1023, 0, 179);     //menskalan nilai supaya bisa digunakan dengan servo (nilai antara 0 dan 180) 
  myservo.write(val);                  //membuat posisi servo sesuai nilai yang diskalakan 
  delay(15);                           //jeda untuk menunggu servo selesai merubah posisi
}
Arduino library: untuk menulis kode perintah untuk mengirim sinyal PWM bisa kamu lakukan, namun akan menyita waktu karena perlu menuliskan cukup banyak baris kode dan kamu juga perlu mengetahui lebih jauh tentang motor servo. Beruntungnya pada sistem pemrograman Arduino sudah terdapat kumpulan baris kode perintah yang sudah disederhanakan sehingga hanya butuh menuliskan sedikit kode perintah jika ingin menjalankan fungsi yang cukup rumit, kumpulan baris kode perintah disebut sebagai library. #include adalah sebuah perintah "preprocessor" spesial untuk menyertakan sebuah library (atau file lain) kedalam sketch.

Library servo merupakan library bawaan Arduino untuk menambahkan beberapa perintah untuk dapat mengontrol sebuah servo. Sebagai persiapan supaya Arduino dapat mengontrol sebuah servo, terlebih dahulu kamu harus membuat "object" servo untuk setiap servo (dalam contoh ini object diberi nama ("myServo"), kemudian tuliskan perintah "attach" untuk menghubungkan ke pin digital (dalam contoh ini menggunakan pin 9).

Cara menggunakan:

Dengan memutar-mutar knob potensiometer searah atau berlawanan arah jarum jam, akan diikuti pergerakan yang sama oleh motor servo.

10 - Sensor DHT11

Sensor DHT11

Pada latihan ini akan menggunakan sensor DHT11 untuk mengukur suhu dan kelembaban, kemudian menampilkan hasil data pengukurannya pada serial monitor

Sensor DHT11: di dalam sensor terdapat dua bagian yaitu sebuah kapasitif sensor untuk mengukur kelembaban dan termistor untuk mengukur suhu, serta terdapat chip untuk merubah tegangan analog menjadi singal data digital yang dapat dengan mudah di baca oleh mikrokontroler.

Untuk dapat membaca data dari sensor ini oleh sebuah Arduino, diperlukan penggunaan library DHT yang dapat kamu download disini

Kebutuhan Komponen:

— 1 x Arduino UNO
— 1 x Breadboard
— 1 x DHT11
— 5 x Kabel Jumper

Perakitan:

Rangkaian:

Upload sketch:

Untuk mengisikan program ke board Arduino melalui PC/Laptop dapat menggunakan software Arduino IDE.

Apabila kamu tidak mau menggunakan PC/Laptop untuk mengupload sketch/program ke board Arduino, kamu masih bisa menggunakan handphone Android untuk mengisikan program ke Arduino menggunakan aplikasi Bluino Loader, cara uploadnya pun bisa dua cara melalui USB dengan menggunakan adapter OTG atau melalui Bluetooth.

Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) di bawah.
[15:00, 10/7/2019] sugandi adi10: /*
  10 - Sensor DHT11

  Membuat program cara membaca data dari sensor suhu dan kelembaban DHT11,
  kemudian menampilkannya pada Serial Monitor.
*/

#include "DHT.h"        //menyertakan library untuk menggunakan sensor DHT11

#define DHTPIN 8        //pin 8 yang dihubungkan dengan sensor
#define DHTTYPE DHT11   //jenis sensor yang digunakan yaitu DHT11

DHT dht(DHTPIN, DHTTYPE);  //membuat sebuah objek untuk sensor, serta menentukan pin dan tipe sensor yg digunakan

void setup() {
  Serial.begin(115200);             //memulai komunikasi dengan serial monitor
  Serial.println("DHT11 test!");    //menampilkan tulisan pada awal serial monitor

  dht.begin();    //memulai komunikasi dengan sensor
}

void loop() {
  //Jeda beberapa detik antara setiap pengukuran.
  delay(2000);

  //Membaca suhu atau kelembaban memakan waktu sekitar 250 milliseconds!
  //Untuk tipe pabrikan sensor yang lam mungkin bisa sampai 2 detik
  float h = dht.readHumidity();
  //Membaca suhu dalam Celsius (the default)
  float t = dht.readTemperature();
  //Membaca suhu dalam Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);

  //Periksa jika terjadi kegagalan dalam pembacaan dan keluar sesegara mungkin untuk membaca ulang.
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  //Menghitung index panas dalam Fahrenheit (the default)
  float hif = dht.computeHeatIndex(f, h);
  //Menghitung index panas dalam Celsius (isFahreheit = false)
  float hic = dht.computeHeatIndex(t, h, false);

  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(f);
  Serial.print(" *F\t");
  Serial.print("Heat index: ");
  Serial.print(hic);
  Serial.print(" *C ");
  Serial.print(hif);
  Serial.println(" *F");
}

Cara menggunakan:

Buka serial monitor kemudian kamu akan melihat ada data yang tampil menunjukan berapa nilai kelembaban, suhu dalam satuan Celsius dan Fahrenheit. Apabila pada serial monitor tampil tulisan "Failed to read from DHT sensor!" ada kemungkinan koneksi kabel ada yang terlepas atau tertukar atau bahkan sensor yang kamu gunakan sudah rusak, coba cek kembali.

06 - Lampu Malam RGB

Lampu Malam RGB

Pada Latihan kali ini akan sama konsepnya dengan latihan sebelumnya bernama lampu otomatis cuma ditambahkan LED RGB dan potensiometer.

LED RGB: bisa dikatakan seperti tiga LED kecil dengan warna berbeda merah, hijau dan biru digabung menjadi satu. Kaki negatif/katoda dari masing-masing warna LED digabung sehingga hanya memiliki 4 kaki. Untuk menyalakan LED ini hubungkan kaki katoda dengan tegangan ground/negatif dan kaki masing-masing warna LED dengan tegangan positif, dan jangan lupa memasang resistor untuk membatasi arus.

Kebutuhan Komponen:

— 1 x Arduino UNO
— 1 x Breadboard
— 1 x Photoresistor
— 1 x Potensiometer
— 1 x LED RGB
— 3 x Resistor 330Ω
— 1 x Resistor 10KΩ
— 11 x Kabel Jumper

Perakitan:

Rangkaian:


Upload sketch:

Untuk mengisikan program ke board Arduino melalui PC/Laptop dapat menggunakan software Arduino IDE.

Apabila kamu tidak mau menggunakan PC/Laptop untuk mengupload sketch/program ke board Arduino, kamu masih bisa menggunakan handphone Android untuk mengisikan program ke Arduino menggunakan aplikasi Bluino Loader, cara uploadnya pun bisa dua cara melalui USB dengan menggunakan adapter OTG atau melalui Bluetooth.

Cara lain dapat juga upload sketch langsung melalui aplikasi ini ke Arduino melalui USB OTG atau Bluetooth dengan cara menekan ikon upload (tanda panah ke kanan) di bawah.
 /*
  06 - Lampu Malam RGB

  Menyalakan dan mematikan sebuah LED RGB berdasarkan intensitas cahaya yang diterima oleh photoresistor.
  Putar potensiometer untuk merubah warna nyala LED.
*/

int photoresistor;          //variabel untuk menyimpan nilai photoresistor
int potentiometer;          //variabel untuk menyimpan nilai potensiometer
int threshold = 700;             //jika photoresistor membaca dibawah nilai ini maka LED akan menyala

//LED RGB dihubungkan dengan tiga pin digital
int RedPin = 9;
int GreenPin = 10;
int BluePin = 11;

int photoPin = A0;       //pin yang terhubung dengan photoresistor
int potPin = A1;       //pin yang terhubung dengan potensiometer


void setup() {
  Serial.begin(115200);           //memulai komunikasi dengan serial monitor

  //set pin digital LED sebagai output
  pinMode(RedPin,OUTPUT);
  pinMode(GreenPin,OUTPUT);
  pinMode(BluePin,OUTPUT);
}

void loop() {
  
  photoresistor = analogRead(photoPin);       //membaca nilai dari photoresistor
  potentiometer = analogRead(potPin);         //membaca nilai dari potensiometer

  Serial.print("Photoresistor value:");
  Serial.print(photoresistor);            //menampilkan nilai photoresistor ke serial monitor
  Serial.print("  Potentiometer value:");
  Serial.println(potentiometer);          //menampilkan nilai photoresistor ke serial monitor
  
  if(photoresistor < threshold){          //jika kondisi gelap (nilai photoresistor dibawah nilai threshold) maka LED menyala
    //jika kondisi gelap maka akan menjalankan fungsi-fungsi warana
    //yang berbeda disesuaikan dengan nilai dari pembacaan potensiometer.
    if(potentiometer > 0 && potentiometer <= 150)
      red();
    if(potentiometer > 150 && potentiometer <= 300)
      orange();
    if(potentiometer > 300 && potentiometer <= 450)
      yellow(); 
    if(potentiometer > 450 && potentiometer <= 600)
      green();
    if(potentiometer > 600 && potentiometer <= 750)
      cyan();
    if(potentiometer > 750 && potentiometer <= 900)
      blue(); 
    if(potentiometer > 900)
      magenta();  
  } 
  else {                                  //jika kondisi terang maka akan mematikan LED
    
    turnOff();                            //memanggil fungsi untuk mematikan LED
  }  
  
  delay(100);                             //jeda untuk membuat penampilan data mudah dibaca
}

void red() {
    //set pin LED dengan nilai untuk membuat nyala LED menjadi merah    
    analogWrite(RedPin, 100);
    analogWrite(GreenPin, 0);
    analogWrite(BluePin, 0);
}

void orange() {
    //set pin LED dengan nilai untuk membuat nyala orange
    analogWrite(RedPin, 100);
    analogWrite(GreenPin, 50);
    analogWrite(BluePin, 0);
}

void yellow() {
    //set pin LED dengan nilai untuk membuat nyala kuning
    analogWrite(RedPin, 100);
    analogWrite(GreenPin, 100);
    analogWrite(BluePin, 0);
}

void green() {
    //set pin LED dengan nilai untuk membuat nyala hijau    
    analogWrite(RedPin, 0);
    analogWrite(GreenPin, 100);
    analogWrite(BluePin, 0);
}

void cyan() {
    //set pin LED dengan nilai untuk membuat nyala cyan    
    analogWrite(RedPin, 0);
    analogWrite(GreenPin, 100);
    analogWrite(BluePin, 100);
}

void blue() {
    //set pin LED dengan nilai untuk membuat nyala biru
    analogWrite(RedPin, 0);
    analogWrite(GreenPin, 0);
    analogWrite(BluePin, 100);
}

void magenta() {
    //set pin LED dengan nilai untuk membuat nyala magenta   
    analogWrite(RedPin, 100);
    analogWrite(GreenPin, 0);
    analogWrite(BluePin, 100);
}

void turnOff() {
    //set semua pin LED ke 0 atau mati
    analogWrite(RedPin, 0);
    analogWrite(GreenPin, 0);
    analogWrite(BluePin, 0);
}

Cara menggunakan:

Sama seperti pada latihan lampu otomatis, apabila kondisi ruangan terang atau sensor photoresistor tidak tertutup maka LED RGB akan mati, tapi apabila kondisi ruangan gelap atau sensor ditutup maka LED RGB akan nyala. Nyala warna LED RGB dapat kamu rubah dengan memutar knob potensiometer.