Sabtu, 30 Januari 2010

Matematika pd Bilangan Pecahan (float)

.
Baca dulu : Menampilkan Bilangan Float (pecahan)

Setelah bisa menampilkan bilangan pecahan seperti link diatas sekarang mencoba rumus matematika dan menampilkannya pada LCD ataupun komputer.

Suatu saat saya sedang bingung dan bertanya-tanya,
"Rumusnya sudah benar, tapi kok tampilannya salah ya ?"
"jangan-jangan di mikronya juga proses perkaliannya juga salah nih.."
Coret-coret... baca datasheet... lihat tutorial diinternet... atur konfigurasi di CoViAVR... coba Coding lagi... tampilkan di LCD... tampilkan di komputer... lha salah lagi.... Apanya niiih..???

Waktu itu buat Voltmeter Digital, proses yang diinginkan adalah membaca data ADC, menampilkan dalam miliVolt dan Volt pada LCD karakter 16x2, kemudian mengirimkan data ADC ke komputer secara serial.
ADC mode 10 bit jadi menggunakan bilangan unsigned integer dengan range 0-1023 dan frekuensi sampling yang paling rendah agar pembacaan ADC menjadi lebih akurat.

Potongan program :
Setelah diprogram ke chip dan dijalankan, tampilannya aneh.
Pada milivolt tampilan sesuai pengukuran dan perhitungan tetapi pada tampilan volt, hanya maksimal 2.00 Volt dan tidak bisa lebih padahal milivolt 4995.10 milivolt seharusnya 4.995 Volt.

Kok bisa begitu ya....???




Setelah mengutak-atik sedikit, ternyata ini kesalahan sama yg dulu pernah kuperbuat tapi lupa dan memang agak sulit dideteksi. Perhatikan pada coding tambahan yang ditandai seperti gambar berikut.

Hasil setelah diperbaiki...
Agak aneh, kok pembulatannya ke bawah bukannya ke atas...
Terserah Compiler dah.. Ikut aja..
Lha tinggal pakai doank..

Saran untuk persamaan matematika :
  • Pada persamaan, gunakan tanda kurung agar proses perhitungan tidak salah meskipun pada bahasa C telah ada urutan prioritas operator. misal : hasil = ((a+b)*c) / (d+e) ;
  • Jika menggunakan persamaan matematika (apalagi panjang persamaannya) usahakan dengan proses matematika sesederhana mungkin. Misal : hasil = dataadc * (1000 + 263) / 100; lebih baik ditulis hasil = dataadc * 12,63;
  • Untuk persamaan yang cukup atau sangat panjang, sebaiknya persamaan tersebut dipecah-pecah dan hasil dari setiap persamaan digabungkan kembali.
  • Untuk menghindari kesalahan yang lebih besar / mengecek benar tidaknya hasil persamaan, maka sebaiknya setiap hasil (yg penting saja) ditampilkan pada komputer atau LCD sebagai umpan balik ke programmer.
  • Perhatikan penggunaan bilangan misal persamaan Y = A + B maka
  1. Jika Y ada kemungkinan bernilai negatif maka gunakan signed int (-32768 hingga +32767) atau signed char (-128 hingga + 127) untuk Y, A, dan B.
  2. Jika Y bilangan bulat unsigned char dgn range 0-255 maka A dan B harus unsigned char juga jika pecahan maka harus dibulatkan dan dipindahkan ke variabel unsigned char. Jika unsigned int (2 Byte) maka harus dipindahkan ke variabel unigned char (1 Byte).
  3. Jika Y bilangan bulat unsigned int dgn range 0-65535 maka A dan B harus unsigned int juga, jika pecahan maka harus dibulatkan dan dipindahkan ke variabel unsigned int, sedangkan unsigned char tidak masalah.
  4. Jika Y bilangan bulat float maka A dan B sebaiknya dipindahkan ke variable float agar perhitungan tidak terjadi error.
Mungkin ini saja yang bisa saya tambahkan, kurang lebih mohon maaf karena masih belajar..
Met mencoba ;)

Menampilkan Bilangan Float (Pecahan)

.
Habis Coding n mumpung ingat... (kemarin)
Okelah kalo lanjut...

Beberapa coding di internet mungkin telah anda baca mengenai cara menampilkan bilangan float (pecahan) seperti pada beberapa tutorial tentang cara mengakses sensor ultrasonik PING dan menampilkan bilangan pecahan hasil pembacaan jarak pada LCD / komputer.

Dan ketika saya sedang memprogram project Voltmeter digital. Saya sedikit bingung menampilkan bilangan float (pecahan).

Cara I : Menggunakan Sprintf
Saya coba menggunakan perintah sprint, cukup akurat untuk menampilkan pecahan hingga 6 angka dibelakang koma langkah-langkahnya yaitu :












  1. Pada project sudah di buat, klik Project-Configure.
  2. Pada tab (s)printf Features pilih float,width,precision hal ini menyebabkan perintah sprintf dapat menampilkan bilangan float (pecahan) dan mendukung lebih banyak jenis bilangan antara lain '+'. '-', '0' dan ' ' flag dan menggunakan sprintf menjadi lebih banyak fungsi seperti : 'c', 's', 'p', 'i', 'd', 'u', 'e', 'E', 'f', 'x', 'X', '%' (silahkan lihat help-nya).
  3. Atur nilai Data Stack Size menjadi lebih besar karena proses konversi nilai float agar dapat ditampilkan membutuhkan memori yang lebih besar.
Jika langkah diatas tidak dilakukan dan anda ingin menampilkan bilangan float (pecahan), tidak akan ada pesan ERROR ataupun WARNING yang terlihat tetapi program anda tidak akan berjalan. Pada LCD ataupun komunikasi serial tidak akan menampilkan apa-apa.

Setelah pengaturan selesai jalankan Coding berikut dan test pada serial atau LCD.
Mengapa tampilannya 0.123457 yang seharusnya 0.123456789 hal ini karena dibatasi oleh kompilernya sebanyak 6 digit dibelakang koma.

Pada digit terakhir merupakan pembulatan yaitu 0.123456789 dibulatkan menjadi 0.123457.
Coba anda ganti dengan 0.123456123 maka akan ditampilkan 0.123456.

Cara II : Dengan FTOA (Float to Array)
Cara ini lebih sederhana dengan Data Stack Size yang kecil (128) dan tidak perlu pengaturan apapun. Anda cukup memanggil library .
Sebelum mencoba kembalikan konfigurasi Data Stack Size dan (s)printf Feature seperti semula dan coba coding berikut ini :

fungsi ftoa ternyata menampilkan hal yang sama seperti sprintf dan hasilnya pun sama.

Cara ini lebih sederhana karena anda tidak perlu menambah Data Stack Size dan melakukan pengaturan lainnya.

Silahkan coba juga itoa dan fungsi lain pada library stdlib.
Baca Help CoViAVR.

Jangan lupa membaca tentang :
Matematika pd Bilangan Pecahan (float)

Met mencoba ;)

AVR : Pin RESET AVR

.
Setiap mikrokontroller memiliki pin reset, mikrokontroller MCS51 maupun AVR juga memiliki pin reset. Jika pada MCS51 pin reset aktif HIGH, maka pada AVR pin reset aktif LOW. Saya akan mencoba membahas pin reset pada AVR, karena setelah membaca tentang "Hardware Design Consideration", ternyata pin reset pun harus dirancang sebaik mungkin.

Pin RESET pada AVR aktif low yang maksudnya reset mikrokontroller akan terjadi jika pin RESET diberi logika 0. RESET memiliki 2 fungsi atau tujuan antara lain :
  1. Membuat semua pin dalam kondisi tri-state (High Impedance) kecuali pin XTAL, menginisialisasi register I/O, dan meng-set counter program kembali ke NOL.
  2. Memasuki mode program (beberapa IC lain juga menggunakan pin PEN untuk memasuki mode program). Selain itu memungkinkan untuk menggunakan mode memprogram chip paralel/tegangan tinggi dengan memberikan pin RESET tegangan 11,5 Vdc - 12 Vdc (lihat datasheet chip).
Pin Reset AVR memiliki resistor pull-up internal agar mikro tidak reset sendiri tetapi resistor pull-up internal ini tidak cukup jika lingkungan memiliki ganguan-ganguan dan mikro dapat reset yang terjadi secara sporadis. Resistor pull-up eksternal dapat digunakan untuk menjaga agar pin RESET tidak berlogika 0 secara tidak disengaja. Besarnya nilai resistor ini secara teori bisa bernilai berapa saja tetapi untuk aplikasinya gunakan nilai resistor yang tepat agar pin RESET dapat diubah logikanya menjadi LOW sehingga dapat diprogram. Nilai pada umumnya dan yang direkomendasikan adalah 10Kohm dan untuk keperluan debugWIRE tidak boleh lebih kecil dari 10Kohm.

Untuk melindungi pin RESET dari noise, kapasitor dapat ditambahkan yang terhubung dengan pin Reset dan Ground. Kapasitor tidak begitu dianjurkan penggunaannya karena AVR telah memiliki low-pass filter internal untuk mengurangi efek bounching pada pin Reset, tetapi penggunaan kapasitor eksternal lebih kepada proteksi tambahan pada pin reset.
Penggunaan kapasitor eksternal tidak diperbolehkan apabila menggunakan debugWIRE.

Beberapa mikrokontroller dapat ditambahkan eksternal rangkaian Brown-out (drop tegangan / penurunan tegangan) tetapi AVR memiliki rangkaian Brown-out internal sehingga lebih aman dan merupakan solusi sederhana untuk mengontrol kondisi pin RESET.

Jika tidak menggunakan mode memprogram tegangan tinggi, disarankan dioda pelindung ESD (Electrostatic Discharge) antara pin RESET dengan VCC karena tidak terdapat pelindung internal untuk mode memprogram tegangan tinggi. Dioda Zener dapat digunakan untuk membatasi tegangan pada pin Reset terhadap Ground. Dioda Zener ini sangat disarankan apabila mikrokontroller digunakan pada lingkungan yang memiliki noise tinggi.

Komponen-komponen ini (Resistor pull-up eksternal, kapasitor eksternal, dan Dioda Zener) letakkan sedekat mungkin dengan pin Reset Mikrokontroller AVR.

Semoga bermanfaat ;).

AVR : Clock dgn Crystal dan Resonator Keramik

.
Mikrokontroller bisa menggunakan sumber clock yang berbeda baik internal clock (beberapa mikrokontroller) maupun eksternal clock. Ada beberapa pilihan sumber clock eksternal yang dapat menjadi pilihan antara lain : Sumber Clock lain (IC 555, dll), RC Oscillator, Crystal dan Resonator Keramik. Penggunaan Crystal maupun Resonator Keramik untuk beberapa perancangan hardware menyebabkan masalah. Oleh sebab itu saya mencoba membahas penggunaan Crystal dan Resonator keramik sebagai sumber clock.

Pada AVR sumber clock dipilih dengan mengatur fuses-nya. Kebanyakan programmer ISP maupun paralel dapat memprogram fuse ini untuk mengatur sumber clock. Program fuse tidak terhapus apabila memori program AVR dihapus oleh sebab itu fuse diprogram jika hanya konfigurasi fuse harus diprogram. Memprogram fuse setiap saat memori program dihapus dan diprogram kembali tidak begitu penting atau memprogram fuse cukup 1 kali saja.

Tidak semua mikrokontroller AVR mampu berjalan untuk berbagai sumber clock eksternal oleh sebab itu selalu baca datasheet dengan seksama karena penggunaan sumber clock yang berbeda dengan kemampuan dan spesifikasi mikrokontroller menyebabkan mikro tersebut tidak berfungsi. Dan juga konfigurasi fuse tidak di clear (diubah logikanya dari 1 menjadi 0) ketika memori program dihapus (mikrokontroller diprogram), hal ini bisa menjadi masalah jika konfigurasi fuse salah.

Crystal dan Resonator Keramik
Tipe tipikal Crystal yang digunakan untuk AVR adalah Crystal AT-cut parallel resonant. Resonantor keramik mirip dengan AT-cut parallel resonator tetapi lebih murah dan kualitas rendah versi Crystal. Resonator keramik memiliki Q-Value yang rendah yang memiliki kekurangan dan kelebihan.
Resonator keramik memiliki Q-value yang rendah sehingga dapat diatur ke frekuensi yang dikehendaki, tetapi sensitif terhadap perubahan suhu dan perubahan beban yang dapat menyebabkan perubahan frekuensi yang tidak dikehendaki. Kelebihan resonator keramik yaitu memiliki waktu start-up yang lebih cepat dibanding Crystal.
Untuk Crystal, noise dapat dikurangi dengan menghubungkan body crystal ke ground digital sistem.

Parallel Resonator membutuhkan tambahan komponen reaktif seperti kapasitor.
Ada 2 rangkaian dasar parallel resonator seperti gambar disamping. Gambar A jika sumber clock yang digunakan lebih dari 400kHz sedangkan gambar B jika sumber clock digunakan untuk low frekuensi (32,768 kHz) seperti pada RTC (Real Time Clock). Pada low frekuensi umumnya telah terdapat kapasitor internal sehingga tidak perlu kapasitor eksternal dan hanya dibutuhkan sumber clock saja.

Jika lebih dari 400kHz kapasitor eksternal dengan nilai yang tepat harus dipasangkan agar parallel resonator bekerja dengan stabil. Apabila nilai kapasitor terlalu besar maka oscillator akan mengalami masalah saat akan mulai berosilasi.

Jika menggunakan konfigurasi "ext. crystal oscillator", Crystal dengan nilai lebih dari 400kHz dapat digunakan dan nilai kapasitor yang dianjurkan antara 22pF - 33pF.
Jika menggunakan konfigurasi "ext. low frequency crystal", yang menggunakan Crystal 32,768 kHz maka internal kapasitor pada XTAL1 dan XTAL2 dapat diaktfikan dengan memprogram fuse CKOPT. Kapasitor internal biasanya bernilai 20pF tetapi dapat bervariasi.

Frekuensi resonator tergantung pada nilai kapasitor yang digunakan, frekuensi akan bertambah jika nilai kapasitifnya berkurang sebaliknya frekuensi akan berkurang jika nilai kapasitifnya bertambah. Kristal memiliki Q-faktor yang lebih tinggi daripada resonator keramik sehingga memiliki frekuensi yang lebih stabil terhadap perubahan nilai kapasitif. Kristal 32,768 memiliki Q-factor yang tinggi dan frekuensi yang sangat stabil dan sangat tepat sehingga digunakan sering untuk fungsi pewaktuan.

Oscillator bisa terpengaruh secara crusial terhadap lingkungan yang terdapat noise. Jika noise tersebut kuat maka oscillator akan "lock up" dan berhenti berosilasi. Untuk membuat oscillator tidak begitu sensitif terhadap noise dapat dengan menambah nilai salah satu kapasitor pada XTAL1. Hal ini tidak berpengaruh pada total nilai beban kapasitif tetapi dapat mempengaruhi frekuensi resonansi dan mengubah nilai duty cycle menjadi tidak seimbang. Nilai kapasitor yang berbeda (unbalanced) tidak digunakan apabila menggunakan kecepatan AVR mendekati batas kecepatan maksimumnya.

Beberapa kesimpulan :
  • Mikrokontroller AVR bisa menggunakan clock internal (datasheet) ataupun clock eksternal.
  • Crystal lebih baik dan lebih stabil dibanding Resonator Keramik.
  • Gunakan kapasitor dan nilai yang tepat yaitu 22pF-33pF jika frekuensi >=400kHz.
  • Kapasitor oscillator harus bernilai sama antar Xtal1 dan Xtal2
  • Oscillator dan komponen kapasitif tidak boleh jeuh dari pin Mikrokontroller.
  • Body Crystal harus di groundkan untuk kestabilan sistem terhadap noise.

Jumat, 29 Januari 2010

RFM12BP : Sejenak Coding RFM12B

.
File Sumber :Tutorial memprogram RFM12B (bisa juga RFM12BP).

Agar modul Tranciever RFM12B/P bisa berfungsi maka mikrokontroller harus diprogram agar dapat berkomunikasi dengan modul RFM12B/P namun sebelum memprogram ada beberapa hal yang harus diketahui terlebih dahulu.
  • MCU dan modul RFM12B/P berkomunikasi secara SPI (Serial Peripheral Interface) 16 bit.
  • Agar memprogram mudah dan komunikasi SPI sinkron maka xtal MCU memiliki kristal dengan nilai tidak lebih dari 10MHz (sangat disarankan kristal = 10MHz).
  • Salah satu modul RFM12B/P sebagai penerima saja dan salah satu modul RFM12B/P sebagai pemancar saja.
  • Frekuensi modul pemancar dan modul penerima harus sama, dan untuk awal coding sebaiknya menggunakan frekuensi tengahnya saja seperti 434MHz, 868MHz, atau 915MHz.
  • Kecepatan transfer data atau Baud Rate antara pemancar dan penerima harus sama.
  • Untuk modul RFM12B/P Reciever (penerima) setiap selesai menerima data harus dilakukan FIFO Reset untuk mengosongkan buffer memori FIFO agar reciever aktif dan dapat menerima data berikutnya.
Untuk kristal MCU, jika MCU menggunakan kristal lebih besar dari 10MHz maka komunikasi bisa error karena modul RFM12B/P tidak dapat mengikuti kecepatan MCU (modul RFM12B/P menggunakan kristal 10MHz). Hal ini bisa diatasi dengan memberikan delay pada coding MCU agar MCU tidak terlalu cepat, tetapi hal ini justru memperlambat komunikasi MCU dengan RFM12B/P karena delay tersebut harus tepat nilainya (biasanya justru lebih lambat jika dibanding menggunakan xtall 10MHz).

Untuk Codingnya mau jelasin tetapi lebih lengkap disini Tutorial memprogram RFM12B. Coding tersebut pada transmitter memancarkan karakter berupa angka '0' hingga 'F' dan pada reciever menampilkan data diterima pada komputer secara serial (COM).

PREAMBLE berfungsi sebagai sinyal wake up yaitu sinyal 10101010 yang dikirimkan sebelum data sebenarnya dikirimkan, fungsinya sebagai sinyal yang memberitahu pada penerima agar "bangun" (wake up) dan bersiap menerima data sebenarnya yaitu data setelah data sinkronisasi diberikan (SYNC).

Selamat mencoba ;)

RFM12BP : Interface dgn AVR

.
Silahkan baca + download :
  1. Data Sheet RFM12BP.
  2. Blog membahas RFM12B.
  3. Tutorial memprogram RFM12B (bisa juga RFM12BP).
  4. Coding RFM12B dalam Bascom.
  5. Aplikasi konfigurasi RFM12B.
Berdasarkan datasheet RFM12B/BP, tegangan supply yang dibutuhkan antara 2,2Vdc - 3,8Vdc dan untuk RFM12BP dibutuhkan tegangan ekstra 12Vdc untuk supply amplifier 500mW. Oleh sebab itu tegangan pada setiap pin RFM12B/BP tidak lebih dari 4Vdc (lebih lengkap baca datasheet hal 3).

Mikrokontroller dengan level tegangan TTL setiap pin bernilai 0Vdc - 5Vdc, sehingga dibutuhkan pengadaptasi tegangan agar Mikrokontroller dan RFM12B/BP dapat berkomunikasi. Beberapa literatur mengatakan bahwa RFM12B/BP memiliki toleransi dan dapat berkomunikasi dengan mikrokontroller secara langsung meskipun level tegangannya berbeda, silahkan anda coba ;) .
Atau anda bisa menggunakan mikrokontroller Low Power seperti ATmega8L jika ingin dihubungkan secara langsung.

Dari blog : http://blog.strobotics.com ada 3 konfigurasi dasar yang bisa digunakan untuk mengakses RFM12B/BP antara lain :
  • Konfigurasi minimal.
  • Non-Interrupt Based FIFO Usage.
  • Speed Optimised FIFO Usage.
Diantara ketiga konfigurasi tersebut saya menggunakan konfigurasi minimal seperti gambar disamping.
Hanya membutuhkan 4 buah jalur komunikasi, sangat sederhana dan mudah.

Sedikit berbeda dengan gambar, setiap pin RFM12B/BP dengan MCU tidak terhubung secara langsung tetapi setiap jalur terdapat resistor 4K7 ohm sebagai penurun tegangan dari 5 Vdc menjadi kira-kira 3,3Vdc (silahkan ukur dengan Voltmeter) agar RFM12B/BP aman (karena berdasarkan datasheet hal 3, maksimal Vin = 4,5 Vdc).

Penjelasan beberapa pin-pin RFM12B/BP berdasarkan link ini :
  • VDD (required) - Sumber tegangan RFM12B/BP antara 2,2Vdc - 3,8Vdc bukan 5Vdc.
  • SDI (required) - Serial Data Input, sebagai Input jika MCU ingin memberikan command atau data yang akan dikirimkan melalui RFM12B/BP.
  • SDO (required) - Serial Data Output, sebagai Output jika RFM12B/BP akan memberikan data ke MCU.
  • SCK (required) - Serial Clock pin sinyal sinkronisasi pada komunikasi data yang diberikan oleh MCU ke RFM12B/BP.
  • nSEL (required) - Chip Select (rendah aktif). Pin ini harus diberi logika 0 jika RFM12B/BP ingin diakses.
  • FSK/DATA/nFFS (optional) - jika tidak digunakan harus diberikan resistor pullup.

Sumber tegangan RFM12B/BP atau pin VDD dapat dibuat menggunakan regulator 3,3 Volt menggunakan IC 78L33, TLV2217-33, LM3940, Zener 3Volt, dsb. Saya menggunakan Zener 3Volt yang pasang seperti gambar disamping. Jangan lupa selalu mengukur tegangan agar tidak merusak RFM12B/BP ataupun MCU.

Saya menggunakan RFM12BP dan saat pertama kali Coding, antena RFM12BP tidak saya pasang tetapi agar komunikasi terjadi, pemancar dan penerima tidak boleh lebih dari 2 meter, terhalang sesuatu, atau didaerah banyak sinyal (noise).
Dan juga saya merancang dengan PCB matriks (PCB lubang IC) belum menggunakan PCB yang bagus tetapi komunikasi lancar dan tidak terjadi error data sedikitpun. Sehingga anda dapat menguji coba juga dengan PCB matriks sebelum menggunakan PCB mahal.

Pada perancangan Hardware RFM12B/BP, lakukan hal berikut :
  • Tempatkan RFM12B/BP sedekat mungkin dengan MCU agar komunikasi SPI tidak mengalami drop tegangan (data error).
  • Program MCU agar pin SDI, SCK, SDO, dan nSEL berlogika 1 semua, pada RFM12B/BP ukur tegangan pada setiap pin tersebut dan tidak boleh lebih dari 4,5 Vdc.
  • Jika anda merancang PCB selalu siapkan LED indikator yang menunjukkan RFM12B/BP mengirim atau menerima data.
Selamat mencoba ;)

RFM12BP : Pengenalan RFM12B

.
Silahkan baca + download :
  1. Data Sheet RFM12BP.
  2. Blog membahas RFM12B.
  3. Tutorial memprogram RFM12B (bisa juga RFM12BP).
  4. Coding RFM12B dalam Bascom.
  5. Aplikasi konfigurasi RFM12B.
Link-link internet yang saya berikan diatas adalah semua referensi yang saya gunakan (kecuali 4, 5 tapi yang paling membantu no 3).

Aplikasi nirkabel (wireless) merupakan salah satu hal yang wajib dikuasai saat ini, akan tetapi harga modul wireless yang tinggi menyebabkan kurangnya minat untuk menggunakannya sehingga kembali pada komunikasi yang mengacu pada wiring (pengkabelan).

Modul tranciever RFM12B atau RFM12BP merupakan salah satu solusi untuk pengembangan aplikasi wireless dengan sistem embedded seperti mikrokontroller karena arganya yang terjangkau, fitur-fitur yang menarik, dan kelebihan-kelebihan yang dimilikinya. RFM12B dan RFM12BP merupakan modul yang sebenarnya sama tetapi RFM12BP memiliki rangkaian tambahan amplifier dengan output mencapai 500mW.




Pengenalan RFM12BP

Modul RFM12BP memiliki 4 buah frekuensi yang tesedia di pasaran yaitu 315MHz, 434MHz, 868MHz, dan 915MHz (frekuensi 315MHz sudah jarang tersedia). Untuk membedakan frekuensi setiap modul cukup dengan melihat pada PCB modul, yaitu posisi strip yang ditandai seperti ditunjukkan gambar dibawah ini.

Nilai frekuensi yang ditunjukkan tersebut adalah frekuensi tengahnya sedangkan frekuensi transmisi data akan anda definisikan sendiri secara program sesuai keinginan anda tetapi mengacu pada frekuensi tengah tersebut. Inilah salah satu kelebihan dari RFM12B yaitu pengaturan frekuensi transimi data secara program.

Perhatikan datasheet RFM12BP halaman 4 dengan penggunaan kristal 10MHz :

  • frekuensi 433 MHz band 2,5kHz step dgn min=430,24 MHz dan max = 439,75MHz.
  • frekuensi 868 MHz band 5kHz step dgn min=860,48 MHz dan max = 879,51MHz.
  • frekuensi 915 MHz band 7,5kHz step dgn min=900,72 MHz dan max = 929,27MHz.
Saya agak bingung karena pada datasheet frekuensinya tertulis 433MHz tetapi pada modulnya 434MHz tetapi karena saya menggunakan 915MHz jadi tidak begitu dipermasalahkan.

Jika anda menggunakan modul RFM12BP dgn 915MHz band bukan berarti komunikasinya harus dengan frekuensi itu tetapi bisa pada range minimum hingga maksimum.

Misalkan anda merancang mengontrol perangkat TV, Lampu, Radio, Garasi, Pintu, Jendela, dsb, dengan menggunakan 1 remote kontrol tidak dengan unique address protokol (pengalamatan perangkat yang berbeda) tetapi menggunakan metode perbedaan frekuensi sehingga didapatkan TV=903MHz, Lampu=910MHz, Radio=916MHz, Garasi=919MHz, Pintu=920MHz, Jendela=924MHz, dst.
Apabila metode unique address digabung dengan perbedaan frekuensi bisa anda bayangkan seberapa banyak perangkat yang anda kendalikan hanya dengan sebuah remote kontrol.

Topik yang Populer