Category Archives: Elektronika

Last updated by at .

Vinculum VDRIVE2: modul antarmuka USB Host untuk Flashdisk

Dengan adanya modul VDRIVE2 keluaran vinculum, memungkinkan mikrokontroler dapat membaca dan menulis data ke media penyimpan data flashdisk. Didalamnya ada firmware yang mengendalikan hubungan dengan flashdisk, sehingga antarmuka pembacaan dan penulisan data dengan mikrokontroler secara serial atau SPI. Dengan menggunakan modul ini mikrokontroler akan dapat melakukan operasi layaknya jika flashdisk ditancapkan ke komputer. Hanya saja flashdisk harus diformat terlebih dahulu menggunakan komputer dengan format FAT16 sebelum digunakan. Dengan demikian mikrokontroler dapat membuat direktori, menhapus direktori, menulis data dalam file dan lain sebagainya. Dalam sistem mikroprosesor dapat digunakan sebagai media penyimpan data yang dapat diubah-ubah isinya, misalnya sebagai datalogger.

Untuk mempelajari perintah-perintah yang dimengerti oleh modul ini, saya mengujinya dengan menghubungkan secara serial melalui USBtoSerial-TTL yang ditancapkan ke USB komputer. Kemudian dengan menggunakan program Hyperterminal dengan setting baud 9600,8,n,1 tanpa protokol handshaking, saya dapat mempelajari perintah-perintah sebelum diaplikasikan ke mikrokontroler.

Perintah yang diberikan secara serial merupakan perintah seperti dalam DOS (Disk Operating System), namun perintahnya banyak perbedaan. 

Anda tertarik dan membutuhkan modul ini ?

Silakan hubungi saya atau beri komentar, saya memiliki 10 modul untuk dijual kepada yang membutuhkannya.

Untuk mengetahui perintah-perintah dalam bentuk ASCII pada modul ini, silakan dibaca buku yang dapat anda download dibawah ini.

 

Download disini

 

Posted in Electronics, Elektronika, Hardware, Mikrokontroler | Tagged , | Leave a comment

High Voltage and Current isolated PWM switching

 

I just finished doing some experiments on high voltage and current isolated pwm switching. This actually starts the need for a dc electric actuators to be installed within the heat exchanger control system. 

The need to serve the electric heater actuator, with a 300 Watt power operates at a voltage of 220VAC. In my mind, I would use an electronic method of DC chopper.  To set the pulse width is used by pwm, which will be controlled via an Arduino microcontroller ATmega 328. Finally came the other requirements of the actuator system must be optically isolated, so the ground to be separated. This is usually to avoid EMI (electromagnetic interference). For switching, there are three options are SCR, MOSFET or IGBT. While the optical isolation, I make sure to choose 4N35.

After 3 days of my designs and try it out, finally got it perfect. Through this post, I will share my experiences to all visitors who need these actuators.

How it works

This simple system without a transformer, the voltage source is directly rectified by the B1 and C1 to reduce the ripples. R1 and R2 form a voltage divider circuit, serves to provide a low voltage dc supply components for 4N35. 4N35 will be supplied with a DC voltage of 12V. However, the voltage on R2 is made higher than 12V to keep the possibility of fluctuations in voltage 220VAC. These fluctuations are usually 10 percent. So at about 200VAC voltage, DC voltage at R2 must be greater 12V.

Furthermore, components R3 and D1 form a circuit for cutting / create a stable voltage to 12V by the zener diode 12V. R3 is used to reduce the current flowing in the zener when the voltage on R2 above 12V. Voltage at the zener diode fed into the circuit R4 and C2 to eliminate riple as a lowpass filter.

12V voltage is then fed to the collector of the 4N35 as the supply voltage.  Emitter of 4N35 in series with R5, so that when the LED is not given voltage, the emitter voltage is zero. This is so when the LED is not given voltage, the output is 0 volts to MOSFET (N) or IGBT (N), and not in an active condition. In short, the input and output 4N35, not as an inverting logic. R6 is a series resistor when the transistor becomes active from 4N35, a pullup to 12V. The value of R6 is selected adjustable voltage requirements of the MOSFET or IGBT Gate.

Lastly, R7 aims to reduce the LED current of 4N35, of course, adjust your PWM peak voltage.

Value of Components

Lastly, R7 aims to reduce the LED current of 4N35, of course, adjust your PWM peak voltage. 

  1. R1 = 220K/1W, R2 = 20K/1W, R3 = 2K2/1W, R4 = 470/1W, R5 = 47K/0.5W, R6 = 47/0.5W, R7 = 100/0.5W
  2. C1 = 220uF/350V, C2 = 47uF/25V.
  3. OP1 = 4N35
  4. Q1 = IGBT HGTG18n120 / 1600V /30A

 

 


Posted in Electronics, Elektronika | Tagged , | 2 Comments

Belajar elektronika: sensor temperatur tipe LM35

Sensor suhu diperlukan untuk menginformasikan sinyal keluaran sebagai umpan-balik pada kontroler. Sensor temperatur jenis LM35 merupakan sensor dalam bentuk rangkaian terpadu yang memiliki kepresisian, dimana tegangan keluarannya linier dan bergantung kepada temperatur dalam satuan derajat celcius. LM35  merupakan sensor temperatur yang linier dikalibrasi dalam derajat celcius, sebagai pengguna tidak memerlukan pengurangan konstanta kelvin untuk memperoleh nilai dalam derajat celcius. Juga tidak memerlukan rangkaian luar untuk kalibrasi atau penyesuaian untuk memperoleh ketelitian secara tipikal kurang lebih 0.25 derajat celcius pada temperatur ruangan, dan secara keseluruhan kurang lebih 0.75 derajat celcius pada temperatur antara -50 sampai 150 derajat celcius.  

Adapun spesifikasi yang dimiliki sensor temperature LM35 ini adalah:

  1. Terkalibrasi secara langsung dalam derajat celcius.
  2. Keluaran linier 10.0mV/derajat celcius.
  3. Ketelitian dijamin 0.5 derajat celcius pada temperatur 25 derajat celcius.
  4. Bekerja pada temperatur antara -50 sampai 150 derajat celcius.
  5. Disiapkan sebagai aplikasi remote.
  6. Tegangan operasi antara 4 sampai 20V
  7. Arus drain lebih kecil dari 60 mikro Ampere.
  8. Pemanasan sendiri sangat rendah yaitu 0.08 derajat celcius dalam udara.
  9. Secara tipikal ketidak linieran sebesar 0.25 derajat celcius.
  10. Impedansi output 0.1 Ohm untuk beban 1 mA.

Secara tipikal rangkaian aplikasi dari sensor temperatur LM35 diperlihatkan dalam gambar berikut ini.

Didalam aplikasinya, jika tegangan keluarannya memerlukan level tegangan yang kurang, perlu ditambahkan sebuah penguat operasi.

Penguat operasi yang umum digunakan untuk menaikkan tegangan keluaran sensor ini adalah jenis penguat operasi tidak membalik. Mengenai teori penguat operasi tidak membalik dapat anda lihat dalam posting disini.

Besarnya tegangan keluaran yang dibutuhkan diantaranya ditentukan oleh besarnya tegangan yang dibutuhkan ADC pada skala penuh. Atau tergantung kepada kebutuhan tegangan yang dibutuhkan pada masukan rangkaian berikutnya.

Untuk lebih jelasnya mengenai sensor temperatur ini dapat anda baca dalam lembar data yang dikeluarkan oleh pembuatnya dan dapat anda download disini.

 Download

 

Posted in Elektronika | Tagged , , | Leave a comment

Belajar elektronika: rangkaian sensor temperatur

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Sensor temperatur merupakan sensor yang mengubah besaran temperatur menjadi besaran tegangan atau lainnya. Dalam sistem kontrol temperatur, sensor temperatur sangat diperlukan  keperluan membaca temperatur keluaran plant untuk diumpankan kembali sebagai feedback. 

Sensor temperatur pada jaman sekarang banyak jenisnya dan sudah dalam bentuk monolitik dalam satu komponen. Salah satu sensor yang sudah lazim dipakai dan banyak beredar di toko elektronik adalah LM35. LM35 sudah ditera dalam satuan derajat celcius, sehingga tidak perlu lagi mengkonversi derajat kelvin menjadi celcius. Sesuai dengan lembar data, keluaran LM35 adalah 10mV/derajat celcius. Jadi setiap kenaikan 1 derajat celcius, akan bertambah 10mV. Kalau sensor ini dioperasikan sampai 100 derajat celcius, maka keluarannya adalah 1V. Hal ini masih dirasa kurang jika ADC yang digunakan memerlukan tegangan masukan 5V pada skala penuh. Jadi masih diperlukan penguatan sebesar 5 kalinya atau AV = 5.

Untuk membuat pengkondisi sinya sinyal temperatur LM35 agar pada temperatur 100 derajat celcius keluarannya sebesar 5V, diperlukan penguat operasi seperti yang telah diposting disini

Rangkaian lengkap sensor temperatur diperlihatkan dalam gambar berikut ini.

 Dari rangkaian diatas penguatan AV adalah:

Karena AV yang dibutuhkan sama dengan 5, maka R2/R3 harus sama dengan 4. Kalau R2=400KOhm, maka R3=100KOhm. Selanjutnya R1 = R3 = 100KOhm.

Dari lembar data LM35 memerlukan tegangan antara 4-20V, disini saya menggunakan tegangan 15V, demikian pula LM358. 

Jika anda membutuhkan lembar data LM35 dapat didownload disini.

 Download

 

 

 

Posted in Elektronika | Tagged , , | Leave a comment

Teori elektronika: penguat operasi tak membalik

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Penguat operasi tak membalik terkadang diperlukan dalam penguat sederhana misalnya untuk pengkondisi sinyal sensor, karena dibutuhkan polaritas masukan sama dengan keluaran. 

Konfigurasi penguat operasi tak membalik seperti berikut ini:

Dalam konfigurasi ini, tegangan sinyal masukan, (Vin) diasup secara langsung ke terminal non-inverting (+). Dengan demikian berarti bahwa perubahan tegangan keluaran Vout dari penguat operasi memiliki polaritas  ”positif”  terhadap tegangan masukannya, artinya tegangan keluaran tidak dibalik polaritasnya. Hasil tegangan keluarannya akan sefasa dengan tegangan masukannya.

Sinyal umpan balik dari penguat non-inverting diperoleh dengan menerapkan sebagian kecil dari sinyal tegangan keluaran kembali ke terminal membalik  (inverting,-) melalui resitor Rf  melalui rangakai dengan resistor  R2.  Ini konfigurasi loop tertutup menghasilkan rangkaian penguat tak membalik (non-inverting) dengan stabilitas yang sangat baik, impedansi masukan yang sangat tinggi, impedansi Rin mendekati tak terhingga  karena tidak ada arus yang mengalir ke terminal masukan positif  (kondisi ideal) dan impedansi output Rout yang rendah. 

Analisa rangkaian

Agar mudah dianalisa rangkaian digambarkan kembali secara terbalik seperti pada rangkaian disamping. Seperti dalam teori penguat operasi secara ideal, arus masuk terminal membalik dan tidak membalik adalah nol, dan tidak ada beda tegangan diantara terminal ini. Sehingga dengan demikian Vin adalah sama tegangannya dengan V1 terhadap virtual ground. Dengan demikian tegangan keluaran Vout akan ditentukan sepenuhnya oleh besarnya resistansi R2 dan Rf. Pada akhirnya rangkaian seri Rf dan R2 membentuk voltage devider (pembagi tegangan). Selanjutnya dengan menggunakan formula rangkaian pembagi tegangan maka diperoleh:

 

Karena Vi sama dengan Vin, maka penguatan tegangan penguat operasi dapat diperoleh: 

 

 Atau dapat dituliskan kembali menjadi:

Dengan demikian dapat disimpulkan bahwa penguat operasi dengan konfigurasi ini penguatan tegangan Av  akan lebih besar dari 1, ini berbeda dengan konfigurasi penguat operasi membalik.

 

Posted in Elektronika | Tagged , , | Leave a comment

Belajar arduino: board tanpa bootloader

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Kali ini saya akan berbagi pengalaman tentang bagaimana board arduino tanpa menggunakan bootloader.  Sebenarnya bootloader yang ditanamkan dalam board arduino adalah program kecil yang berfungsi untuk mengupload (memprogram flash) secara serial dengan menggunakan protokol serial RS232. Hal ini awalnya untuk membuat mudah para pengguna didalam mengupload hasil kompilasi dalam IDE arduino. Oleh karena itu mengapa pada umumnya board arduino aslinya disisipkan piranti untuk mengubah USB ke serial, sehingga menjadi sangat sederhana tinggal menancapkan board arduino ke saluran USB komputer.

Namun sejak versi IDE arduino 1.0.0,  sudah dilengkapi fasilitas menu “Upload Using Programmer”. Menu bisa anda klik File->Upload Using Programmer,  atau bisa menggunakan shortcut Ctrl+Shift+U. Program hasil kompilasi akan diupload ke board arduino melalui piranti pemrograman sesuai dengan pilihan di menu Tools->Programmer->{pilih sesuai dalam pilihan}. Dengan cara ini bootloader tidak lagi diperlukan karena pasti akan diisi dengan nilai FF alias dihapus. Penulis mencoba dengan menggunakan programmer USBasp yang meggunakan pin MISO, MOSI, SCK dan RESET pada ATmega328. Sebenarnya hanya menambahkan 1 kabel saja, kalau secara serial RS232 menggunakan:  TX, RX, RESET. Kecepatannya akan lebih cepat menggunakan cara ini, sehingga akan menghemat waktu pengembangan aplikasi mikrokontroler.

 

 

 

Posted in Arduino, Elektronika, Mikrokontroler | Tagged , , , | Leave a comment

Belajar arduino: membuat board sendiri ATmega8, 168 dan 328

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Posting kali ini diperuntukkan bagi yang ingin belajar arduino namun berkantong tipis untuk membeli board arduino yang relatif mahal. Atau bagi mereka yang memang suka utak-atik perangkat keras elektronika. Mikrokontroler ATmega 8, 168 dan 328 memiliki jumlah kaki yang sama yaitu 28 untuk kemasan DIP, mikrokontroler jenis ini banyak yang menjualnya relatif lebih murah dibanding dengan mikrokontroler lainnya. Dengan memiliki salah satu mikrokontroler dan ditambah dengan sedikit komponen sebenarnya sudah bisa berfungsi layaknya board arduino yang asli.

Dalam posting ini berisi tutorial cara membuat arduino.

Membangun rangkaian

Untuk membuat arduino  terdapat banyak pilihan jenis mikrokontroler yang akan digunakan. Namun dalam posting ini bisa menggunakan ATmega 8, 168, 328. Saya menggunakan ATmega 328 dengan kapasitas memori program lebih besar yaitu 32KB. Bangunlah dahulu rangkaian mikrokontroler dalam rangkaian berikut ini.

 

 Komponen yang harus anda sediakan adalah:

  1. IC1: Mikrokontroler ATMega8, 168, atau 328, terserah kepada anda silakan dipilih salah satu.
  2. Q1: Kristal resonator, 8MHz atau 16MHz.
  3. R1: sebagai resistor pullup untuk reset sebesar 1K – 10K
  4. C1 dan C2 sebesar 22pF.

Tegangan suply VCC adalah 5VDC, jangan sampai terbalik polaritasnya, kalau terjadi maka mikrokontroler akan menjadi almarhum alias terbakar. Untuk mengisi program biasanya menggunakan ICSP dengan menggunakan 4 sinyal MISO, MOSI, SCK dan RESET. Saya sarankan menggunakan USBASP bisa dibuat sendiri dengan menggunakan mikrokontroler ATmega8. Tegangan suply 5V dapat disuply dari USBASP programmer dengan mengambil daya dari port USB komputer. Cara membuat USBASP programmer dijelaskan dalam posting lainnya.

Anda dapat membangun rangkaian dengan menggunakan breadboard agar mudah bereksperimen dengan menghubungkan setiap kaki komponen  menggunakan kabel engkel sekitar 0.5-1mm. Pilihan lain bisa mengunakan PCB berlobang dan anda bisa menghubungkan dengan kawat engkel untuk setiap kaki komponen dengan cara disolder.

 

 Rangkaian yang dibangun pada breadboard diatas, belum ada bootloader arduinonya. Jadi perlu diprogram bootloader sesuai dengan jenis mikrokontroler ATmega yang digunakan. Untuk mengisi booloader ini cara yang paling mudah dengan menggunakan IDE arduino. Namun anda memerlukan piranti pemrogram yang sesuai dan dikenal arduino. Anda harus menset jenis pemrogram sesuai dengan yang anda gunakan. Cara settingnya pilih menu Tools->programmer->”pilih jenis programmer”.

Programmer yang termurah adalah jenis Parallel Programmer yang memanfaatkan port paralel pada komputer. Namun sayang pada laptop sudah tidak ada lagi. Kalaupun menggunakan konverter USB-LPT akan menjadi lebih ribet lagi, lebih baik menggunakan USBasp bisa dibeli dipasaran umum atau dibuat sendiri menggunakan ATmega8. Saya menggunakan USBasp sebagai pemrogramnya.

 

Yang tak kalah pentingnya adalah mengenal koneksi pemrograman pada USBasp agar proses pemrograman berhasil. Pada USBasp ada dua jenis konektor yaitu 6pin dan 10pin. Saya menggunakan jenis 10pin pada USBasp buatan sendiri.

Saluran pemrograman adalah MISO, MOSI dan SCK dihubungkan dengan MISO, MOSI dan SCK mikrokontroler target. Sedangkan RES dihubungkan ke RESET mikrokontroler target untuk mereset menjadi mode program. Sedangkan VTG adalah sumber tegangan +5V dari port USB komputer. GND adalah saluran bersama. Jadi total yang harus dihubungkan ke mikrokontroler adalah 5 kabel jika board anda memiliki suply tegangan +5V sendiri. Jika board and tidak memiliki suply +5V dan diperoleh dari USB komputer, VTG dihubungkan ke VCC mikrokontroler. Harus diperhatikan jangan kedua-duanya, untuk menghindari kerusakan komputer karena tegangannya menjadi bentrok. 

Mengisi BootLoader

Bootloader merupakan program pendek yang diisikan kedalam ATmega, yang akan dieksekusi saat mikrokontroler diberi catudaya. Sebenarnya bootloader ini merupakan firmware untuk  pemrograman yang bekerja secara serial RS232. Jadi cukup memanfaatkan saluran serial RS232 pada komputer, untuk selanjutnya bootloader akan menangani pengisian program pada memori program berupa Flash dalam ATmega. Sebenarnya masih ada pilihan lainnya untuk mengisi/upload hasil kompilasi arduino yaitu salah satunya dengan menggunakan USBasp, sehingga tanpa memerlukan bootloader.

Namun jika ini yang menjadi pilihan anda akan dijelaskan bagaimana mengisi (burn) firmware bootloader ini. Untuk mengisi bootloader hubungkan MISO -> MISO, MOSI -> MOSI, SCK -> SCK, /RES -> RESET, GND -> GND, VTG -> VCC (jika target disuply dari tegangan USB komputer).

 Setelah target tersambung dengan benar ke programmer USBasp, colokkan USBasp. Selanjutnya jalankan arduino, kemudian lakukan sebagai berikut:

  1. Set board yang sesuai: Tools -> Board -> Duemilanove w/ATmega 328 (bisa yang lain asal ATmega328 16MHz)
  2. Set Programmer: Tools -> Programmer -> USBasp
  3. Kirim bootloader: Tools -> Burn bootloader

Saya menggunakan arduino versi 1.0.1.

YouTube Preview Image

Meng-upload program

Untuk menguji apakah bootloader bekerja dengan baik, dicoba mengupload program dari contoh yang ada pada arduino bernama “blink”. Hubungkan TX komputer -> RX arduino (pin 2), RX komputer -> TX arduino (pin 3), RTS komputer -> RESET arduino (pin 1). Ingat ketiga saluran dari serial komputer harus memiliki level tegangan logika TTL 0 V atau 5V. Kalau anda menggunakan USB to serial pada umumnya, keluarannya masih dalam taraf level tegangan RS232. Untuk mengubah level tegangan RS232 ke TTL gunakan IC MAX232.

YouTube Preview Image

Mudah-mudahan bermanfaat buat seluruh pengunjung blog. 

Posted in Arduino, Elektronika, Mikrokontroler | Tagged , , , | 28 Comments

Belajar arduino: hello world

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Posting kali ini akan dijelaskan bagaimana cara berkenalan dengan arduino bagi para pemula. “Hello world” adalah istilah yang sering digunakan dalam dunia pemrograman untuk mengawali dan mengenalkan sebuah pemrograman. Biasanya program adalah sederhana dengan menampilkan kalimat “Hello World” ke piranti keluaran stadar dari sistem mikroprosesor yang digunakan. Kalau di PC biasanya dikeluarkan pada layar, kalau tidak dilengkapi dengan layar biasanya ditampilkan ke konsole secara serial. Dalam arduino untuk mengenalkan sebuah program secara sederhana dengan cara mengkerdipkan led dengan periode hidup dan mati tertentu.

Bagi para pemula untuk belajar arduino yang harus dipersiapkan adalah:

  1. Board arduino (bukan buatan sendiri), saya menggunakan board nano yang berbasis mikrokontroler ATmega328 dengan clock 16MHz.

  2.  Perangkat lunak arduino terbaru dapat anda download disini. Pilih sesuai dengan sistem operasi yang sesuai dengan komputer anda.

Dalam board arduino biasanya sudah dilengkapi dengan led untuk keperluan mengetes perangkat keras atau sebagai indikator serbaguna. Dalam arduino nano biasanya menggunakan penyemat D13 atau digital kanal 13.

Langkah-langkah eksperimen

 Langkah-langkah eksperimen arduino bagi para pemula adalah:

  1. Tancapkan usb serial ke kemputer anda. 
  2. Pastikan drivernya sudah terinstall dan dikenali dengan benar.
  3. Untuk mengecek driver,-> My Computer, klik kanan,Properti. Klik Hardware,Device Manager. Lihat port COM apa sudah terlihat dalam daftar driver, catat kanalnya.
  4. Jalankan arduino.
  5. Load contoh program dengan memilih menu.

Nah, dalam editor akan terlihat programnya sebagai berikut:

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.

  This example code is in the public domain.
 */

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

// the setup routine runs once when you press reset:
void setup() {
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);               // wait for a second
}

Mengenai cara kerja program akan saya jelaskan nanti, teruskan rasa penasaran anda sebagai tanda ketertarikan hobi yang yang baru ini. 

Kompilasi

 Sebelum program diupload ke board arduino ada baiknya bagaiman mengkompilasi untuk melihat apakah ada kesalahan penulisan program. Dalam arduino tidak ada menu kompilasi, sebagai gantinya adalah menu “Verify”. Klik icon tersebut maka dalam jendela pesan akan ditampilkan statu sedang dikompile.

Jika sudah terdapat kesalahan dalam program maka dilanjutkan dengan mengupload program ke board arduino yang anda gunakan. Klik ikon panah kanan disebelah kanan ikon “verify”. Kanal COM akan dicari secara otomatis oleh arduino dan akan memberikan saran kepada anda setelah ditemukan.

Jangan lupa sebelumnya harus anda set dulu board yang anda gunakan sesuai dengan jenis board arduino tersebut. Pilih menu  Tool -> Board. Saya set sesuai dengan board yang saya gunakan yaitu Nanp ATmega328. Mungkin anda menggunakan board yang berbeda dengan saya, oleh karena itu set sesuai dengan yang anda miliki.

Penjelasan program

Dari program di atas cara kerja program dapat dijelaskan sebagai berikut:

  1. Baris pertama  dari program terdapat sintak:  int led = 13; merupakan pendefinisian led sebagai nilai 13, ini digunakan untuk menandai nomer saluran yang digunakan untuk pin arduino terhubung dengan led. 
  2. Baris program berikutnya adalah fungsi void setup(), yang akan dieksekusi pertama kali sesaat setelah arduino diberi catudaya, berfungsi untuk perintah-perintah insialisasi sebelum program utama dieksekusi. Isi dari fungsi ini adalah pendefinisian pin io dengan sintak:  pinMode(led, OUTPUT);  memiliki arti bahwa mode dari pin (penyemat) 13 (bukan pin mikrokontroler) yaitu saluran D13 (digital nomer 13) difungsikan sebagai saluran keluaran atau output. Nomer 13 ini ditahan dalam variabel led sebagai konstanta, dengan maksud agar dapat dikonfigurasi dengan mudah karena berada di atas.
  3. Baris program berikutnya adalah fungsi void loop(), merupakan fungsi dari program utama yang akan dieksekusi secara berurutan dari atas sampai terakhir dan kembali lagi dari atas sampai terakhir, begitu seterusnya karena merupakan loop yang tidak pernah berakhir. Baris pertama dari fungsi ini adalah  digitalWrite(led, HIGH); artinya tulislah logika 1 (high) pada pin keluaran nomer 13, dengan demikian led yang terhubung ke pin ini akan menyala, karena led diseri dengan resistor secara pulldown (terhubung ke ground). Selanjutnya adalah mengeksekusi sintak delay(1000); yaitu waktu tunda selama 1000mS atau 1 detik, dengan demikian led menyala selama 1 detik. Berikutnya adalah  digitalWrite(led, LOW); artinya tulislah logika 0 (low) pada pin keluaran nomer 13, dengan demikian led yang terhubung ke pin ini akan mati. Selanjutnya delay(1000); mengakibatkan led mati selama 1 detik. Keseluruhan program artinya led berkedip hidup selama 1 detik, mati selama satu detik. 

 

Posted in Arduino, Elektronika, Mikrokontroler | Tagged , , , | 2 Comments

Belajar Arduino: pengantar

Isi materi ini ditujukan untuk berbagi ilmu pengetahuan kepada semua pengunjung blog ini.
Silakan digunakan untuk kepentingan proses pembelajaran untuk mencerdaskan bangsa ini dengan tidak lupa menyebutkan sumbernya.
Namun yang harus dihindari adalah: mengambil isi dengan mengakui sebagai haknya, mengambil isi untuk tujuan komersialisasi.
Semua tergantung kepada hati-nurani, jika terjadi saya berkewajiban mengingatkan para plagiator. Biasakan sesuatunya terlahir dari tangan anda, itu menunjukkan bahwa anda ada dan anda diberi hidayah sebagai ciptaanNya yang paling mulia untuk memberikan manfaat di dunia ini. Biasakanlah memberikan manfaat kepada orang lain, dan jangan membiasakan memanfaatkan orang lain.

Posting kali ini mengenai arduino, merupakan perkembangan terkini cara mengembangkan aplikasi mikrokontroler relatif lebih mudah jika dibandingkan dengan cara konvensional. Sudah lama saya tidak berkecimpung lagi dalam utak-atik aplikasi mikrokontroler, kira-kira 5 tahun lamanya. Karena sekitar 3 tahun yang lalu saya sudah tidak langi mengajar mikroprosesor pada Jurusan Teknik Elektro, Universitas Brawijaya dengan alasan sudah jenuh. Namun seiring dengan perkembangan teknologi mikrokontroler yang melaju dengan cepat, saya banyak menemukan mikrokontroler serba canggih dengan banyak piranti didalam internal mikrokontrolernya seperti keluaran AVR. Karena mikroprosesor telah mendarah daging dalam kehidupan saya sebagai pengajar mikroprosesor sejak tahun 1986-2009 atau 23 tahun lamanya. 

Didalam mengajar saya utamakan teori kemudian memberikan pemahaman dalam dunia nyatanya. Karena kalau teori saja, bagaikan sebuah cerita fiksi yang tidak tahu wujud kenyataannya. Kalau praktek saja tanpa teori bagaikan orang buta yang tidak tahu jalan sebenarnya, dan pada akhirnya hanya meraba-raba tanpa tahu sebabnya. Yang benar adalah Teori dan praktek selalu beriringan, sehingga didalam belajar ilmu pengetahuan hendaklah berdasar tiga hal yaitu: “Belajar Membaca”, “Belajar Berpikir” dan “Belajar berbuat”. “Belajar membaca” adalah tahap awal belajar ilmu pengetahuan. Belajar membaca artinya menelusuri jejak ilmu pengetahuan yang ada dibumi ini, karya-karya orang lain, atau apa-apa yang sudah dilakukan oleh orang lain. Tujuannya adalah membangun motivasi, menghargai karya orang lain, memulai hal-hal baru yang belum dilakukan orang lain. “Belajar berpikir” adalah suatu langkah awal dari sebuah ketertarikan kepada sebuah ilmu pengetahuan, sekaligus mengetahui kemampuan diri sendiri, mengetahui bahwa kita ada oleh karena itu kita berpikir. Selain itu juga bertujuan untuk mengetahui atau mengukur kemampuan diri sendiri. Selanjutnya adalah “Belajar berbuat” artinya apa yang telah dibaca dan dipikir haruslah diverifikasi dalam bentuk perbuatan, sebagai contoh praktek. Belajar berbuat bertujuan untuk mengoreksi diri sendiri, apakah yang telah dibaca dan dipikir benar adanya, kalau tidak benar mulailah dari awal untuk mencari kebenaran apa yang telah kita pelajari. Semua itu adalah sebuah proses yang harus dijalani agar apa-apa yang kita ajarkan adalah benar dan telah dibuktikan. Dengan demikian apa yang kita sampaikan dalam ruang kelas bukan sebuah isapan jempol belaka.

Arduino

Mengenai arduio yang telah diluncurkan dalam situs arduino, yang sampai saat posting ini ditulis telah memiliki versi 1.0.1. Arduino sebenarnya adalah perangkat lunak IDE (Integrated Development Environment ). Sebuah perangkat lunak yang memudahkan kita mengembangkan aplikasi mikrokontroler mulai dari menuliskan source program, kompilasi, upload hasil kompilasi, dan uji coba secara terminal serial. Namun sampai saat ini arduino belum mampu men-debug secara simulasi maupun secara perangkat keras, kita tunggu selanjutnya.

Arduino ini bisa dijalankan di komputer dengan berbagai macam platform karena didukung atau berbasis Java. Source program yang kita buat untuk aplikasi mikrokontroler adalah bahasa C/C++ dan dapat digabungkan dengan assembly. Penulis menggunakan arduino berbasis mikrokontroler AVR dilingkungan jenis ATMEGA yaitu ATMEGA 8, 168, 328 dan 2650.

Sampai disini silakan dulu download program arduino kemudian installah dalam komputer anda. Setelah anda instal coba dirun maka akan muncul tampilan sebagai berikut.

 

Dari tampilan kedua dapat dibagi menjadi 3 jendela yaitu: Menu dan tombol icon, editor dan pesan. Pada bagian bawah terlihat jenis mikrokontroler atau board arduino saat ini yaitu Board Arduino BT dengan mikrokontroler ATmega328 dengan menggunakan kanal serial COM7 untuk upload hasil kompilasi dan komunikasi konsole serial.

Penggunaan arduino sangat mudah, kemudahan karena kita tidak perlu lagi mengetahui detail perangkat keras dari mikrokontroler  terutama mengenai konfigurasi register-register yang harus dilakukan dengan mengetahui cara kerja dari mikrokontroler. Selain itu arduino sangat kaya dengan library baik dari pengembang arduino maupun sumbangan dari orang lain, karena arduino sifatnya adalah opensoource.

Pada saat source dikompilasi, maka hasilnya berupa file heksa di upload ke mikrokontroler secara serial dengan memanfaatkan pin TX/RX untuk ATmega8 adalah penyemat 2 dan 3. 

Bagaimana cara kerja pengembangan sistemnya ?

Disamping IDE arduino sebagai jantungnya, bootloader adalah jantung dari arduino lainnya yang berupa program kecil yang dieksekusi sesaat setelah mikrokontroler diberi catu daya. Bootloader ini berfungsi sebagai pemonitor aktifitas yang diinginkan oleh arduino. Jika dalam IDE terdapat file hasil kompilasi yang akan diupload, bootloader secara otomatis menyambutnya untuk disimpan dalam memori program. Jika pada saat awal mikrokontroler bekerja, bootloader akan mengeksekusi program aplikasi yang telah diupload sebelumnya. Jika IDE hendak mengupload program baru, bootloader seketika menghentikan eksekusi program berganti menerima data program untuk selanjutnya diprogramkan dalam memori program mikrokontroler. Pendek kata sangat mudah mekanisme pengembangan aplikasinya. Tentang IDE arduino kita bahas sampai disini saja, selanjutnya saya akan menjelaskan perangkat keras pendukung lainnya.

Piranti komunikasi serial RS232

Hubungan komunikasi data antara IDE arduino dengan board arduino digunakan komunikasi secara serial dengan protokol RS232. Tentunya jika anda tertarik dengan arduino ini, cek terlebih dahulu apakah komputer anda ada port komunikasi serialnya. Untuk komputer PC dipastikan sudah ada port serialnya dengan konektor DB9, namun untuk Laptop akhir-akhir ini sudah dihilangkan. Jika anda menggunakan laptop modern, diperlukan sebuah antarmuka serial rs232 biasanya ditancapkan ke USB. Sudah barang tentu jika board arduino anda sudah dilengkapi dengan komunikasi serial RS232 (biasanya USB), piranti ini tidak lagi digunakan, cukup langsung ditancapkan ke USB komputer anda. Biasanya catu daya 5V otomatis akan disuply ke board arduino anda.

Piranti serial rs232 ini digunakan jika board arduino atau arduino buatan sendiri tidak dilengkapi dengan piranti serial 232. Jika tidak tersedia, gunakan usb to serial pada umumnya. Tapi harus diingat penyemat TX/RX mikrokontroler merupakan level ttl, jadi harus diubah dari level rs232 ke ttl dengan menggunakan chip max232. Belakangan ini udah ada piranti usb to serial dengan level ttl, jadi tidak perlu menggunakan chip max232 lagi. Saluran yang digunakan adalah RX, TX dan DTR. DTR digunakan untuk mereset mikrokontroler secara otomatis ketika IDE arduino mengirimkan program untuk dituliskan ke memori program mikrokontroler. Jadi DTR dihubungkan dengan penyemat reset mikrokontroler arduino.

Board arduino

Board arduino sebenarnya berisi komponen utama mikrokontroler AVR, mulai dari ATmega8 sampai seri terbaru diantaranya adalah 2650. Selain itu board arduino dilengkapi dengan chip USB to serial, sehingga penggunanya mudah menggunakannya  hanya dengan mencolokkan ke port USB komputer/laptop. Sebenarnya kita bisa membuat board tersebut, karena board yang sudah jadi hanyalah mikrokontroler yang diisi dengan program bootloader  yang juga tersedia pada IDE arduino. Membangun board arduino sendiri akan dibahas dalam posting yang terpisah.

Untuk melihat jenis-jenis board arduino yang sudah jadi bisa anda klik disini.

Bahasa pemrograman

 Bahasa pemrograman yang digunakan oleh IDE arduino didalam mengembangkan aplikasi mikrokontroler adalah C/C++. Tentunya terdapat style khusus yang membedakannya yaitu:

  1. void main(void) sebagai fungsi program utama diganti dengan void loop() . Perbedaannya pada c biasa tidak terjadi loop, jadi harus ada looping yang ditambahkan misalnya while(1){……}. Dalam arduino secara otomatis fungsi loop() akan kembali lagi dari awal jika sudah dieksekusi intruksi paling bawahnya.
  2. Ditambahkan fungsi void setup(void), fungsi ini dugunakan untuk inisialisasi mikrokontroler sebelum fungsi utama loop() dieksekusi.
  3. Tidak direpotkan dengan setting register-register, karena arduino sudah memasukkannya kedalam librarynya dan secara otomatis disesuikan dengan jenis board arduino berkenaan jenis mikrokontrolernya. Jadi setup perangkat kerasnya menjadi mudah.

Dalam posting yang lain akan dijelaskan aplikasi sederhana tentang arduino, agar mudah dipahami apa sebenarnya arduino itu. 

Penyemat 

Pada arduino memberikan penamaan penyemat secara spesifik agar mudah dikenali oleh pengguna awam. Jika kita terbiasa  mengembangkan aplikasi mikrokontroler tidak menggunakan arduino, penyemat menggunakan nama penyemat sesuai dengan lembar data dari pabriknya. Arduino menamakan penyemat secara spesifik yaitu dua jenis saluran yaitu analog dan digital. Setiap saluran analog dan digital diberi urutan angka, misalnya D5 adalah saluran digital kanal 5, A0 adalah saluran analog kanal 0. 

 

 

Dari gambar di atas, yang penamaan penyemat yang berwarna  merah adalah nama saluran arduino. Sedangkan nama penyemat yang berwarna hitam adalah nama penyemat mikrokontroler ATmega8, 168 dan 328. Dengan demikian pengembang aplikasi mikrokontroler dengan menggunakan arduino tidak usah pusing-pusing mengetahui nama dan nomer penyemat mikrokontroler yang sedang dikembangkan aplikasinya.

Posted in Arduino, Elektronika, Mikrokontroler | Tagged , , , | 8 Comments