Sunday, August 21, 2016

MEMBUAT ARDUINO TIMER CONTROL RELAY

Akhir nya malam ini ada waktu untuk ngetik , dan saya akan berbagi sebuah project sederhana manggunakan arduino yang berbasis timer , dan kita akan menggunakan timer internal dari arduino untuk mengontrol relay switch, yang bisa di gunakan untuk mengontrol peralatan listrik ataupun yang lain nya dengan timer, sistem kerja project ini sangat sederhana yaitu arduino mengontrol pin out yang terhubung dengan driver relay dan mengaktifkan driver relay tersebut dengan jeda waktu.

Project ini juga menggunakan sebuat buzzer yang akan berbunyi apabila timer telah menunjukan nilai nol (0) , dan utuk mengulangi start nya dengan menekan tombol reset pada arduino, maka program akan dijalankan ulang, pada project ini bisa untuk di modifikasi menjadi alat apa saja yang berhubungan dengan timer , asal jangan di jadikan timer untuk detonator BOM ya..hehehe

Pertama tama siapkan board arduino, disini saya menggunakan arduino uno R3 , siapkan juga buzzer , LCD dan Relay, lalu di rangkai sesuai skematik di bawah ini :

skematik relay timer switch

Pada skematik di atas terdapat Potensio meter 10k (P1 10K) sebenar nya itu adalah opsional, bisa di tambahkan ataupun di hilanggkan dengan menjumper nya, dan fungi potensio tersebut adalah untuk mengatur brightnes LCD , untuk sketc nya seperti berikut :


#include <LiquidCrystal.h>
LiquidCrystal lcd(7,8,9,10,11,12);
int runTimer = 1; 
int runFor = 60; // timer
int buzzerPin = 13;
int relayPin=4;
int data = 0;

void setup() {
   pinMode(buzzerPin, OUTPUT);
   pinMode(relayPin,OUTPUT);
   lcd.begin(16, 2);
}

void loop() {
   if(runTimer == 1){ 
      digitalWrite(relayPin,LOW); // relay OFF
      
      lcd.clear();
      lcd.print("TIMER=");
      //Start timer
      timer(); 
   } else {
      digitalWrite(relayPin,HIGH); // relay ON 
     
   }
   runTimer = 0;
   lcd.noDisplay();
   delay(250);
   for(int duration = 0; duration < 100; duration ++){
      digitalWrite(buzzerPin, HIGH);
      delayMicroseconds(500);
      digitalWrite(buzzerPin, LOW);
      delayMicroseconds(500);
   } 
   lcd.display();
   delay(250);
}

void timer() {
   for(int timer = runFor;timer > 0; --timer){
   if(timer >= 10) {
      lcd.setCursor(6,0); 
   } else {   
      lcd.setCursor(6,0);
      lcd.print("0");
      lcd.setCursor(7,0);
   }
   lcd.print(timer);
   lcd.print(" SECOND!");
   delay(1000);
   }
   lcd.setCursor(0,0);
   lcd.clear();
   lcd.print(" TIMER ALERT!");  
}

Compile program di atas dan download ke arduino , setelah itu silakan di ujicoba alat nya, untuk dokumentasi alat yang sudah jadi seperti gambar di bawah ini :

arduino timer control relay

Selesai sudah project kali ini..heheh.., terimakasih telah berkunjung ke blog ini apabila ada kesalahan dan pertanyaan silakan isikan di kolom komentar, terimakasih.




Saturday, August 6, 2016

ARDUINO PROGRAMING MENGGUNAKAN LCD

Setelah beberapa hari aku tidak membuat artikel yang di sibukan dengan kegiatan lain akhir nya ada sedikit waktu buat nulis lagi di blog ini , kali ini yang di bahas adalah tentang arduino programing lcd ,ini merupakan dasar dari penggunaan lcd pada arduino, Lcd yang di gunakan adalah tipe LCD 16x2 yang arti nya memiliki jumlah enam belas karakter dan dua baris, mempunyai 192 karakter tersimpan dan mempunyai mode alamat 4Bit dan 8Bit dan tentu saja fitur back light agar karakter nya jelas terlihat :D

untuk spesifikasi lebih lanjut bisa di lihat gambar di bawah ini :

ARDUINO PROGRAMING LCD
data sheet LCD 16x2

ARDUINO PROGRAMING LCD

pin pada LCD 16x2
Pada arduino programing kali ini akan di jelaskann juga fungsi dari source code nya , kenapa di jelaskan ?? karena simpel heheh.., dan untuk  shematic arduino programing LCD 16x2 dapat di lihat di bawah ini :

ARDUINO PROGRAMING LCD
schematik arduino LCD

Rasanya cukup penjelasan arduino lcd di atas selanjut nya ayo melihat source code nya .., sebenar nya sorce code ini adalah Sketchbook dari IDE arduino yang sudah di sediakan di dalam folder IDE arduino, ya karena aku ini lagi iseng-iseng ngeblog biarpun hal kecil yang penting blog nya terisi..hehe, oke mari lanjut source code di bawah ini :

 #include <LiquidCrystal.h>// library LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // pin pada arduino ke LCD

void setup() {
  // untuk menseting baris dan kolom pada LCD:
  lcd.begin(16, 2); //pixel dari LCD yang kita gunakan
  lcd.setCursor(0, 0);
  lcd.print("Belajar Arduino");
  lcd.setCursor(0, 1);
  lcd.print("informatikkita.blogspot.co.id");
}

void loop() { // mengulaang program

Pada souce di atas udah aku terangkan apa fungsi-fungsi nya jadi ayo di buat biar bisa LCD an.., heheh kayak tivi ajah.. :D , gambar di bawah ini contoh yang udah jadi :

ARDUINO PROGRAMING LCD
contoh arduino LCD yang sudah di program

silakan kalo mau di praktekan di jamin 100% bisa , sekian dan terimakasih untuk yang sedang berkunjung di blog ini jangan lupa nantikan postingan berikut nya :), apabila ada pertanyaan silakan di isikan di kolom komentar, terimakasih.


Monday, August 1, 2016

PROGRAM JAVA SEDERHANA DENGAN JOptionPane

Kembali lagi kita akan membahas tentang Java , pada kali ini kita akan membuat program java sederhana dengan menambahkan class JOptionPane, pengertian JoptionPane adalah class yang di gunakan sebagai standar dialog box untuk antar muka pengguna grafis (GUI) untuk memfasilitasi entry data dan output data dan memberikan informasi kepada pengguna aplikasi. Dan tentunya kita akan menggunakan juga input dari keyboard dengan class BufferedReader seperti pada program sebelum nya di sini , mari kita lihat code di bawah ini :

tuliskan code di atas dengan notepad kesayangan masing-masing setelah itu simpan dengan nam class GetInputFromKeyboard2 , setelah itu compile dan jalankan dengan command prompt atau terminal dengan perintah seperti program sebelum nya disini apabila tidak terjadi kesalahan maka progaram akan berjalan seperti scren shoot berikut :



tampilan JOptionPane (input nama)



tampilan pada command prompt setelah JOptionPane tertutup

sekian dulu progran java kali ini, di lain waktu akan kita bahas program java selanjut nya , apabila ada kesalahan dan pertanyaan silakan isikan di kolom komentar.






MEMBUAT APLIKASI ANDROID MEMBACA SENSOR MAGNETIC FIELD

Kembali lagi saya posting di blog saya ini, kali ini posting saya berhubungan dengan sensor pada device android yaitu magnetic field , tahukah anda bahwa device android sudah di bekali dengan berbagai macam sensor namun tentunya tidak semua device juga yang memiliki banyak sensor, sensor magnetic field sendiri berfungsi untuk mendeteksi medan magnet di sekitar smartphone atau pun untuk penunjang kerja sensor compass, sudah banyak juga aplikasi di playstore yang menggunakan sensor magnetic tersebut contoh nya metal detector dan lain sebagai nya, dan kali ini saya akan memberikan source code Eclipse yang mungkin bisa di kembangkan menjadi lebih baik, kenapa saya harus pake eclipse ?? ya karena laptop saya sudah tua dan berumur jadi tidak memungkinkan menggunakan android studio atau compiler lain nya..hehe, langsung saja pertama-tama buatlah project pada eclipse dengan nama package example.magnetic atau dengan nama masing-masing ,setelah itu copy atau tulis ulang code di bawah:

pada activity_main.xml isikan kode berikut

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/mag_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Magnetometer Raw Data (μT)" />

    <TextView
        android:id="@+id/mag_x"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="X:" />

    <TextView
        android:id="@+id/mag_y"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Y:" />

    <TextView
        android:id="@+id/mag_z"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Z:" />

</LinearLayout>

dan pada Main_Activity.java isikan kode berikut :

package com.example.magnetic;

import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity implements SensorEventListener{

private SensorManager mSensorManager;
private Sensor mMagnetometer;
private TextView axisX, axisY, axisZ;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

axisX = (TextView) findViewById(R.id.mag_x);
axisY = (TextView) findViewById(R.id.mag_y);
axisZ = (TextView) findViewById(R.id.mag_z);

mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mMagnetometer= mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
}

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// apabila ingin menambahkan nilai akurasi sensor.
}

@Override
public void onSensorChanged(SensorEvent event) {
float x = event.values[0];
   float y = event.values[1];
   float z = event.values[2];

   axisX.setText("X: "+x);
   axisY.setText("Y: "+y);
   axisZ.setText("Z: "+z);
}

@Override
 protected void onResume() {
   super.onResume();
   mSensorManager.registerListener(this, mMagnetometer, SensorManager.SENSOR_DELAY_NORMAL);
 }

 @Override
 protected void onPause() {
   super.onPause();
   mSensorManager.unregisterListener(this);
 }
}

setelah selesai cobalah untuk me RUN code di atas apabila tidak terjadi erorr maka bisa mencoba menginstal nya di device android yang memiliki sensor Magnetic Field , apa bila terjadi erorr cobalah untuk mengoreksi pada logchat apa penyebab eror tersebut , di bawah ini scren shoot aplikasi yang sudah saya instal :

icon aplikasi dari eclipse

dan setelah saya jalankan di handphone saya ternyata :

padasaat aplikasi di jalankan nilai sensor tidak terbaca

handphoe baru saya tidak mendukung sensor mangnetic field karena sebelum nya saya menginstal aplikasi ini pada handphone yang lama, pada saat posting inilah saya menginstal kembali hmm.., ya sudahlah saya hanya melampirkan bukti bahwa aplikasi nya berjalan, sekian posting saya kali ini apabila ada kesalahandan pertanyaan silakan isikan di kolom komentar.