Showing posts with label microcontroller. Show all posts
Showing posts with label microcontroller. Show all posts

Thursday 16 April 2015

SERIAL :: istilah dalam komunikasi serial


Berikut ini beberapa istilah dalam komunikasi serial, yaitu :
1      Synchronous (sinkron) adalah kondisi pengiriman data serial yang disertai dengan pengiriman detak (clock).
2      Asynchronous (asinkron) adalah kondisi dengan detak tidak dikirim bersamaan dengan data serial sehingga masing-masing perangkat keras yang berkomunikasi harus menciptakan detaknya sendiri.
3      Baud rate merupakan istilah yang digunakan untuk kecepatan aliran data. Satuan baud rate adalah bps (bit per second). Contohnya, 9600 bps atau 19200 bps.
4      Full duplex adalah jenis komunikasi serial yang menyatakan hubungan antara dua perangkat keras, A dan B. Jika A sedang melakukan pengiriman data, pada saat yang sama, A dapat menerima data dari B, dan sebaliknya. Kondisi ini dinamakan full duplex atau komunikasi dua arah. Contohnya, telepon.
5      Half duplex merupakan kondisi ketika proses pengiriman dan penerimaan data tidak dapat dilakukan secara bersamaan seperti pada full duplex namun dilakukan secara bergantian. Contohnya, pesawat intercom dan walkie talkie.
Jenis komunikasi serial diantaranya UART (Universal Asynchronous Receiver/Transmitter), SPI, dan I2C (Inter Integrated Circuit). Pada komunikasi serial asinkron jenis full duplex digunakan tiga jalur yaitu, jalur Tx (transmit / pengiriman), jalur Rx(receive / penrimaan), dan jalur ground. Umumnya jumlah data yang dikirim adalah satu bit start, delapan bit data, dan satu bit stop sehingga dalam satu frame data terdapat sepuluh bit (format 1-8-1).
komunikasi serial
komunikasi serial
Komunikasi serial pada mikrokontroler AT89S51 bergantung pada kondisi pin Rx dan Tx. Data yang akan dikirim dan diterima harus diletakkan atau ditampung pada register SBUF (serial buffer). SBUF pada mikrokontroler  dipisahkan antara pengiriman data dan penerimaan data tetapi dalam pemrogramannya hanya ada satu yaitu SBUF saja. Tugas compiler untuk memahami SBUF yang dimaksud oleh program dan menterjemahkannya ke dalam kode mesin untuk masing-masing SBUF.
Register SBUF
Register SBUF
Register lain yang berkaitan dengan komunikasi serial adalah SCON (Serial Port Control Register) dan PCON (Power Control Register). Bit kedua dan bit ketiga SCON hanya digunakan untuk komunikasi serial dengan data sembilan bit sedangkan bit-bit yang lain digunakan di hampir setiap mode komunikasi serial.
Register SCON
Register SCON
Isi register SCON
Isi register SCON
Register PCON digunakan untuk pengaturan baud rate atau kecepatan transmisi serial yaitu melalui bit yang bernama SMOD. Register PCON terdiri atas delapan bit seperti diilustrasikan berikut.
Register PCON
Register PCON
Saat pertama kali mikrokontroler dihidupkan atau dalam kondisi reset, semua nilai bit pada PCON adalah 0 (nol). Dari lima bit yang ada pada register PCON, mikrokontroler MCS-51 hanya menggunakan tiga bit saja yaitu SMOD, PD, dan IDL. Dari tiga bit tersebut, yang berhubungan dengan komunikasi serial adalah SMOD. GF1 dan GF0 digunakan untuk fungsi umum atau general purpose register.
Isi register PCON
Isi register PCON
Port serial AT89S51 dapat digunakan untuk empat mode sesuai pengaturan bit SM0 dan SM1 seperti pada gambar dibwah ini. Mode yang umum dipakai adalah UART 8 bit (mode 1) sedangkan aplikasi yang rentan terhadap gangguan menggunakan mode 2 dan mode 3.
Mode kerja port serial
Mode kerja port serial
Berikut penjelasan masing-masing mode, yaitu :
1      Mode 0
Mode 0 merupakan mode sinkron dengan detak juga ikut dikirimkan bersamaan dengan data serial. Detak dikirim melalui TxD (dengan kecepatan fosc/12). Sedangkan, pin RxD digunakan untuk mengirim dan menerima data. Sifat mode 1 adalah half duplex. Jika CPU difungsikan untuk menerima data, maka RI dikosongkan terlebih dahulu (RI=0) dan REN=1.
2      Mode 1
Mode 1 merupakan mode asinkron full duplex. Format data yang digunakan adalah 1 bit start, 8 bit data, dan 1 bit stop dengan protokol RS-232 tetapi dengan level tegangan TTL. Sepuluh bit paket data tersebut dikirim melalui pin TxD dan dapat diterima melalui pin RxD.
3      Mode 2
Mode 2 adalah mode asinkron full duplex dengan sebelas bit paket data yaitu, 1 bitstart, 8 bit data, 1 bit RB8 (atau TB8) dan 1 bit stop. RB8 digunakan untuk menerima bit data ke-9 sedangkan TB8 digunakan untuk menampung bit data ke-9 yang akan dikirimkan. Bit data ke-9 sering disebut juga sebagai Parity (P). mode 2 mendukung pemanfaatan multiprosesor. Baud rate dapat dipilih antara fosc/32 ataufosc/64 tergantung pada pilihan SMOD di register PCON. Jika SMOD=0 maka baud rate adalah fosc/64 dan jika SMOD=1 maka baud rate adalah fosc/32.
4      Mode 3
Mode 3 sama dengan mode 2. Perbedaannya hanyalah terletak pada baud rate.Baud rate pada mode ini daopat diatur melalui timer 1.
Mode 1 dan mode 3 sering digunakan untuk komunikasi RS-232 dengan format berikut :
  • Mode 1 : 1 + 8 + 1
  • Mode 3 : 1 + 8 + P + 1
Pengaturan baud rate pada mikrokontroler AT89S51 disesuaikan dengan mode yang dipilih.
Hubungan mode dengan baud rate
Hubungan mode dengan baud rate
Rumus baud rate untuk setiap mode komunikasi serial, yaitu :
Rumus mode serial
Rumus mode serial

Thursday 15 January 2015

Perancangan dan Pembuatan Sound Aktifasi Robot KRCI dengan IC LM555

Untuk rangkaian sound aktifasi terdiri dari 2 bagian yaitu pemancar dan penerima. Rangkaian pemancar berfungsi membangkitkan sinyal suara dengan frekuensi tertentu dan rangkaian penguat agar suara yang dihasilkan mempunyai daya yang tinggi selanjutnya adalah speaker sebagai output yang berfungsi untuk mengeluarkan suara.


Pembangkit gelombang yang digunakan adalah IC LM555 yang diatur sebagai pembangkit gelombang kotak. Frekuensi yang diinginkan adalah sebesar 3 – 4 kHz.

  Frekuensi yang dihasilkan dapat diatur dari kombinasi nilai resistor dan kapasitor RA, RB, dan C yang dapat dihubungkan dengan menggunakan rumus sebagai berikut.
                          f =1.414 / ((RA + 2*RB)*C)
                        Duty_Cycle = RB / (RA + 2*RB)
            
Supaya lebih memudahkan pengaturan resistor Rmenggunakan sebuah variable resistor supaya dapat diubah-ubah frekuensinya sesuai kebutuhan. Nilai-nilai RA, RB, dan C yang diperoleh darii perhitungan dengan rumus diatas adalah sebagai berikut:R= 1 kΩ; R= 3.9 kΩ; C = 0.047µF

Gambar 1 IC LM555 sebagai sound generator
                

Pada rangkian penerima terdiri atas mic sebagai input dan juga menerima gelombang suara dari pemancar. Dengan mengatur nilai resistor dan kapasitor, dapt diatur range frekuensi yang dapat dideteksi oleh IC ini. Jadi nilai resistor dan kapasitor yang dihubungkan pada IC tersebut diatur sehingga dapat mendeteksi suara pada range frekuensi tersebut (3 – 4 kHz).

Besarnya frekuensi tegangan dari tone decoder ini dapat dihitung dengan menggunakan rumus:
                             fo = 1 / (1.1*R1*C1)
Untuk selanjutnya nilai kapasitor Cdibuat tetap sedangkan nilai Rdibuat variable untuk memidahkan dalam melakukan seting dalam rangka mendapatkan nilai frekuensi yang diinginkan. 

 Output dari IC ini adalah berupa open colektor yang dapat disambung dengan sebuah LED sebagai indicator. Output dapat langsung dihubungkan dengan pin mikrokontroller dengan terlebih dahulu diberikan resiator pullup. Sedangkan untuk rangkaian amplifiernya menggunakan penguat sebuah transistor biasa untuk memberikan sinyal yang ditangkap oleh microphone.


Gambar 2 Rangkaian Tone decoder LM567 dan Rangkaian Amplifier

RANGKAIAN Sound Activation LM324


Gambar rangkaian:

 

Gambar 1. Rangkaian Sound Activation

Dari rangkaian diatas mic condensor berfungsi sebagai penerima sinyal suara yang dirangkai menjadi pembagi tegangan, kemudian tegangan dari mic condensor masuk ke input inverting (V-) IC LM324 / LM393. Kemudian trimpot untuk mensetting nilai tegangan input non inverting / tegangan refrensi (V+) dalam hal ini digunakan sebagai sensitivitas mic condensor. Tegangan output dari komparator masuk ke port mikrokontroler dan diberi indikator led. Setelah di uji coba mic condensor ketika mendeteksi suara, lampu indikator led menyala atau logika High (1). sedangkan jika mic condensor tidak mendeteksi suara, lampu indikator led tidak menyala atau logika low (0). 

Trimpot yang digunakan sebaiknya jenis multi turn, hal ini dikarenakan agar sensitivitas dari mic condensor bisa diatur sebaik mungkin. berikut jenis trimpot multi turn yg digunakan.

 


 Gambar 2. Trimpot Multi turn

Sound activation ini masih memiliki kekurangan yaitu jarak suara yang diterima tidak terlalu jauh. sehingga harus di tambah dengan rangkaian penguat.

sumber : http://jhorobin.blogspot.com/2014/04/diy-sound-activation.html

Rangkaian Sound Activation Atau Tone Detector Menggunakan IC LM567



https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-LEGpohh-rhgUqsIR5szEwp5ByX2z5XIZHggsoeYkWh3NHS7CmOLc2Qv7UiX4jNCX2siSInspGVerCxYe74VVOVrte0jlr0FUenyRxVQIQ3-Wy4cWR-LaHMlrS22Lr9Loh51hLYF4xek/s1600/tone+detector.jpg

1. IC LM567 Tone Decoder (komponen utama dalam rangkaian ini)
2. Microphone (Sebagai Inputnya)
3. Catu daya 5 VDC 
4. RV1= Resisitor Variabel (Trimmpot/Potensiometer) 10k Ohm (kode= 103)
5. R1, R3 = 10k Ohm 
    (bebas berapa watt dan toleransinya, tapi kalau bisa yang 1/4 watt dan toleransi 1%)
6. R2 = 1k Ohm
7. Led 5mm (untuk indikator)
8. C1= Elco 2.2 uF ( bebas berapa Volt)
9. C2,C4 = Elco 0.1 uF ( bebas berapa Volt)
10. C3 = Elco 10 uF  ( bebas berapa Volt)
11. Soket IC 4x2 atau 8 pin (untuk dudukan IC LM 567)
12. Header Pin (untuk soket input dan outputnya )

Tataletak komponen
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNRmKEUIw9o0jqxhmVkfBcZnGRUV6GHJSUCfSR033SuG_BO4RaB6X4Cg33iVyex7itDp3vcsunycRyundkOkYSqO2YWOQOm4x8hop1VgSFQKdgtkCnIOXy492HKayw1jnbjfnXnVOjE2c/s1600/tataletak+SA.png
Jalur PCB
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyvdnoADDuobneM9tl4g2KD0CJErDjEoFWdU5KiA73WJf5z2g9C-Ghyphenhyphen_H91iVjL-Sc7TQ8QFsOoHaYGplw6uwjARdL9jkiqYOtE87_hVI4IHIUOeGTiEPUWHm19Lbmdq26inMJ5XzH-e8/s1600/pcb+SA.png

sumber : http://www.rizrobot.com/2014/01/schematic-and-pcb-rangkaian-sound.html

Friday 12 December 2014

MICROCONTROLLER :: BELAJAR INTERFACE MODEM WAVECOM DENGAN AT89S52



Setelah lihat2 tutorial kebanyakan modemnya masih yang serial, kemudian saya membeli konverter usb ke rs232 dengan berharap bisa langsung dikomunikasikan… tetapi apa yang terjadi malah tidak bisaaaaaa…
Proses I.
Kemudian tetap semangat search di google ternyata ada salah satu web yang memperlihatkan cara koneksi modem ini secara langsung (TTL) yaitu tidak melewati konverter/konektor seperti usb dan rs 232 tetapi harus membongkar modem wavecom. kemudian saya bongkar modemnya dan saya contoh tutorialnya dengan cara menjumper titik konektor tx dan rx (TTL) modem. Hasilnya waow hebat saya dapat menjumpernya dengan kabel, saya sangan senang sekali akhirnya dapat dengan mudah mengkoneksikan modem ini dengan mikrokontroler tanpa melalui konektor db9, pakai usbpun bisa. eh malah jumperannya coplok gara2 kesenggol dan pin konektor TTLnya pun rusakkkk…..
contoh koneksi TTL nyontoh di web orang
Koneksi Modem ke komputer
cara setting baudrate:
1. hubungkan usb modem ke cpu
2. cari com yang terdeteksi pada komputer misal com 8
3. setting default wavecom 115200
4. ketik AT kemudian enter jika balasan ok berarti sudah konek
5. untuk bisa komunikasi dengan mikro baudrate harus dirubah ke 19200/ lainnya.
6. ketik at+ipr=19200 kemudian enter
tutup hyperterminal kemudian buka kembali dari awal setting baudrate 19200….
7. balasan ok kemudian menghilangkan echo ketik ATE0 enter
8. Settingan harus disimpan ke eeprom wavecom dengan cara ketik AT&W kemudian enter.
9. Modem siap dikomunikasikan dengan mikro
Untuk rangkaiannya bikin sendiri cm konek ke tx dan rx mikrokontroler
contoh listing program assembly kirim at command ke modem melalui mikro at89s52
;#########################################################################;
; Program SMS controler 2 titik lampu menggunakan 2 buah relai
; Mikrokontroler at89s52
; modem wavecom1206b
;#########################################################################;
LED bit P1.2
Relai_1 bit p2.0
Relai_2 bit p2.1
data_pesan equ 30h
;#########################################################################;
ORG 00H
clr led
call tunda_long
setb led
call tunda_long
clr led
call tunda_long
call initial
;#########################################################################;
; program_utama loop
;#########################################################################;
Program_utama: call kirim_ate0
call tunda_long
call Kirim_at
tunggu_1: jnb ri,$
clr ri
mov A,sbuf
cjne A,#’O’,tunggu_1
jnb ri,$
clr ri
mov A,sbuf
tunggu_2: cjne A,#’K’,tunggu_2
call tunda_long
jmp kirim_pesan
Kirim_pesan: call kirim_sms
tunggu_sms_1: jnb ri,$
clr ri
mov A,sbuf
cjne A,#’>’,tunggu_sms_1
call tunda_long
call Kirim_isi_sms
tunggu_sms_2: jnb ri,$
clr ri
mov A,sbuf
cjne A,#’>’,tunggu_sms_2
call tunda_long
call Kirim_ctrlz
setb led
jmp $
Looping: jnb ri,$
clr ri
mov A,sbuf
mov @R0,a
cjne A,#’K’,tunggu_2
ret
;#########################################################################;
Print_At: db ‘at’,13,10,0
Print_Ate0: db ‘ate0′,13,10,0
Print_sms: db ‘at+cmgs=083840377711′,13,10,0
Print_isi_sms: db ‘Tes sms nganggo modem wavecom’,13,10,0
;#########################################################################;
; INISIALISASI BAUT RATE 19200
;#########################################################################;
INITIAL: MOV SCON,#50H ;INISIALISASI BAUD RATE 19200
MOV TMOD,#20H
Mov 87h,#80h
MOV TH1,#0FdH
SETB TR1
RET
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;>>>>>>>>>>>>>>>>>>>>HAPUS SMS DI LOKASI INBOX INDEX 1>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Kirim_at: MOV DPTR,#print_at ;KIRIM PRINTAH ‘AT+CMGD=1′
jmp tunggu_at
Kirim_ate0: MOV DPTR,#print_ate0
jmp tunggu_at
Kirim_sms: MOV DPTR,#Print_sms
jmp tunggu_at
Kirim_isi_sms: MOV DPTR,#Print_isi_sms
jmp tunggu_at
Kirim_ctrlz: mov A,#26
clr ti
mov sbuf,a
ret
Tunggu_at: CLR A ;KOSONGKAN ACC
MOVC A,@A+DPTR ;AMBIL DATA TABEL YANG DITUNJUK DPTR
CLR TI ;AKTIVASI KIRIM SERIAL
MOV SBUF,A ;KIRIMKAN DATA
JNB TI,$ ;TUNGGU SELESAI DIKIRIM
INC DPTR ;NAIKKAN PENUNJUK TABEL
CJNE A,#00,Tunggu_at ;TUNGGU SEMUA KARAKTER DIKIRIM
ret
;#########################################################################;
; TUNDA WAKTU
;#########################################################################;
TUNDA_LONG: MOV R5,#010H
JJz: CALL TUNDA
DJNZ R5,JJz
RET
TUNDA: MOV R7,#100
LD1: DJNZ R6,$
DJNZ R7,LD1
RET
end

MICROCONTROLLER :: Belajar Microcontroller 8051 dengan Simulator



Buat para pemula alangkah lebih baik selain mempelajari teori juga mempraktekan teori  dengan modul/rangkaian yang sebenarnya. Tapi jika anda belum memiliki modul ,  anda  bisa latihan dengan simulator . Pada kesempatan ini saya akan memperkenalkan simulator yang cocok untuk pemula yaitu UVI51 , simulator untuk micon jenis MCS-51 (8051, At89s51,At89c4051). software ini bisa di download di : ftp://ftp.dte.uvigo.es/uvi51/
simulator microcontroller
Tampilan Simulator microcontroller untuk 8051, 89s51 , 89c4051 dan sejenisnya
Simulator  ini   sangat membatu saya dalam memahami microcontroller untuk pertama kalinya , kususnya MCS-51 ( 8051 ,89s51 , 89c4051 dst) karena simulator ini selain mudah digunakan juga sangat jelas menggambarkan cara kerja sebuah microcontroller.  Sekarang saya sudah tidak lagi menggunakan MCS-51 , saya lebih suka  AVR  :-).  Simulator ini berjalan di windows XP, windows versi  yang lain saya belum pernah coba. Fungsi Microcontroller yang disimulasikan:
  • Input : switch
  • output : LED, seven sement, LCD 2×16
  • Timer
  • Serial komunikasi (Uvi51 bisa mensimulasikan 2 micon sekaligus)
  •  Interupsi
  • Bisa melihat isi Ram dan register
Langkah langkah  menggunakan Simulator Uvi51:
  1. Download  simulator dan contoh file di: ftp://ftp.dte.uvigo.es/uvi51/
  2. extract file hasil download
  3. klik file uvi51.exe.
    uvi51_exe
    uvi51_exe
  4. klik Open
    uvi51_1
    uvi51_1
  5. klik salah satu contoh  misal EX1A.CNX
    uvi51_2
    uvi51_2
  6. klik   menu “A”
    klik_A
    klik_A
  7. klik enter.
    klik enter
    setelah muncul tulisan "Assembly complete no error" lalu tekan enter
  8. klik Simulate.
    klik simulate2
    klik simulate judul
  9. klik run atau step
Membuat  simulasi  baru
Untuk  mejalankan simulator UVI51 kita membutuhkan 2 file :
  1.  file ber extension *.cnx ,   file ini berisi konfigurasi hardware misal switch ,LCD 2×6, PushButton , Led , rs232  dll.
  2. file berextension *.src  source code
Contoh :
buka notepad buat 2 buah file berikut.
file test1.src ber isi:
; Data transfers using MOV
;
org 0
; Port 0 contents are copied into several targets
mov a,p0
mov b,p0
mov 20h,p0
; P0 contents are copied into RAM address pointed by P1
mov r0,p1
mov @r0,p0
jmp 0
end
file test1.cnx berisi:
* clock 12 mega , ram 256 byte memory program 1024 byte
Utest1.src 12 256 1024

P00=2 ; PORT0.0 diberi beri tanda sebagai node 2
P01=3 ; PORT0.1 diberi beri tanda sebagai node 3

* Switches dgn nama B0 di hubungkan ke node 2 (PORT0.0) ,lokasi switch dikotak no 4
SB0 2 0 1 4

* Pushbutton dgn nama P0 dihubungkan ke node 3 (PORT0.1) , lokasi pushbuton di kotak no 9
KP0 3 0 9
Beberapa ilustrasi penjelasan  isi file cnx ,(  konfigurasi hardware)  : 

lebih detainya bisa baca manualnya: ftp://ftp.dte.uvigo.es/uvi51/UVI51_50_MANUAL.ZI
P