Entri Populer

Minggu, 15 Mei 2011

Contoh Program Sensor pink(Ultrasonic)

Akhirnya saya dapat mengupdate ini blog saya cuma nambahin ini contoh program untuk yg pengen make sensor pink maaf klo ad email yg ngak bisa saya jawab soalnya kadang sibuk

$regfile = "m8535.dat"
$lib "lcd4busy.Lbx"

$crystal = 8000000
Config Lcd = 16 * 2
Const _lcdport = Portd
Const _lcdddr = Ddrd
Const _lcdin = Pind
Const _lcd_e = 2
Const _lcd_rw = 1
Const _lcd_rs = 0
Cursor Off

Config Portb.2 = Output
Dim Waktu As Word
Dim Jarak As Single
Dim Karakter As String * 6
Const Kecepatan = 34.4
Const Satuan_waktu = 1.0875
Ping Alias Portb.2

Wait 1
Cursor Off
Cls
Locate 1 , 1 : Lcd "="
Locate 2 , 1 : Lcd "jarak ="
Do
   Counter0 = 0
   Set Ping
   nop
   nop
   nop
   Reset Ping
   Delay
   Delay
   Delay
   Delay
   Delay
   Delay
   Delay
   Set Ping
   nop
   nop
   nop
   Bitwait Ping , Set
   Start Timer0
   Bitwait Ping , Reset
   Stop Timer0
   Reset Ping
   Waktu = Counter0
   Jarak = Satuan_waktu * Waktu
   Jarak = Jarak / 2000
   Karakter = Fusing(jarak , "##.##")
   Locate 1 , 8 : Lcd " "
   Locate 1 , 8 : Lcd Karakter ; "ms"
   Jarak = Jarak * Kecepatan
   Karakter = Fusing(jarak , "###.##")
   Locate 2 , 8 : Lcd " "
   Locate 2 , 8 : Lcd Karakter ; "cm"
   Waitms 250
   Print Jarak
Loop
End

Minggu, 13 Maret 2011

Contoh Program bascom untuk menyalakan motor

$regfile = "m8535.dat"
   $crystal = 8000000
   $baud = 9600

   Config Pina.2 = Input           'inisialisai port yang digunakan sebagai input/ masukkan
   Config Pina.3 = Input
   Config Pina.4 = Input
   Config Porta.0 = Output
   Config Porta.1 = Output

   Motor_a Alias Porta.0        'inisialisasi port yang digunakan sebagai motor
   Motor_b Alias Porta.1
   Interrupt Alias Pina.7
   Switch_open Alias Pina.2
   Switch_close Alias Pina.3

   Reset Motor_a            
   Reset Motor_b


Motor_a = 1              'motor_a berputar
      Bitwait Switch_open , Set             'berputar sampai dengan limitswich tertekan
         Motor_a = 0                                 'motor_a mati setelah limitswich ditekan
      Bitwait Interrupt , Set
         Cls
         Locate 1 , 6
         Lcd "WELCOME"
      Do
      Loop Until Interrupt = 0
         Motor_b = 1
      Bitwait Switch_close , Set
         Motor_b = 0
end

initinya program diatas adalah menggerakkan motor dc dengan dua arah dimana motor_a adalah untuk searah jarum jam sedangkan motor_b sebaliknya. diamana ditambahkan pula limitswich sebagai pembatas pintu maklum aplikasi program ini untuk buka tutup pintu otomatis klo ngak ganti pake push button bisa juga kok sedangkan interrupt digunakan untuk optocoupler yang berguna untuk mendeteksi orang lewat. jadi secara keseluruhan program ini yaitu pertama motor berputar sampai limitswich tertekan lalu berhenti kemudian menunggu perintah dari optocoupler yaitu pina.7 setelah itu motor berputar sampai mendapatkan masukkan dari limitswich kedua setelah itu motor berhenti selesai deh program nya
mohon maaf klo ada yang salah /kurang jelas Terimakasih

Jumat, 11 Februari 2011

Program Bascom AVR untuk cek serial

nah sekarang gw postingin program cek serial, klo kita punya Minsys (minimum system) yang pake AVR nih programnya gampang kok tinggal hubungin  mikro  kekomputer dengAN menggunakan db9 jgn lupa buka dikomputer pake hyperterminal jg lupa programnya didownload kemikro klo ada pertanyaan Tulis di Comment or email ke argit_wanto@yahoo.co.id


$regfile = "m8535.dat"                                     ' we use the M48
$crystal = 8000000
$baud = 9600


   Open "comd.3:19200,8,n,1" For Output As #1               'open port for tx and rx external
   Open "comd.2:19200,8,n,1" For Input As #2


   Do
   Print "bismillah"
   Print #1 , "Bismillah"
   Loop



Open "comd.3:19200,8,n,1" For Output As #1 digunakan untuk mengubuka port mikro ke komputer agar mau ngirimim data berupa tulisan bismillah klo suskes
ini program cuma untuk mengetahui apakah komunikasi serial mikro dapat digunakan atau tidak

Terima kasih

Selasa, 08 Februari 2011

Belajar program Smart card (contactless Smart card)

smart card atau kartu pintar, (kartu aja bisa pintar masa manusia ngak bisa pintar) Hehheh
disini saya akan berbagi ilmu tentang cara memprogram smart card, smartcard yg saya gunakan adalah jenis mifare dengan kapasitas 1kb, dan tag acr 120s dan sebuah program yang dapat mengirimkan nilai -heksa
seperti Advance Serial Port, Hercules, Dlll dapat dicari di google
pertama program untuk mendapatkan Station ID
Hex
02 FF 01 67 99 03
Answer
Station ID (1 byte)
 station id penting karena untuk select card, login dibutuhkan id untuk mengaksesnya
Get Serial Number / Select Instruksi ini digunakan untuk mengetahui ID dari tiap – tiap MIFARE, instruksi ini harus dilakukan sebelum melakukan login pada kartu MIFARE. Kartu harus berada dalam jangkauan reader agar mendapatkan balasan dari reader.
Tabel 3.11 Data Select Card
Hex
02 01 01 73 73 03
Answer
02 00 04 nn nn nn nn cc 03

02 00 01 46 47 03(Fail)

02 00 01 4e 4f 03 (No card)
Login  Untuk melakukan proses read, write atau lainnya pada blok harus dilakukan login terlebih dahulu ke sektor di mana blok tersebut berada. Jika telah melakukan login ke sebuah sektor tersebut dapat diproses dengan instruksi berbeda beberapa kali tanpa perlu login lagi selama kartu masih dalam jarak baca reader. Jika kartu telah keluar dari jangkauan reader maka harus dilakukan select dan login kembali ke sektor tersebut. Begitu pula jika ingin melakukan proses di sektor lain maka harus dilakukan kembali instruksi select dan login.
            Berikut adalah contoh untuk login pada sektor 1 dari kartu MIFARE :




Tabel 3.12 Data Login Card
Hex
02 01 04 6C 01 FF 0D 9a 03
Answer
02 01 01 4c 4d 03 (Success)

02 01 01 4e 4f 03 (No Card)

02 01 01 46 47 (fail / Error)
Write Blok Instruksi write dilakukan pada blok tertentu dan harus sesuai pada sektornya. Sebagai contoh untuk write pada blok 04H sektor 1 data 00112233 dapat dilakukan seperti berikut:
Tabel 3.13  Data Write Block
Hex
02 01 06 77 04 00 11 22 33 74 03
Answer
02 00 10 (16 bytes of data) cc 03
Read blok Sama seperi istruksi write, instruksi read juga dilakukan pada blok yang diinginkan sesuai dengan login sektornya.
Tabel 3.14 Data Read Blok
Hex
02 01 02 72 04 75 03
Answer
02 00 10 (16 bytes of data) cc 03



Cukup sekian dulu saya juga masih belajar mudah mudahan bermanfaat

Rabu, 02 Februari 2011

ATMEGA 8535 dan Fungsi-fungsinya

  MIKROKONTROLLER ATMEGA 8535
Mikrokontroler adalah  IC  yang  dapat  diprogram  berulang  kali,  baik  ditulis  atau dihapus  (Agus Bejo, 2007). Biasanya digunakan untuk pengontrolan otomatis dan manual pada perangkat elektronika.
Beberapa tahun terakhir, mikrokontroler sangat banyak digunakan terutama dalam pengontrolan robot. Seiring perkembangan elektronika, mikrokontroler dibuat semakin kompak dengan bahasa pemrograman yang juga ikut berubah. Salah satunya adalah mikrokontroler AVR (Alf  and Vegard’s Risc processor) ATmega8535 yang menggunakan teknologi RISC (Reduce Instruction  Set Computing) dimana program berjalan lebih cepat karena hanya membutuhkan satu siklus clock untuk mengeksekusi satu instruksi program. Secara umum, AVR dapat dikelompokkan menjadi 4  kelas, yaitu kelas ATtiny, keluarga AT90Sxx, keluarga ATmega, dan AT86RFxx. Pada dasarnya  yang membedakan masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama.
Mikrokontroler  AVR  ATmega8535  memiliki  fitur  yang  cukup  lengkap. Mikrokontroler AVR ATmega8535 telah dilengkapi dengan ADC internal, EEPROM internal,  Timer/Counter,  PWM,  analog  comparator,  dll  (M.Ary  Heryanto,  2008). Sehingga    dengan          fasilitas          yang   lengkap          ini            memungkinkan kita            belajar mikrokontroler   keluarga   AVR   dengan   lebih   mudah   dan   efisien,   serta   dapat mengembangkan kreativitas penggunaan mikrokontroler ATmega8535.
Fitur-fitur yang  dimiliki  oleh  mikrokontroler  ATmega8535  adalah  sebagai berikut:
1.    Saluran I/O sebanyak 32 buah, yaitu port A, port B, port C, dan port D.

2.    ADC internal sebanyak 8 saluran.

3.    Tiga buah Timer/Counter dengan kemampuan pembandingan.

4.    CPU yang terdiri atas 32 buah register.

5.    SRAM sebesar 512 byte.

6.    Memori Flash sebesar 8 kb dengan kemampuan Read While Write.

7.    Port antarmuka SPI

8.    EEPROM sebesar 512 byte yang dapat diprogram saat operasi.

9.    Antarmuka komparator analog.

10. Port USART untuk komunikasi serial.

11. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.

12. Dan lain-lainnya.

2.6.1 Konstruksi ATmega8535
Mikrokontroler  ATmega8535  memiliki  3  jenis  memori,  yaitu  memori  program, memori data dan memori EEPROM. Ketiganya memiliki ruang sendiri dan terpisah.
a.  Memori program
ATmega8535  memiliki  kapasitas  memori  progam  sebesar  8  Kbyte  yang terpetakan   dari  alamat  0000h   0FFFh  dimana  masing-masing  alamat memiliki lebar data 16 bit. Memori program ini terbagi menjadi 2 bagian yaitu bagian program boot dan bagian program aplikasi.
b.  Memori data
ATmega8535 memiliki kapasitas memori data sebesar 608 byte yang terbagi menjadi  3   bagian  yaitu  register  serba  guna,  register  I/O  dan  SRAM. ATmega8535 memiliki 32 byte register serba guna, 64 byte register I/O yang dapat diakses sebagai bagian dari memori  RAM (menggunakan instuksi LD atau ST) atau dapat juga diakses sebagai I/O (menggunakan instruksi IN atau OUT), dan 512 byte digunakan untuk memori data SRAM.
c.  Memori EEPROM
ATmega8535 memiliki memori EEPROM sebesar 512 byte yang terpisah dari memori  program maupun memori data. Memori EEPROM ini hanya dapat diakses dengan  menggunakan register-register I/O yaitu register EEPROM Address,  register  EEPROM  Data,  dan  register  EEPROM  Control.  Untuk mengakses  memori  EEPROM  ini   diperlakukan  seperti  mengakses  data eksternal, sehingga waktu eksekusinya relatif lebih  lama bila dibandingkan dengan mengakses data dari SRAM.
ATmega8535 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal  dengan fidelitas 10 bit. Dalam mode operasinya, ADC ATmega8535 dapat dikonfigurasi, baik secara single ended input maupun differential input. Selain itu, ADC ATmega8535 memiliki konfigurasi  pewaktuan, tegangan referensi, mode operasi, dan kemampuan filter derau yang amat fleksibel,  sehingga dengan mudah disesuaikan dengan kebutuhan ADC itu sendiri.
ATmega8535 memiliki 3 modul timer yang terdiri dari 2 buah timer/counter 8 bit dan 1 buah timer/counter 16 bit. Ketiga modul timer/counter ini dapat diatur dalam mode yang berbeda secara  individu dan tidak saling mempengaruhi satu sama lain. Selain  itu,  semua  timer/counter  juga  dapat  difungsikan  sebagai  sumber  interupsi. Masing-masing timer/counter ini memiliki register tertentu  yang digunakan untuk mengatur mode dan cara kerjanya.
Serial Peripheral  Interface  (SPI)  merupakan  salah  satu  mode  komunikasi serial  syncrhronous  kecepatan  tinggi  yang  dimiliki  oleh  ATmega8535.  Universal Syncrhronous and  Asyncrhronous Serial Receiver and Transmitter (USART) juga merupakan  salah  satu  mode  komunikasi  serial  yang  dimiliki  oleh  ATmega8535. USART  merupakan  komunikasi  yang   memiliki  fleksibilitas  tinggi,  yang  dapat digunakan untuk melakukan transfer data baik antar mikrokontroler maupun dengan modul-modul eksternal termasuk PC yang memiliki fitur UART.
USART memungkinkan  transmisi  data  baik  secara  syncrhronous  maupun asyncrhronous, sehingga dengan memiliki USART pasti kompatibel dengan UART. Pada           ATmega8535,  secara  umum  pengaturan mode syncrhronous   maupun asyncrhronous adalah sama. Perbedaannya hanyalah terletak pada sumber clock saja. Jika pada  mode  asyncrhronous  masing-masing  peripheral  memiliki  sumber  clock sendiri, maka pada mode syncrhronous hanya ada satu sumber clock yang digunakan secara bersama-sama. Dengan demikian, secara hardware untuk mode asyncrhronous hanya   membutuhkan   2   pin   yaitu   TXD   dan   RXD,   sedangkan   untuk   mode syncrhronous harus 3 pin yaitu TXD, RXD dan XCK.

Gambar 2.5 Konfigurasi Pin Atmega 8535

Konfigurasi pin  ATmega8535  dengan  kemasan  40  pin  DIP  (Dual  Inline Package) dapat dilihat pada gambar 2.1. Dari gambar di atas dapat dijelaskan fungsi dari masing-masing pin Atmega8535 sebagai berikut:
1.    VCC merupakan pin yang berfungsi sebagai masukan catu daya.
2.    GND merukan pin Ground.
3.     Port A (PortA0…PortA7) merupakan pin input/output dua arah dan pin masukan ADC.
4.  Port  B  (PortB0…PortB7)  merupakan  pin  input/output  dua  arah  dan    dan  pin fungsi khusus, seperti dapat dilihat pada tabel di bawah ini.
Tabel 2.6  Fungsi Khusus Port B

Pin

Fungsi Khusus

PB7

SCK (SPI Bus Serial Clock)

PB6

MISO (SPI Bus Master Input/ Slave Output)

PB5

MOSI (SPI Bus  Master Output/ Slave Input)

PB4

SS (SPI Slave Select Input)


PB3
AIN1 (Analog Comparator Negative Input)
OC0 (Timer/Counter0 Output Compare Match Output)


PB2
AIN0 (Analog Comparator Positive Input) INT2 (External Interrupt 2 Input)

PB1

T1 (Timer/ Counter1 External Counter Input)


PB0
T0 T1 (Timer/Counter External Counter Input) XCK (USART External Clock Input/Output)

2.              Port C (PortC0…PortC7) merupakan pin input/output dua arah dan pin fungsi khusus, seperti dapat dilihat pada tabel dibawah ini.
Tabel 2.7 Fungsi Khusus Port C


Pin

Fungsi khusus
PC7
TOSC2 ( Timer Oscillator Pin2)

PC6

TOSC1 ( Timer Oscillator Pin1)

PC5

Input/Output

PC4

Input/Output

PC3

Input/Output

PC2

Input/Output

PC1

SDA ( Two-wire Serial Buas Data Input/Output Line)

PC0

SCL ( Two-wire Serial Buas Clock Line)

6. Port D (PortD0…PortD7) merupakan pin input/output dua arah dan pin fungsi khusus, seperti yang terlihat pada tabel dibawah ini.
Tabel 2.8 Fungsi Khusus Port D


Pin

Fungsi khusus

PD7

OC2 (Timer/Counter Output Compare Match Output)

PD6

ICP (Timer/Counter1 Input Capture Pin)

PD5

OC1A (Timer/Counter1 Output Compare A Match Output)

PD4

OC1B (Timer/Counter1 Output Compare B Match Output)

PD3

INT1 (External Interrupt 1 Input)

PD2

INT0 (External Interrupt 0 Input)

PD1

TXD (USART Output Pin)

PD0

RXD (USART Input Pin)