Sabtu, 08 September 2012

Arduino Seven Segment | Tutorial Arduino Dasar

tutorial arduino | Halo sobat AWI'ers.... ketemu lagi di akhir pekan. Kali ini kami akan sedikit bermain main dasar tentang bagaimana bertatap muka antara arduino dengan seven segment.

Sudah pada tau seven segment kan. itu loh yang biasa dipakai ditampilan-tampilan jam digital yang bentuknya kayak kotak - kotak ada angkanya 0 - 9


Seven Segment 0 - 9 (*)

Sebelum kita belajar lebih jauh alangkah baiknya kita mengenal apa itu seven segment, bagaimana konfigurasinya yang ada di seven segment.

Pada Umumnya seven segment terdiri 7 batang led yang disusun membentuk angka 8 (*seperti pada gambar diatas), dimana setiap segmentnya terdiri dari LED yang salah satu kaki terminal lednya di jadikan satu atau yang disebut dengan common. 

skema dari 7 batang led tadi biasanya di tandai dengan huruf a - g, sebagai berikut

skema seven segment (*)

Kaki yang dijadikan satu / common sendiri dibagi menjadi 2 yaitu kaki common anoda dan kaki common cathoda.
Penjelasan common anoda dan common katoda

Common Anoda
common Anoda merupakan bagian kaki dari anoda (+) yang dijadikan satu dan dihubungkan dengan arus positif tegangan. sedangkan untuk mengaktifkan kaki yang lainnya harus di beri tegangan negatif. atau led akan menyala jika dalam kondisi aktif low (diberi logika 0).
Misalkan ingin menampilkan angka 1, maka yang harus di lakukan adalah. kaki common di beri tegangan +, sedangkan kaki b dan c di beri tegangan -

Common Katoda
Common katoda ini kebalikannya dari common anoda, jadi kaki common yang disatukan adalah kaki katoda (-), sehingga untuk mengaktifkan kaki yang lain di beri tegangan (+) atau diberi logik high (1).

Berikut ini adalah gambar dari seven segment common anoda dan katoda
kaki kaki common (*)

Sekarang langsung ke percobaan arduino dengan seven segment,
yang perlu disiapkan
  • projectboard
  • arduino uno
  • seven segment (boleh anoda maupun katoda)
  • kabel jumper
  • tegangan (power supply)
Langkah langkah tutorial arduino seven segment
  • pasang seven segment pada project board
  • atur kabel jumper dengan susunan sebagai berikut

Arduino Pin 7 Segment Pin Connection
 2 7 (A)
 3 6 (B)
 4 4 (C)
 5 2 (D)
 6 1 (E)
 7 9 (F)
 8   10 (G)
 9  5 (DP)
  • pada percobaan kali ini kami menggunakan seven segment common katoda, maka kaki common dihubungkan dengan ground (-). 
  • masukkan program berikut di arduino software 
// www.arduino.web.id
// urut dari 0 - 9
// untuk 7segment common katoda, jika menggunakan common Anoda, silahkan dganti "1" dengan "0"

void setup() {             
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  digitalWrite(9, 0);  // start with the "dot" off
}

void loop() {
   // write '0'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 0);
 delay(500);
  // write '1'
 digitalWrite(2, 0);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 0);
 digitalWrite(8, 0);
 delay(500);
 // write '2'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 0);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 0);
 digitalWrite(8, 1);
 delay(500);
  // write '3'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 0);
 digitalWrite(7, 0);
 digitalWrite(8, 1);
 delay(500);
  // write '4'
 digitalWrite(2, 0);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(500);
 // write '5'
 digitalWrite(2, 1);
 digitalWrite(3, 0);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 0);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(500);
// write '6'
 digitalWrite(2, 1);
 digitalWrite(3, 0);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(500);
// write '7'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 0);
 digitalWrite(8, 0);
 delay(500);
 // write '8'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 1);
 digitalWrite(6, 1);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(500);
 // write '9'
 digitalWrite(2, 1);
 digitalWrite(3, 1);
 digitalWrite(4, 1);
 digitalWrite(5, 0);
 digitalWrite(6, 0);
 digitalWrite(7, 1);
 digitalWrite(8, 1);
 delay(2000);

}
  • beginilah bentuk hasilnya  

  • Selamat bermain-main dengan seven segment anda. semoga tutorial arduino ini membantu


(*) gambar di dapat dari internet image google

Jumat, 31 Agustus 2012

test midi to usb

Halo sobat AWI'ers (arduino.web.id)... lama tak bersua ya,..
sudah lama tidak bermain-main dengan my arduino. OK di project akhir pekan ini saya akan mulai membahas sedikit demi sedikit tentang bagaimana bermain-main dengan midi. dan nanti project akhirnya akan membuat drum elektronik sendiri secara sederhana dan murah tentunya.

Oke Perlengkapan yang dibutuhkan adalah sebagai berikut
  1. arduino uno + kabel data
  2. midi to usb
buat yang belum tau midi to usb berikut gambarnya
 interface ini mudah didapat di toko komputer ataupun toko musik, biasanya sering di pakai di keyboad piano yang di hubungkan ke pc untuk aransemen lagu. Oh ya fitur dari kabel midi to usb ini adalah sebagai berikut :
  • Connector Computer: USB A male
  • Connector Midi In: 5-Pin DIN male
  • Connector Midi Out: 5-Pin DIN male
  • LED for power and data direction
  • USB powered and true plug & play
  • No driver installation necessary
harga midi to usb ini ada yang mahal ada yang murah, yang saya pakai sekitar 200 ribuan. kalau mau nitip monggo :)

Pertama-tama yang harus di pelajari adalah conector midi In yang berisi 5 pin, ini nanti akan terhubung dengan supply 5 v sama output (tx) dari arduino .

berikut gambar susunan pin nya
susunan dari midi connector
Rangkaian midi controller
Untuk driver dari midi cable sendiri langsung plug and play. Setelah semuanya terpasang. bisa di install terlebih dahulu aplikasi Native instrument battery 3
Jika sudah semua, mari kita coba midi to usb.

download program berikut pada arduino anda



void setup() {
  //  Set MIDI baud rate:
  Serial.begin(31250);
}

void loop() {
  // play notes from F#-0 (0x1E) to F#-5 (0x5A):
  for (int note = 0x24; note < 0x3C; note ++) {
    //Note on channel 1 (0x90), some note value (note), middle velocity (0x45):
    noteOn(0x90, note, 0x45);
    delay(500);
    //Note on channel 1 (0x90), some note value (note), silent velocity (0x00):
    noteOn(0x90, note, 0x00); 
    delay(500);
  }
}

//  plays a MIDI note.  Doesn't check to see that
//  cmd is greater than 127, or that data values are  less than 127:
void noteOn(int cmd, int pitch, int velocity) {
  Serial.write(cmd);
  Serial.write(pitch);
  Serial.write(velocity);
}

Sambil di buka aplikasi battery3 coba jalankan.
kalau berbunyi secara gantian maka midi usb anda berhasil. Selamat mencoba

Senin, 30 April 2012

unknown Device pada arduino

Beberapa hari yang lalu setelah install ulang notebook dan mencoba belajar arduino kembali ternyata ada kendala pada arduino. Arduino Uno yang saya miliki tidak bisa terdetect dengan baik, com / port arduino tidak bisa terbaca dan muncul tulisan "unknown device" pada device manager


setelah update sana update sini ternyata juga tidak bisa menyelesaikan masalah tersebut. tetapi berkat bantuan dari si empu google akhirnya masalah ini bisa terselesaikan. adapun caranya adalah sebagai berikut :

  • Klik kanan pada unknown device, pilih update driver software
  • Setelah itu pilih browse my computer for driver software
  • pilih let me pick from a list from a list .... 

  • Pilih ports (COM & LPT)

  • Klik next dan klik arduino LLC jika ada

  • Jika belum ada klik have disk dan arah kan ke driver arduino yang sudah ada, pilih sesuai dengan boar arduino. setelah itu baru muncul arduino yang di maksud.
  • Pilih arduino LLC kemuduan arduino Uno dan klik yes

  • arduino akan succesfully dan terinstal / muncul pada com 
  • Arduino siap digunakan kembali

Semoga membantu








Sabtu, 14 April 2012

Menampilkan Data Rotary Encoder di LCD dengan Arduino

hallo AWI'ers....
postingan kali ini merupakan lanjutan dari postingan rotary encoder kemarin. Kalau kemarin data yang di tampilkan di serial monitor, yg sudah terintegrasi dengan software Arduino. pada kali ini akan di tampilkan pada LCD 16x2

settingan port pada LCD sama dengan postingan LCD sebelumnya

Konfigurasi pin2nya adalah sebagai berikut :

  • Pin RS (kaki 4) di sambungkan dengan pin arduino digital pin 12
  • Pin E (kaki 6) di sambungkan dengan pin arduino digital pin 11
  • Pin D4 (kaki 11) di sambungkan dengan pin arduino digital pin 5
  • Pin D5 (kaki 12) di sambungkan dengan pin arduino digital pin 4
  • Pin D6 (kaki 13) di sambungkan dengan pin arduino digital pin 3
  • Pin D7 (kaki 14) di sambungkan dengan pin arduino digital pin 2
  • sambungkan potensio 10 KOhm ke  +5v dan GND , dan Pin LCD 3 ke potensio
  • Pin 5 (R/W) ke Ground
  • output Rotary (kabel kuning) disambungkan dengan pin arduino digital pin 7 
setelah semua konfigurasi selesai,buka halaman editor untuk arduino silahkan coding seperti di bawah ini


#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int inPin = 7;   // pushbutton connected to digital pin 7
int val = 0;     // variable to store the read value
int counter = 0;
int encoderLast = LOW;

void setup() {
  digitalWrite(inPin,HIGH);
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("Rotary : ");
  lcd.setCursor(0, 1);
  lcd.print(" Arduino.web.id");

}

void loop() {
  val = digitalRead(inPin);   // read the input pin
  lcd.setCursor(8, 0);
  if((encoderLast == LOW)&&(val==HIGH))
  {
    counter++;
    lcd.print(counter);
  }
  encoderLast = val;
}

gambar hasil percobaan

Kamis, 12 April 2012

Mengendalikan motor DC dengan arduino

Postingan pada kali ini adalah lanjutan dari Rangkaian Driver Motor yang sempat beberapa hari terlupakan, gara-gara asik dengan beberapa postingan baru.

Setelah rangkaian driver yang kemarin yang menggunakan relay selesai. tiba saatnya untuk menggabungkan dengan arduino tentunya dengan sedikit program untuk pemanasan.

pada percobaan kali ini yang perlu di persiapkan adalah
Driver Motor DC (Rangkaian driver motor dc relay)
board arduino
power supply
kabel

sambungkan port input pada driver motor dc ke port digital (pin 3, pin 4, pin 5 dan pin 6). cobalah buat program seperti dibawah ini


#define ka1 3 //pin 3
#define ka2 4 //pin 4
#define ki1 5 //pin 5
#define ki2 6 //pin 6
void setup() {
  // set the digital pin as output:
pinMode(ka1, OUTPUT);
pinMode(ka2, OUTPUT);
pinMode(ki1, OUTPUT);
pinMode(ki2, OUTPUT);

  digitalWrite(ka2, HIGH);
  digitalWrite(ka1, HIGH);
  digitalWrite(ki2, HIGH);
  digitalWrite(ki1, HIGH);

}
void loop()
{
  digitalWrite(ka1, HIGH);
  digitalWrite(ka2, LOW);
  digitalWrite(ki1, HIGH);
  digitalWrite(ki2, LOW);
  delay(1000);
  digitalWrite(ka1, LOW);
  digitalWrite(ka2, HIGH);
  digitalWrite(ki1, LOW);
  digitalWrite(ki2, HIGH);
  delay(1000);
}

relay akan aktif jika di beri kondisi 0 (low)



selamat mencoba

Rabu, 11 April 2012

Motor DC dengan Speed Encoder

Gara-gara kemarin ada yang order motor dc dengan speed encoder, akhirnya project driver motor kemarin masih terbelengkalai.  Banting stir untuk nyobain baca data dari rotary encoder yang sudah built in motor ini dengan arduino.

ada yang penasaran dengan bentuk motor yg murah meriah ini, dan inilah penampakannya

spesifikasi dari motor dc rotary encoder ini bisa di lihat di empunya toko robot

Okeh lanjut, kita perhatikan datasheet dari motor dc yg di lengkapi dg encoder ini



Spesifikasi Warna Kabel
Motor
Input +5 to +12 VDC Merah
Ground Biru
Speed Encoder
Input +5 VDC Orange
Ground Hitam
Output Open Collector Kuning
116 pulsa

setelah diamati data output Encoder adalah open collector, berarti agar bisa langsung masuk ke port dari arduino, harus di kasih pull up. pull up bisa external atau bisa dari internal arduino. mungkin bisa di baca disini untuk tipe2 output dari encoder 

untuk pull up sendiri sebagai referensi bisa di lihat di website resminya arduino
kita konfigurasi pin2 sebagai berikut

 Langsung dari output (open collector) atau kabel kuning yang ada di rotary encoder tersebut masuk ke pin 2 digital. Untuk pull upnya ikut di programnya.

oh ya motor dengan speed encoder ini outputnya hanya berupa 1 data jadi tidak bisa mendeteksi motor itu cw/ccw

setelah terpasang semuanya, saatnya kita melakukan program di arduino, buka editor arduino masing-masing, berikan program seperti dibawah ini



int ledPin = 13; // LED connected to digital pin 13
int inPin = 2;   // encoder output connected to digital pin 2
int val = 0;     // variable to store the read value
int counter = 0;
int encoderLast = LOW;


 void setup() {
   digitalWrite(inPin,HIGH); // pul up arduino
   pinMode(ledPin, OUTPUT);  //pin 13set to output
   pinMode (inPin,INPUT); //pin 2 set to input
  Serial.begin(9600); //to serial monitor
 }

 void loop() {
  val = digitalRead(inPin);   // read the input pin
  digitalWrite(ledPin, val);    // sets the LED when encoder works
  if((encoderLast == LOW)&&(val==HIGH))
  {
    counter++;
    Serial.println(counter); //write in serial monitor
  }
  encoderLast = val;
 
   }

setelah selesai silahkan compile dan program.
percobaan rotary encoder dengan arduino ini adalah langsung di baca di serial monitor. nextime akan dicoba untuk di baca di LCD
Selamat mencoba

Selasa, 10 April 2012

Belajar melody dengan arduino

Sebelum melanjutkan project kemaren, hari ini AWI akan mencoba menggunakan fungsi tone() untuk menghasilkan nada lagu

syntax :
tone(pin, frequency, duration)

untuk memulai percobaan kali ini yang perlu disiapkan adalah
board Arduino
speaker (speaker telpon)
kabel

Susunanlah seperti gambar berikut ini


pin satu ke ground, dan pin satunya lagi ke pin 8 board arduino (pin boleh bebas)
  • Buka aplikasi editor arduino
  • Simpan dengan nama tertentu 
  • percobaan kali ini membuat doremi
#include "pitches.h"
//do = NOTE_C4
//re = NOTE_D4
//mi = NOTE_E4
//fa = NOTE_F4
//sol = NOTE_G4
//la = NOTE_A4
//si = NOTE_B4


int melody[] = {
  NOTE_C4,NOTE_D4,NOTE_E4,NOTE_F4,NOTE_G4,NOTE_A4,NOTE_B4,NOTE_C5};

// durasi tone
int noteDurations[] = {
  2,2,2,2,2,2,2,2};

void setup() {

  for (int thisNote = 0; thisNote < 8; thisNote++) {
    // to calculate the note duration, take one second
    // divided by the note type.
    //e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
    int noteDuration = 1000/noteDurations[thisNote];
    tone(8, melody[thisNote],noteDuration);

    // to distinguish the notes, set a minimum time between them.
    // the note's duration + 30% seems to work well:
    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);
    // stop the tone playing:
    //noTone(8);
  }
}


void loop() {
  // no need to repeat the melody.
}

untuk  include pitches.h, merupakan library frequency note. bisa di buatkan terlebih dulu, klik new tab pada sisi kanan beri nama file dengan pitches.h. dan isikan sebagai berikut :

/*************************************************
 * Public Constants
 *************************************************/

#define NOTE_B0  31
#define NOTE_C1  33
#define NOTE_CS1 35
#define NOTE_D1  37
#define NOTE_DS1 39
#define NOTE_E1  41
#define NOTE_F1  44
#define NOTE_FS1 46
#define NOTE_G1  49
#define NOTE_GS1 52
#define NOTE_A1  55
#define NOTE_AS1 58
#define NOTE_B1  62
#define NOTE_C2  65
#define NOTE_CS2 69
#define NOTE_D2  73
#define NOTE_DS2 78
#define NOTE_E2  82
#define NOTE_F2  87
#define NOTE_FS2 93
#define NOTE_G2  98
#define NOTE_GS2 104
#define NOTE_A2  110
#define NOTE_AS2 117
#define NOTE_B2  123
#define NOTE_C3  131
#define NOTE_CS3 139
#define NOTE_D3  147
#define NOTE_DS3 156
#define NOTE_E3  165
#define NOTE_F3  175
#define NOTE_FS3 185
#define NOTE_G3  196
#define NOTE_GS3 208
#define NOTE_A3  220
#define NOTE_AS3 233
#define NOTE_B3  247
#define NOTE_C4  262
#define NOTE_CS4 277
#define NOTE_D4  294
#define NOTE_DS4 311
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_GS4 415
#define NOTE_A4  440
#define NOTE_AS4 466
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932
#define NOTE_B5  988
#define NOTE_C6  1047
#define NOTE_CS6 1109
#define NOTE_D6  1175
#define NOTE_DS6 1245
#define NOTE_E6  1319
#define NOTE_F6  1397
#define NOTE_FS6 1480
#define NOTE_G6  1568
#define NOTE_GS6 1661
#define NOTE_A6  1760
#define NOTE_AS6 1865
#define NOTE_B6  1976
#define NOTE_C7  2093
#define NOTE_CS7 2217
#define NOTE_D7  2349
#define NOTE_DS7 2489
#define NOTE_E7  2637
#define NOTE_F7  2794
#define NOTE_FS7 2960
#define NOTE_G7  3136
#define NOTE_GS7 3322
#define NOTE_A7  3520
#define NOTE_AS7 3729
#define NOTE_B7  3951
#define NOTE_C8  4186
#define NOTE_CS8 4435
#define NOTE_D8  4699
#define NOTE_DS8 4978

Rangkaian Driver Motor

Postingan pada kali ini adalah persiapan untuk ujicoba arduino dalam pengendalian motor DC. yang perlu disiapkan sebelum melakukan program pada arduino adalah mempersiapkan hardware terlebih dahulu.
data output dari arduino sebelum masuk ke rangkaian driver motor, perlu adanya pemisahan rangkaian arduino dengan rangkaian driver motor. Hal ini diperlukan untuk menghindari adanya arus balik dari motor, sehingga diperlukan rangkaian optocoupler. Rangkaian optocoupler mendapat masukan dari mikrokontroler yang berupa data pergerakan motor yang selanjutnya dihubungkan ke driver motor. Pada rangkaian optocoupler, keluaran dari mikrokontroler dihubungkan dengan kaki katoda dari optocoupler, sehingga untuk mengaktifkan optocoupler dibutuhkan data dengan logika 0 atau aktif low. Adapun rangkaian driver ditunjukkan pada gambar berikut ini



Mari kita coba menghitung berapa nilai komponen yang di butuhkan
Berdasarkan datasheet optocoupler 4N25 white package besar tegangan maksimum optocoupler atau VF =1,5 Volt , sedangkan besarnya tegangan jatuh LED = 1,7 Volt dan If LED = 60 mA. Untuk menghindari kerusakan pada LED, maka direncanakan If LED dengan nilai 10 mA. Sehingga R1 dan R2 pada gambar berikut :


R1 = VCC – (VLED + VF) /IF
= 5V-(1,7+1,5)V/10mA
= 180 ohm

Catu pada optocoupler diberikan sebesar 5 volt, apabila terdapat arus yang mengalir melewati led dari optocoupler, maka transistor dari optocoupler juga akan ON. Keluaran transistor dari optocoupler ini diperoleh dari kaki kolektor yang selanjutnya dihubungkan dengan driver motor. Dalam datasheet transistor BD 139 besarnya hFE sebesar 40-250 kali sedangkan R relay berdasarkan pengukuran sebesar 120ohm. Untuk menghasilkan kerja transistor yang baik dan mengurangi kerugian daya pada transistor, maka direncanakan hFE sebesar 100 kali, sehingga dapat dihitung nilai R2 dengan terlebih dahulu menghitung nilai I C dan IB
IC(sat) = VCC/RRelay
IC(sat) = 12V/120 ohm
IC(sat) = 100mA

Sedangkan besarnya IB dapat dihitung sebagai berikut:
IB(sat) = IC(sat)/hFE
IB(sat) = 100mA/100
IB(sat) = 1mA

Maka besarnya R2 dapat dihitung sebagai berikut:
R2 = VCC–(VLED+VBE)/IB(sat)
= 12V-(1,7+0,7)V/ 1mA
= 9600ohm = 10kohm

jadi nilai R2 yang digunakan disesuaikan dengan yang ada di pasaran yaitu 10kohm.
Prinsip kerja dari driver motor adalah jika input 1, 3, 4 berlogika 1 dan input 2 berlogika 0, maka motor 1 akan maju dan motor 2 diam. Jika input 1 berlogika 0 dan input 2, 3, 4 berlogika 1, maka motor 1 akan mundur dan motor 2 diam. Jika input 1, 2, 3 berlogika 1 dan input 4 berlogika 0, maka motor 1 akan diam dan motor 2 maju. Jika input 1, 2 ,4 berlogika 1 dan input 3 berlogika 0, maka motor 1 akan diam dan motor 2 mundur. Keluaran dari driver motor adalah 0 volt dan 12 volt. Pada perancangan, relay digunakan untuk men-driver 2 buah motor yang dapat berputar maju atau mundur.

Minggu, 01 April 2012

Library pada LCD (Liquid Cristal Display)

Halo AWI'ers, postingan kali ini bukan merupakan postingan project, melainkan akan membahas tentang library dasar yang ada pada arduino untuk LCD.
Library ini dipakai ketika kita koding menggunakan LCD di dalamnya.
untuk versi resminya bisa di lihat di website resmi arduino (http://arduino.cc/en/Reference/LiquidCrystal)

Fungsi:

LiquidCrystal()
adalah setingan awal ketika menggunakan LCD, setingan ini berfungsi untuk konfigurasi dari pin LCD.
sintaknya :
LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)

begin()
untuk menentukan dimensi dari lcd yang akan di gunakan
sintaknya :
lcd.begin(cols,rows)

clear()
untuk menghapus layar LCD dan posisi kursor di sudut kiri atas.
sintaknya :
lcd.clear()

home()
Posisi kursor di kiri atas LCD. Artinya, menggunakan lokasi yang di keluaran teks setelah layar. Untuk juga menghapus layar, gunakan fungsi clear () sebagai gantinya.
sintaknya
lcd.home()

setCursor()
menentukan posisi cursor mulai penulisan
sintaknya :
lcd.setCursor(col,row)

write()
untuk menuliskan data pada LCD,misalkan akan menuliskan data dari hasil pembacaan serial dsb
sintaknya :
lcd.write(data)

print()
untuk menuliskan text pada LCD
sintaknya :
lcd.write("text")

cursor() dan noCursor()
Menampilkan kursor LCD: underscore (garis) pada posisi mana karakter berikutnya akan ditulis. dan menidaktampilkan
sintaknya :

lcd.cursor()
lcd.noCursor()

blink() dan noBlink()
Menampilkan kursor LCD berkedip. Jika digunakan dalam kombinasi dengan fungsi cursor(), hasilnya akan bagus. noBlink (tidak menampilkan)
sintaknya :
lcd.blink()
lcd.noBlink()

display() dan noDisplay()
Menyalakan pada layar LCD, setelah itu sudah dimatikan dengan noDisplay (). Ini akan mengembalikan teks (dan kursor) yang ada di layar.
sintaknya :
lcd.display()
lcd.noDisplay()

scrollDisplayLeft() dan scrollDisplayRight()
skrol konten display satu space dari kiri / kanan
lcd.scrollDisplayLeft()
lcd.scrollDisplayRight()

autoscroll()
noAutoscroll()
leftToRight()
rightToLeft()
createChar()

Sabtu, 31 Maret 2012

membuat sensor jarak dengan arduino

Hallo, apa kabar arduinoers....

Hari ini AWI (arduino.web.id) akan mencoba berkreasi membuat projek sederhana, penghitung jarak (sensor Jarak) dengan menggunakan arduino.

Yang perlu disiapkan adalah
  • Board Arduino
  • SRF05
  • LCD 16x2
  • Kabel Konektor
  • PC/Laptop
Masih ingat dengan postingan sebelumnya yang mengenai SRF05 (http://www.arduino.web.id/2012/03/belajar-arduino-dan-srf05.html)  dan postingan mengenai LCD (http://www.arduino.web.id/2012/03/belajar-arduino-dan-lcd.html). Dengan bekal kedua postingan tersebut mari kita membuat project sederhana

Untuk konfigurasi pin adalah sebagai berikut
Pin LCD dengan board Arduino
  • Pin RS (kaki 4) di sambungkan dengan pin arduino digital pin 12
  • Pin E (kaki 6) di sambungkan dengan pin arduino digital pin 11
  • Pin D4 (kaki 11) di sambungkan dengan pin arduino digital pin 5
  • Pin D5 (kaki 12) di sambungkan dengan pin arduino digital pin 4
  • Pin D6 (kaki 13) di sambungkan dengan pin arduino digital pin 3
  • Pin D7 (kaki 14) di sambungkan dengan pin arduino digital pin 2
  • sambungkan potensio 10 KOhm ke  +5v dan GND , dan Pin LCD 3 ke potensio
  • Pin 5 (R/W) ke Ground
sedangkan untuk SRF05 dengan Arduino
  • pin 1 (5v Supply) pada SRF05 disambungkan ke positif 5v
  • pin 2 (echo output) pada srf05 disambungkan ke pin 6 pada arduino
  • pin 3 (trigger input) pada srf05 disambung ke pin 7 pada arduino
  • pin 4 (no connection)
  • pin 5 (gnd) pada srf05 di sambungkan ke ground
Atau bisa di gambar sebagai berikut


Setelah semua selesai sekarang saatnya mencoba untuk programing di Arduino, pastikan instalan device arduino dengan komputer sudah tersambung. buka halaman editor untuk arduino silahkan coding seperti di bawah ini

// include the library code:
#include <LiquidCrystal.h>

#define echoPin 6             //inisialisai echo pin pada port 6
#define initPin 7             // inisialisasi triger pin pada port 5
unsigned long pulseTime = 0;  // variabel untuk membaca pulsa

// inisialisai LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
 //Setup LCD
 lcd.begin(16, 2);

 // setting output pada pin initPin
 pinMode(initPin, OUTPUT);
 //setting input untuk pin Echo
 pinMode(echoPin, INPUT);
}

void loop() {
 digitalWrite(initPin, HIGH);
 delayMicroseconds(10);
 digitalWrite(initPin, LOW);

 pulseTime = pulseIn(echoPin, HIGH);

 lcd.setCursor(0,0);
 lcd.print("Jarak = ");
 lcd.print(pulseTime / 58, DEC);
 lcd.print(" cm");
 lcd.setCursor(0,1);
 lcd.print(" arduino.web.id");

 delay(100);
 lcd.clear();
}

Setelah semua selesai dan di download ke board arduino, silahkan amati apa yg terjadi.



Kamis, 29 Maret 2012

Belajar Arduino dan SRF05


SRF05 merupakan sensor pengukur jarak yang menggunakan ultrasonik. Dimana prinsip kerja sensor Ultrasonik ini adalah Pemancar(transmitter) mengirimkan seberkas gelombang ultrasonik, lalu diukur waktu yang dibutuhkan hingga datangnya pantulan dari obyek. Lamanya waktu ini sebanding dengan dua kali jarak sensor dengan obyek, sehingga didapat jarak sensor dengan obyek yang bisa ditentukan dengan persamaan

Jarak = Kecepatan_suara × waktu_pantul/2
Sensor ultrasonik Devantech srf05 dengan spesifikasi sebagai berikut :
  1. Bekerja pada tegangan DC 5 volt
  2. Beban arus sebesar 30 mA – 50 mA
  3. Menghasilkan gelombang dengan frekuensi 40 KHz
  4. Jangkauan jarak yang dapat dideteksi 3 cm – 400 cm
  5. Membutuhkan trigger input minimal sebesar 10 uS
  6. Dapat digunakan dalam dua pilihan  mode  yaitu input trigger dan output echo terpasang pada pin yang berbeda atau input trgger dan output echo terpasang dalam satu pin yang sama.  
Mode 1- SRF05 - Trigger dan Echo terpisah
Pada  mode  ini,  untuk  mengakses  input  dan  output digunakan pin sensor utrasonik yang berbeda. Artinya satu pin akan berfungsi sebagai transmitter dan satu pin sisanya berfungsi sebagai receiver. Jadi antara Triger dan Echo di bedakan.


Timing diagram SRF05  mode trigger dan echo yang terpisah adalah sebagai berikut


Mode 2- SRF05 - Trigger dan echo dalam 1 pin
Pada mode ini menggunakan 1 pin untuk digunakan sebagai trigger dan echo. Untuk menggunakan mode ini, hubungkan pin mode pada 0V / ground. Sinyal echo dan sinyal trigger di dapat dari 1 pin saja dengan delay antara sinyal trigger dan sinyal echo kurang lebih 700 us

Timing diagram SRF05  mode trigger dan echo yang jadi satu adalah sebagai berikut




Perlengkapan yang dibutuhkan pada percobaan kali ini
  • SRF05
  • Arduino Uno
  • Kabel Konektor
Menyambungkan SRF05 dengan board arduino
  • pin 1 (5v Supply) pada SRF05 disambungkan ke positif 5v
  • pin 2 (echo output) pada srf05 disambungkan ke pin 6 pada arduino
  • pin 3 (trigger input) pada srf05 disambung ke pin 7 pada arduino
  • pin 4 (no connection)
  • pin 5 (gnd) pada srf05 di sambungkan ke ground