Category Archives: Arduino

Last updated by at .

Arduino tutorial: 8 LED simple flasher using lookup table

This program is a development of previous post. This uses the table as a data storage pattern of the LED and the constant of the delay.



To save the patterns and the delay led to use of variables and dataDelay dataFlasher as a array of byte and integer. This table will be placed in the microcontroller program code permanently.

DataFlasher variable is a data sequence of LED patterns, written in binary format for ease verification of the pattern. While the variable  of dataDelay is a data constants of each led patterns as passing parameter for the function of delay(). As dummy load, on the end of data of dataDelay variable is set as null. This is for mark that no data after it.

Inside the function of loop() get any data for led pattern, which is in dataFlasher variables to be sent to each bit of LED (D2 to D9). On line 49 is masking of lsb of current dataFlasher and sent to led with d variabel as channel of digital port. Next on line 50, variable of i to be right shifted for the next bit.

The next data is taken, until dataDelay = 0.  

YouTube Preview Image

Source can be downloaded here

Posted in Arduino, Arduino, Tutorial | Tagged , | 4 Comments

Arduino tutorial: 8 LED simple flasher using looping

Examples of Arduino program here that has just been posted here. Simplified the program by adding a loop instruction that is: for ().
Because the digital pin to 8led is D2 .. D9, then the instruction pinMode (), digitalWrite, and delay () can be inserted into the looping of for() instruction.
More programs like the following:

Program can be explained as follow:

  1. On setup(), using looping for() defined n variables as series 2,3,4,5,6,7,8,9. thus, Inside looping of for(), function of pinMode() and digitalWrite() instructions executed for pin of digital as number of 2,3,4,5,6,7,8,9.
  2. Inside function of loop(), each led of digital pin turn on about 100ms. Thus do not need to write down instructions repeatedly, for each LED.

Once the compiled binary code becomes smaller when compared to the previous tutorial.

Having executed the same result as the following video.

YouTube Preview Image

Source can be downloaded here.

Posted in Arduino, Arduino, Tutorial, Uncategorized | Tagged , | Leave a comment

Arduino tutorial: 8 LED simple flasher

Here I will explain how to make a simple 8 LED flasher. Of course the program is made very simple logic, using very little instruction as the lesson.
Instructions used are:

  1. pinMode ()
  2. digitalWrite ()
  3. delay ()

With three kinds of instruction can make a simple flasher 8led. 

Open the program code in the Arduino IDE, the program can be described as follows:

  1. First defined the digital pin for the LED 1 .. 8, using the instruction: int LED1 = 2, meaning that using a pin LED1 D1 (digital channel 1). Similarly to other LED uses the same instruction.
  2. In the function setup (), define each pin as an output LED1 .. LED8 with instructions: pinMode (). Also all led made turn off using instruction: digitalWrite (LED1, LOW), as well as for the other led.
  3. The loop function (), each LED is turned on for 100ms, with instruction in sequence:
    digitalWrite (LED1, HIGH);
    delay (100);
    digitalWrite (LED1, LOW);
    Same for the other led to change their variable LED2 … 8.

YouTube Preview Image

Source can be downloaded here.


Posted in Arduino, Tutorial | Tagged , | Leave a comment

Introduction to the Arduino

Here will be explained about Arduino for beginners. For the programming hobbyists in hardware using microprocessor or microcontroller, the Arduino is an easy choice to make the program like the computer platform programming. 

On computer programming, relations with the hardware for input/output is not necessary to memorize the pin numbers of the hardware.  If you are on a microcontroller environment, must know the pin number that will be used for input/output. Furthermore it should understand the basic philosophy of how to treat the pin. 

Arduino is an IDE for programming microcontroller in order to develop the software as well as computer software development environment.  

Easily obtained using arduino IDE, among others:

  1. The programming language used was C / C + + or combined with the assembly. 
  2. Microcontroller pin numbers are known as fixed by classifying digital or analog channels. Any microcontroller with a label known for Dx to digital, analog to Ax, where x is the channel number. Thus you do not need to remember pin numbers on the microcontroller used.
  3. Programs that have been made using Arduino, can be easily applied to other microcontroller which is recognized by the Arduino. The program does not need to be changed, simply change the configuration of the microcontroller’s used.
  4. To add a new library can be built easily by using C / C + + or combined with the assembly. To integrate with the Arduino program, with enough to include the header of library that will be used. Thus very easy to integrate libraries made by the contributors for use by other users.
  5. Very easy to compile, there are two upload menu to compile and upload, verify menu to compile it. Library search process is done automatically.

How to start ?

Learn to start applying the Arduino, I recommend to you to have an Arduino board first. Avoid advance to make an Arduino board from microcontroller chip. For first, begin to learn programming with a simple application. Many types of Arduino board, more details you can click here.

Next, you must install the Arduino IDE, you can get for free by downloading here. I assume you have a nano to use a microcontroller ATmega328 board. More details about the specifications of this board you can see here.


Connect the Arduino with a USB interface on your computer, then run the Arduino IDE by clicking on the icon’s arduino. The first time you have to choose a board that suits you use. For that, click the menu: Tools-> Board.

Every time you change the type of the Arduino board, you must change the configuration of the appropriate board in the Arduino IDE. Most important is the type of microcontroller used and the frequency used must be matched on this configuration by typing menu.

Examples of program “blink” will appear as follows:

The logic of the program can be described as follows:

  1. There are two default functions, there are two setup() and loop() and must exist in the program. Setup () function as program initialization before the loop() function is executed.
  2. Loop() function is a substitute for the function main() in C programming language in general. The difference of this function will perform a continuous loop when the end of code is executed.
  3. The code in line 11 is initializing channel digital channel 13 (D13) as output. This channel is connected to the LED on the Arduino board type nano.
  4. At block loop () there are 4 lines of program code, line 15 is writing of logic one to D13. And will turn on LED, because there are pulldown series by resistor.
  5. Line 16, execution of time delay function with parameter passing 1000 as 1000ms or 1 second. This means that the LED will be turned on for 1 second.
  6. Line 17 is writing of logic low to D13. And will turn off LED.
  7. Line 18 similar with line 16, will executed time delay function about 1 second. This means tha LED will be turned off for 1 second.
  8. Go to line 15 again, because loop() will executed as looping.

To compile and upload to the board nano is very easy just click the upload icon.

please wait for video

Posted in Arduino, Arduino, Tutorial | Tagged , , , | Leave a comment

Testing of the Arduino Servo library on brushless motor’s cesna 130-46

I’ve created an Arduino ATmega328 built on a perforated veroboard. To connect between pins, I use in soldering wires directly. I use a 16MHz crystal clock and  the Arduino will recognize  as a board of “Nano Arduino w / ATmega328″.

In order board is easy to use, I added a header connector as in the rc receiver configuration is GND / +5 V / Signal. To facilitate the program upload the ISP, pin TX / RX / RST microcontroller mounted single header connectors. 

RST microcontroller connected to the RTS of the serial interface using the USB dongle that works automatically reset. In addition, I added the LED on the D9 in order to test whether the Nano board can work well. 

Next I will test this board for the throttle of the brushless motor. I am using the simple program that has been available in the example program.

I use a 3S lipo, 18A ESC as a 5V voltage source Arduino board. Potentiometer connected to ADC0 or A0 pin to set the throttle.

YouTube Preview Image

Posted in Arduino, Electronics, foamy plane, RC Model | Tagged , , | Leave a comment

PID applications on arduino to control the temperature of the heat exchanger plant.

Arduino library for PID controller algorithm has been made and can be applied with ease. By using the arduino PID library can be applied to various fields of control systems, here applied to regulate the temperature of the heat exchanger plant. 

Plant made using nylon with 600 Watt electric heater. To know the LM35 temperature sensor plant used as it has been posted here. While signal conditioners circuit for temperature sensor has been posted here as well.

As an actuator, I use a method of switching pwm IGBT components. The pwm switching circuit I have described in posting here. As a controller, I’m using a microcontroller ATmega328 with Noano Arduino bootloader. 

PID library

Library for Arduino PID can be downloaded here. After you download folder PID_v1 put in the folder “libraries” where the Arduino installed. 

To test the response of the PID used a simple program as follows:


//Define Variables we'll be connecting to
double Setpoint, Input, Output;
int pwmOutput = 9;
int feedBackPin = A0;
int ComputeOk; 

//Specify the links and initial tuning parameters
PID myPID(&Input, &Output, &Setpoint,1.25,4,0.5, DIRECT);

void setup()
  //initialize the variables we're linked to
  Input = analogRead(feedBackPin);
  Setpoint = 500;

  //turn the PID on

void loop()
  Input = analogRead(feedBackPin);

  double curErr = Setpoint-Input;
  Serial.print(" - ");


Posted in Arduino, Control system applications | Tagged | Leave a comment

Arduino 1.0.1: serially upload using handmade board of ATmega328

If you build your own Arduino with ATmega328, when integrated with a serial upload utility, will fail as I did. But if you re-use the old version of the Arduino IDE such as 0023, certainly not a failure.
Surely you will be disappointed, because the Arduino IDE version 1.0.1 has certain advantages not possessed in the previous version.

In the release version of the Arduino started version 1.0.0, has advantages compilation faster because only compile files that experience a change in editing the source. Obviously this is very loved by the users, because the development process will be faster.

When you use the original Arduino board, such as nano board, a serial upload process does not fail. Due to the release version was added a upload facility via the programmer, as you do to fill the bootloader.  I never gave up, so use this facility and not use the serial. But using less programmer takes the number of pins: MISO, MOSI, SCK, but upload is only using pin serial RX / TX. I think the serial uploading  is more effective manner, does not reduce the use of pin and at the same time for data communication or debugger.

I find the problem why this happened, because I think the same principle and use the same chip.

Finally I managed to modify the configuration file so that the upload is successful series in the Arduino IDE version 1.0.1. using a homemade board of the ATmega328.


I also like to reset automatically when the upload program. For that you must connect the RTS pin of the USB-Serial to TTL module to the ATmega328 RESET pin (pin 1). This way you do not need to manually press the RESET button, every upload program. In addition also connect the RX / TX between ATmega328 (see 2.3) with a USB-Serial to TTL module. in pairs. Also do not forget to GND should be connected as well.

Boards.txt file modifications on the Arduino IDE ver. 1.0.1 using handmade ATmega328 Arduino Board

I found a way to change files in the folder of boards.txt \hardware\arduino\boards.txt.

Handmade Arduino board is configured as a Nano-328 board. You must change the configuration of the board.

 Further search for the following text in the file of boards.txt. Nano w/ ATmega328


In the second line of text:


change to:


The completely configurations of boards.txt file will be: Nano w/ ATmega328

### nano328.upload.protocol=arduino

That means using the STK500 protocol for serial usb-serial to ttl module, while the “arduino”, is the original Arduino board serial protocol. Finally, you must reboot the IDE arduino for new configuration. 

Posted in Arduino | 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:

  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. 


 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.


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. 


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