Sabtu, 07 Oktober 2017

MENGGABUNGKAN BEBERAPA SKETCH PROGRAM ARDUINO

Menulis sketch program arduino ternyata mudah, tapi bagaimana cara menggabungkan  sketch demi sketch ya? Ini Uda contohin ya...  Yg pertama sketch program untuk menghidupkan LED. 

#define LED       13
#define tombol    6
int nilaitombol = 0;

void setup()
{
  pinMode (LED,OUTPUT);
  pinMode (tombol,INPUT);
}
void loop()
{
  nilaitombol = digitalRead(tombol);
  if (nilaitombol == HIGH)
  {
    digitalWrite(LED, HIGH);
  }
  else
  {
    digitalWrite(LED, LOW);
  }
}

Nah sketch di atas adalah sketch menghidupkan LED pada pin 13. Jadi ketika tombol dipencet LED nyala, dan ketika tombol di lepas LEDnya mati. Ini kita semua udah pasti tau ya. Coba sekarang kita kombine dengan pembacaan tegangan

#define potensiometer   A0
float tegangan        = 0;
int nilaiPotensio     = 0;

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

void loop()
{
  nilaiPotensio = analogRead(potensiometer);
  tegangan = nilaiPotensio * (5.0 / 1023.0);
  Serial.println(tegangan);
}

Diatas kita punya sketch untuk pembacaan tegangan. Kita tambahin lagi ya untuk penampilan di LCD 16 x 2. Langsung deh kita liat sketch yang di bawah. Tapi sebelumnya kita pasang dulu LCDnya sesuai wiring diagram ya bray

Wiring LCDnya

 * LCD RS pin to digital pin 12
 * LCD Enable pin to digital pin 11
 * LCD D4 pin to digital pin 5
 * LCD D5 pin to digital pin 4
 * LCD D6 pin to digital pin 3
 * LCD D7 pin to digital pin 2
 * LCD R/W pin to ground
 * LCD VSS pin to ground
 * LCD VCC pin to 5V
 * 10K resistor:
 * ends to +5V and ground
 * wiper to LCD VO pin (pin 3)

Selanjutnya kita kopiin dulu, biar kerjanya jadi tambah enak dan relax, xixixix... eh maksudnya kita kopiin sketch dibawah ke dalam arduino IDE kita. Berikut sketch untuk penampilan LCD 16x2 nya

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  lcd.begin(16, 2);
  lcd.print("hello, world!");
}

void loop()
{
  lcd.setCursor(0, 1);
  lcd.print(“ “);
}

Nah dari 3 sketch di atas dapat kita gabungkan menjadi apa ya.... ayoo di bantu pak tarno nya... :D.
Kita dapat menggabungkan nya menjadi “pembaca tegangan dengan alarm pada nilai tertentu” tentu saja ini bermanfaat bagi kita kalau di aplikasiin ke dalam pembacaan gas sensor, misalnya LED akan nyala jika seseorang minum melebihi kadar alkohol tertentu.
Atau LED nyala kalau tegangan yang terbaca “undervoltage”. Atau dapat juga sebagai alarm jika nilai dari cahaya yang diterima berkurang. Atau kadar air tanah mulai kering. Atau apa ya.... silahkan di tambahin sendiri deh...

Sesuai tujuan pertama dulu deh ya... kita akan “menyalakan LED jika tegangan dibawah nilai tertentu”. Yuk kita gabungin...
Langkah pertamanya kita copyin dulu semua inisialisasi program. Pernah kita bahas juga ini. Tapi buat ngingatin aja bagi yang belum tau, inisialisasi program adalah pengenalan variabel-variabel saat penulisan program.

#define LED       13
#define tombol    6
int nilaitombol = 0;
#define potensiometer   A0
float tegangan        = 0;
int nilaiPotensio     = 0;
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Oke fix... lanjuuuttt...

Selanjutnya kita copyin setup programnya menjadi satu. Kita langsung tambahin aja ya dengan inisialisasi program

#define LED       13
#define tombol    6
int nilaitombol = 0;
#define potensiometer   A0
float tegangan        = 0;
int nilaiPotensio     = 0;
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  pinMode (LED,OUTPUT);
  pinMode (tombol,INPUT);
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.print("hello, world!");// lcd.print("tegangan:");
}                                  

Kita ganti ya tuisan dalam “hello, word!” menjadi “tegangan”. Hapus aja tanda ”//” sampai ke awal tulisan “lcd.print(”hello, word!”); di awal. Selanjutnya kita copyin looping programnya. Tapi bagian ini mesti kita susun sesuai kebutuhan kita. Pertama kita baca tegangannya dulu. Selanjutnya kita tampilkan pembacaannya di LCD. Barangkali aja kita bisa improv tulisannya nanti. Habis tu kita buat persyaratan kapan LED kita hidup dan matikan.

#define LED       13
#define tombol    6
int nilaitombol = 0;
#define potensiometer   A0
float tegangan        = 0;
int nilaiPotensio     = 0;
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  pinMode (LED,OUTPUT);
  pinMode (tombol,INPUT);
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.print("tegangan:");
}

void loop()
{ // Bagian satu pembacaan tegangan
  nilaiPotensio = analogRead(potensiometer);
  tegangan = nilaiPotensio * (5.0 / 1023.0);
  Serial.println(tegangan);
  // Bagian dua penulisan di LCD
  lcd.setCursor(0, 1);
  lcd.print(“ “);
  // Bagian tiga persyaratan menyalakan LED
  nilaitombol = digitalRead(tombol);
  if (nilaitombol == HIGH)
  {
    digitalWrite(LED, HIGH);
  }
  else
  {
    digitalWrite(LED, LOW);
  }
}

Nah begini nih jadinya  kalo digabungin semuanya. Selanjutnya kita perbaiki dulu beberapa sketch biar cocok dengan tujuan yang kita inginkan dari program kita.
Dari looping di atas, bagian awal adalah pembacaan tegangan. Bagian selanjutnya adalah penulisan tulisan kosong di baris ke dua kolom pertama. Baris ketiga adalah persyaratan untuk menyalakan LED.
Yuk kita perbaiki.
Bagian satu..
Pembacaan tegangan udah cocok deh kayaknya.
Bagian dua..
Kita mesti memprint nilai tegangan ke kolom ke dua. Jadi bagian ini kita robah bray. Nih uda contohin

  // Bagian dua penulisan di LCD
  lcd.setCursor(0, 1);
  lcd.print(tegangan);

Bagian 3..
Persyaratan menyalakan LED. LED akan nyala kalau tegangan dibawah 2,5 volt dan mati lagi di atas tegangan tersebut.berarti kita tidak memakai tombol untuk menyalakan dan mematikan LED kan bray. Tinggal ilangin semua variabel tombol aja kan

  // Bagian tiga persyaratan menyalakan LED
  nilaitombol = digitalRead(tombol);
  if (nilaitombol == HIGH)
  {
    digitalWrite(LED, HIGH);
  }
  else
  {
    digitalWrite(LED, LOW);
  }

Kita robah menjadi

  // Bagian tiga persyaratan menyalakan LED

  if (tegangan <= 2.5)
  {
    digitalWrite(LED, HIGH);
  }
  else
  {
    digitalWrite(LED, LOW);
  }

Yuk kita gabungin lagi, dan membuang semua yang tidak di perlukan di sketch program kita

#define LED       13
#define potensiometer   A0
float tegangan        = 0;
int nilaiPotensio     = 0;
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  pinMode (LED,OUTPUT);
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.print("tegangan:");
}

void loop()
{ // Bagian satu pembacaan tegangan
  nilaiPotensio = analogRead(potensiometer);
  tegangan = nilaiPotensio * (5.0 / 1023.0);
  Serial.println(tegangan);
  // Bagian dua penulisan di LCD
  lcd.setCursor(0, 1);
  lcd.print(tegangan);
  // Bagian tiga persyaratan menyalakan LED
  if (tegangan <= 2.5)
  {
    digitalWrite(LED, HIGH);
  }
  else
  {
    digitalWrite(LED, LOW);
  }
}

Coba copyin lagi ya bray ke sketch programnya dan lihat keajaiban yang terjadi setelah kita putar-putar potensiometer kita

baca juga: Menggabungkan Beberapa Sketch Program Arduino 2
baca juga: Menggabungkan Beberapa Sketch Program Arduino 3

Demikian dulu ya brai tutorial penggabungan sketchnya. Lain kali kita tambahin lagi ya contoh-contoh programnya. Atau kali aja teman-teman punya pertanyaan seputar pembuatan sketch program dengan menggabungkan beberapa modul atau peralatan. Silahkan tulis komen dibawah, Uda akan dengan senang hati menjawabnya. Selamat mencoba...

Intip juga ide tugas akhir dari kami