Showing posts sorted by relevance for query c-arduino-if. Sort by date Show all posts
Showing posts sorted by relevance for query c-arduino-if. Sort by date Show all posts

Friday 13 May 2016

BAHASA PEMROGRAMAN ARDUINO

A.Struktur
Dalam penulisan Program/ Sketch Menggunakan Arduino, ada dua fungsi yang harus ada hal ini dikarenakan arduino memiliki struktur dasar/ standart penulisan yaitu void setup, dan void loop, namun Arduino juga memiliki beberapa fungsi tambahan seperti komentar satu bari ( // ), Blok komentar (/*…*/), kurung kurawal ( { } ), Titik Koma ( ; ).

1.void setup( ) {   }
Semua kode didalam kurung kurawal akan dijalankan hanya satu kali ketika program Arduino dijalankan untuk pertama kalinya/ di-Reset

Contoh ;
int LED = 3;
void setup(){
Serial.begin(9600);
pinMode(LED, OUTPUT);
}
void loop(){
}

2.void loop( ) {   }
Fungsi ini akan dijalankan setelah void setup  selesai. Setelah dijalankan satu kali fungsi ini akan dijalankan lagi, dan lagi secara terus menerus sampai catu daya (power) dilepaskan dengan kata lain program yang ada di dalam kurung kurawal void loop akan mengunlang secara terus menerus.

3.Fungsi()
Digunakan untuk membuat sekumpulan program dengan memberikan label/ nama tertentu yang dapat dipanggil sewaktu- waktu dan fungsi ini biasanya digunakan untuk sekumpulan program yang akan sering dipanggil / dijalankan, sehingga program akan jauh lebih sederhana.

4.//(komentar satu baris)
Kadang diperlukan untuk memberi catatan pada diri sendiri apa arti dari kode-kode yang dituliskan. Cukup menuliskan dua buah garis miring dan apapun yang kita ketikkan dibelakangnya akan diabaikan oleh program.

5./*  */(Blok Komentar)
Jika anda punya banyak catatan, maka hal itu dapat dituliskanpada beberapa baris sebagai komentar. Semua hal yang terletak di antara dua simbol tersebut akan diabaikan oleh program.

6.{   }(kurung kurawal)
Digunakan untuk mendefinisikan kapan blok program mulai dan berakhir (digunakan juga pada fungsi dan pengulangan).

7.;(titk koma)
Hamper baris kode pada Arduino harus diakhiri dengan tanda titik koma (jika ada titik koma yang hilang maka program tidak akan bisa dijalankan/ eror.

B.Struktur Pengaturan

Program sangat tergantung pada pengaturan apa yang akan dijalankan berikutnya, berikut ini adalah elemen dasar pengaturan Arduino.

1.If dan Else
Berfungi untuk melakukan pengetesan atau pengujian kondisi sehingga apabila sebuah kondisi telah terpenuhi maka program/ sketch akan menjalankan Pernyataan yang berada di dalam kurung kurawal, namun jika tidak maka program akan melewati pernyataan tersebut, if sendiri memiliki beberapa bentuk dalam penulisannya 
-Bentuk pertama;
ini adalah bentuk if tunggal yang digunakan hanya untuk 1 kondisi, sehingga bila sudah tercapai kondisi tersebut jalankan pernyataan jika tidak lewati pernyataan.

Format penulisan :
If(kodisi){
pernyataan}

Contoh :
If (SensorPin > 100){
digitalWrite(13, HIGH);}

Program diatas menyatakan jika nilai Sensor Pin besar dari 100 maka nyalakan LED pada pin 13.

-Bentuk kedua;
Ini adalah bentuk kedua yang digunakan untuk kondisi if dengan satu pengecualian, jadi apabila if dalam kondisi tersebut program akan menjalankan  pernyataan1 jika tidak program akan menjalankan pernyataan2.

Format Penulisan :
if (kodisi){
Peryataan1}
else{
peryataan2}

Contoh :
If (SensorPin > 100){
digitalWrite (13, HIGH);}
else{
digitalWrite (13,LOW);}

-Bentuk Ketiga;
Pada bentuk ketiga ini if memiliki beberapa pengecualian, sehingga apabila dalam kondisi1 program akan menjalankan pernyataa1, jika tidak cek kondisi2 jika dalam kondisi2 jalankan pernyataan2 jika tidak cek kondisi 3 jika dalam kondisi 3 maka jalankan pernyataan3, jika tidak ada sama dengan kondisi1, kondisi2, kondisi3 maka jalankan pernyataan4.

Format Penulisan:
If(kondisi1){
Pernyataan1}
else if(kondisi2){
Pernyataan2}
else if(kondisi3){
Pernyataan3}
else {Pernyataan4}

Contoh :
If (SensorPin > 20){
digitalWrite (13, HIGH);}
else if(SensorPin > 40){
digitalWrite (12, HIGH);}
else if(SensorPin > 60){
digitalWrite (11 HIGH);}
else{ digitalWrite (11 HIGH);}

2.For
Digunakan bila anda ingin melakukan pengulangan kode didalam kurung kurawal beberapa kali, namun untuk melakukanya dibutuhkan sebuah counter, baik itu counter up ( i++ ), ataupun counter down ( i-- ), sebagai mana yang telah dilihat pada format penulisan i=0 menyatakan posisi awal,sedangkan# untuk jumlah pengulangan dan i++ adalah counter.

Format Penulisan :
for (int i = 0; i < #pengulangan; i++) {
pernyataan}
Contoh
for (int i =0; i <9; i++){    
pinMode(ledPins[i],OUTPUT);
}

3.Switch 
Digunakan untuk menguji suatu nilai pada variable dengan konstanta- konstanta tertentu, konstanta tersebut diawali dengan case dan diakhiri dengan break, jika variable sama dengan konstanta 1 maka jalankan pernyataan 1, jika variable sama dengan konstanta 2 maka jalankan pernyataan 2 dan begitu seterusnya  namun jika variable tidak sama dengan konstanta manapun maka jalankan default.

Format Penulisan :
switch (var) {
case 1:
//pernyataan 1
break;
case 2:
//pernyataan 2
break;
default: 
}

4.while 
Akan menjalankan intruksi yang ada di dalam kurung ()secara terus menerus dan tak terhingga, sampai ekspresi dalam kurung() menjadi salah(false) oleh sebab itu harus ada yang mengubah variable agar dapat keluar dari intruksi ini. 

Format Penulisan:
While(kondisi)
{peryataan(s)
}

5.Do-While
Bekerja dengan cara yang sama seperti while, dengan pengecualian bahwa kondisi ini di uji pada akhir program, sehingga program akan berjalan setidaknya sekali.

Format Penulisan:
do
{pernyataan
}
While(kondisi);


6.Break
Digunakan untuk  keluar dari do while dan while, untuk melewati kondisi normal. Hal ini juga digunakan untuk keluar dari pernyataan switch.

Contoh; 
for(x =0; x <255; x ++){
analogWrite(PWMpin, x);
sens =analogRead(sensor);  
if(sens > threshold){ 
x =0;
break;
}  delay(50);
}

7.Continue
Pernyataan melompati sisa literasi saat (do, for, atau if). Ini akan terus  memeriksa ekspresi kondisional dari loop, dan melanjutkan dengan literasi berikutnya.

Contoh;
for(x =0; x <255; x ++){
 if(x >40&& x <120){      // create jump in values
 continue; }
    analogWrite(PWMpin, x);
    delay(50);
}

8.Return
Return berguna untuk mengembalikan nilai dari fungsi ke  fungsi panggilan, jika diinginkan.
contoh:
int checkSensor(){       
if (analogRead(0) > 400) {
return 1;
else{return 0;}
}

9.go to
adalah intruksi lompat tak bersyarat, instruksi ini mengakibatkan eksekusi dilanjutkan ke alamat yang dituju oleh label .
Contoh;
for(byte r = 0; r < 255; r++){
for(byte g = 255; g > -1; g--){
for(byte b = 0; b < 255; b++){
if (analogRead(0) > 250){ goto Label1;}
Label2}}
}
Label1:

C. Arithmetic
1.Aritmatika 
     Arduino IDE selain mendukung untuk  kompailer juga mendukung operator Aritmatika seperti yang ada dibawah ini.

-Sama dengan ( = )
Membuat sesuatu menjadi sama dengan nilai yang lain (misalnya: x = 10 * 2, x sekarang sama dengan 20).

-Penjumlahan( + )
 Penjumlahan
-Pengurangan( - )
 Pengurangan
-Perkalian( * )
 Perkalian
-pembagian( /)
 Pembagian
-Sisa pembagian ( % )
Menghasilkan sisa dari hasil pembagian suatu angka dengan angka yang lain (misalnya: 12 % 10, ini akan menghasilkan angka 2).

2.Operasor Bitwisee
Operasi bitwise banyak digunakan dalam aplikasi mikrokontroler, misalnya untuk menguji kondisi bit pada Port 1 atau pergeseran bit dll. Ada enam buah operator bitwise diantaranya;

-Operator Geser kiri ( << )
Operator geser kiri akan mengeser ke kiri perbit sehingga bit 0 akan menggeser ke bit 1 dan bit 2 akan menggeser ke bit 3 dan seterunya, Untuk melakukan operasi bitwise geser kiri dibutuhkan dua buah operan, disebelah kiri tanda ( <<) adalah nilai geser dan disebelah kanan adalah jumlah bit yang akan digeser ke kiri.

-Operator Geser kanan ( >> )
Operator geser kanan akan mengeser ke kanan perbit” misalnya bit 8 akan menggeser ke bit7 dan bit 7 akan menggeser ke bit 6 dan seterunya, Untuk melakukan operasi bitwise geser kanan dibutuhkan dua buah operan, disebelah kiri tanda ( <<) adalah nilai geser dan disebelah kanan adalah jumlah bit yang akan digeser ke kiri.

-Operasi Bitwise AND (&)
Operator bitwise and (&) berfungsi untuk melakukan operasi logika AND bit/ bit misalnya  bit 0 akan diproyeksikan dengan bit 0 dan bit 1 diproyeksikan dengan 1 dan seterusnya.

Contoh:
int a = 10 ; // Dalam biner : 1010
int b = 12 ; // Dalam biner : 1100
int c = a & b; // Hasil dalam biner : 1000

-Operasi Bitwise OR(|)
Operator bitwise OR (|) berfungsi untuk melakukan operasi logika OR bit/ bit misalnya  bit 0 akan diproyeksikan dengan bit 0 dan bit 1 diproyeksikan dengan 1 dan seterusnya.

Contoh :
int a = 10 ; // Dalam biner : 1010
int b = 12 ; // Dalam biner : 1100
int c = a | b;   // Hasil dalam biner : 1110

-Operasi Bitwise XOR (^)
Operator bitwise XOR (^) berfungsi untuk melakukan operasi logika XOR bit/ bit misalnya  bit 0 akan diproyeksikan dengan bit 0 dan bit 1 diproyeksikan dengan 1 dan seterusnya.
Contoh :
int a = 12; // Dalam Biner : 1100
int b = 10;   // Dalam Biner : 1010
int c = a ^ b; //HarsilDalam Biner : 0110 

- Operasi Bitwise NOT (~)
Operatr bitwise NOT (~) berfungsi untuk melakukan operasi logika NOT pada bit, misalnya bit yang berlogika 0 berubah menjadi 1 dan logika 1 berubah menjadi0.

Contoh :
int a = 12; // Dalam Biner : 1100
int c = ~a //Hasil Dalam Biner : 0011

3.Operator Relasi/ Pembanding
Operator Relasi digunakan untuk membandingkan dua buah nilai atau kondisi. Operator relasi.

-Sama dengan ( == )
Sama dengan (misalnya: 14 == 10 adalah FALSE (salah) atau 10 == 10 adalah TRUE (benar))

-Tidak sama dengan ( != )
Tidak sama dengan (misalnya: 14 != 10 adalah TRUE (benar) atau 10 != 10 adalah FALSE (salah))

-Kecil dari ( < )
Lebih kecil dari (misalnya: 14< 10 adalah FALSE (salah) atau 14 < 14 adalah FALSE (salah) atau 10< 14 adalah TRUE (benar))

-Besar dari ( > )
Lebih besar dari (misalnya: 14> 10 adalah TRUE (benar) atau 14 > 14 adalah FALSE (salah) atau 12 > 14 adalah FALSE (salah))

-Kecil/ sama dengan ( <= )
Kecil/ sama dengan (misalnya: 14 <= 10 adalah FALSE (salah) atau 14 <= 14 adalah TRUE (benar) atau 10 <= 14 adalah TRUE (benar))

-Besar / sama dengan ( >= )
Lebih besar dari (misalnya: 14 >= 10 adalah TRUE (benar) atau 14 >= 14 adalah TRUE (benar)) atau 12 >= 14 adalah FALSE (salah))

PERHATIAN
dalam penulisan operator relasi tanda tidak boleh salah hal ini dikarenakan kesalahan sedikit dalam penulisan tanda dapat menyebankan program/ sketch tidak berkerja sesuai dengan yang diharapkan misalnya : kita ingin membandingkan sebuah Variable dengan operasi relasi sama dengan (==)  tanda yang harus dituliskan adalah == jika kita hanya menuliskan = sekali saja maka instruksi yang dijalankan bukanya membandingkan malah memberi nilai pada Variable, selain dari itu jika kita ingin menusilkan operasi relasi besar sama dengan ( >= ) kita tidak boleh menulikanya terbalik ( => ), meskipun maknanya sama namun Arduino IDE tidak mengenal hal itu sehingga mengakibatkan eror pada saat Verify ( Kompailer ).

Thursday 26 February 2015

ARDUINO :: Cara menggunakan Arduino GUI di Board lain, selain ARDUINO Board


Untuk kepentingan pembahasan dalam artikel ini anggap saja sistem Arduino terdiri dari dua sub sistem utama. Yang pertama adalah Arduino IDE, yaitu software yang beroperasi di komputer. Menurut situs http://www.arduino.cc perangkat lunak ini mereka sebut sebagai Arduino Software.
The open-source Arduino environment makes it easy to write code and upload it to the i/o board. It runs on Windows, Mac OS X, and Linux. The environment is written in Java and based on Processing, avr-gcc, and other open source software.


Tugas dari “Arduino Software” adalah menghasilkan sebuah file berformat hex yang akan di-download pada papan arduino atau papan sistem mikrokontroler lainnya. Ini mirip dengan Microsoft Visual Studio, Eclipse IDE, atau Netbeans. Lebih mirip lagi adalah IDE semacam Code::Blocks, CodeLite atau Anjuta yang mempermudah untuk menghasilkan file program. Bedanya kesemua IDE tersebut menghasilkan program dari kode bahasa C (dengan GNU GCC) sedangkan Arduino Software (Arduino IDE) menghasilkan file hex dari baris kode yang dinamakan sketch.
sketch is the name that Arduino uses for a program. It’s the unit of code that is uploaded to and run on an Arduino board.

Sub sistem yang kedua adalah hardware (perangkat keras) yaitu papan Arduino (Arduino Boards). Sampai saat tulisan ini dibuat yang paling umum dijual adalah varian baru yaitu Arduino Uno dan Arduino Mega 2560. Kesemua papan arduino itu memiliki perangkat lunak yang dinamakanbootloader.
When you upload a sketch, you’re using the Arduino bootloader, a small program that has been loaded on to the microcontroller on your board. It allows you to upload code without using any additional hardware. The bootloader is active for a few seconds when the board resets; then it starts whichever sketch was most recently uploaded to the microcontroller. The bootloader will blink the on-board (pin 13) LED when it starts (i.e. when the board resets).
Pada umumnya sketch yang dibuat di Arduino Software di-compile dengan perintah verify / Compile (Ctrl+R) lalu hasilnya di-download ke papan Arduino seperti Arduino Uno atau Arduino Mega 2560. Program hasil kompilasi itu lalau dijalankan oleh bootloader.

Tetapi ternyata hasil kompilasi dari Arduino Software dapat dipergunakan dan dijalankan tidak hanya pada papan arduino (Arduino Boards) atau turunannya yang kompatibel. Program hasil kompilasi itu dapat dijalankan di sistem mikrokontroller Atmel AVR yang sesuai bahkan tanpa menggunakan bootloader. Selain memperluas pilihan varian IC microcontroller AVR yang bisa dipergunakan hal ini juga berarti semakin besar program yang bisa kita muat di flash memori IC itu.
If you want to use the full program space (flash) of the chip or avoid the bootloader delay, you can burn your sketches using an external programmer. [sumber]

If you have an external programmer (e.g. an AVR-ISP, STK500, or parallel programmer), you can burn sketches to the Arduino board without using the bootloader. This allows you to use the full program space (flash) of the chip on the Arduino board. So with anATmega168, you’ll get 16 KB instead of 14 (on an ATmega8 you’ll get 8 KB instead of 7). It also avoids the bootloader delay when you power or reset your board. [sumber]

Kemudahan untuk mempergunakan berbagai macam varian microcontroller dalam tulisan ini mengikuti karya dari Mark Sproul. Beliau telah berbuat amal [ :-) ] dengan melakukan pengujian dan kemudian mempublikasikan secara luas uji cobanya untuk mempergunakan Arduino IDE untuk memprogram berbagai uC IC AVR. Daftar hasil uji cobanya dapat dilihat di http://www.avr-developers.com/cputable.html. Untuk dapat memprogram berbagai IC AVR tanpa papan arduino kita perlu melakukan download file-file konfigurasi yang telah dimodifikasi oleh Mark Sproul.
Sep 29, 2010 Updated to version 0020 core
Based on Version 0020 core files
Download this file (arduino-extras.zipuncompress it and add it in the hardware folder.    
On the Mac, this is /Applications/Arduino.app/Contents/Resources/Java/hardware 
This file contains ALL of the defintions that are included in the “arduino” folder as well. So your BOARDS menu will have duplicates.
This will give you access to just about EVERY ATmega that I can find that has been made into a comerically avaialable board.
NOTE: Not all cpus support bootloaders.

File arduino-extras.zip berisi tiga direktori: bootloaderscores dan firmwares dan dua file:boards.txt dan programmers.txt. Kesemuanya di-copy-kan ke direktori hardware arduino, misalnya:/home/sunu/arduino-0022/hardware/arduino/ atau misalnya direktori arduino utak-atik saya/home/sunu/arduino-0022hknix/hardware/arduino/. Kesemua direktori dan file yang baru itu akan menimpa yang lama, aman, kecuali anda telah melakukan modifikasi pada fileyang lama yang sayang kalau hilang :-).

Ada dua cara konfigurasi untuk melakukan pemrograman tanpa papan arduino. Yang pertama melakukan konfigurasi pada file preferences.txt untuk mengubah secara otomatis setting pada semua pengaturan papan. Cara yang kedua adalah dengan melakukan konfigurasi pada fileboards.txt, ini jika kita hendak melakukan setting yang berbeda untuk tiap papan.

Untuk file preferences dapat ditemukan di sistem sebagai berikut:
* /Users/<USERNAME>/Library/Arduino/preferences.txt (Mac)
* c:\Documents and Settings\<USERNAME>\Application Data\Arduino\preferences.txt (Windows)
* ~/.arduino/preferences.txt (Linux)
Perlu diperhatikan bahwa direktori ~/.arduino/ adalah direktori tersembunyi pada sistem GNU/Linux anda. Jika menggunakan file explorer Nautilus untuk menampilkan semua direktori tersembunyi dapat menggunakan Ctrl+h.

Modifikasi pada file preferences.txt dilakukan dengan melakukan pengubahan pada baris konfigurasi yang tercantum
upload.using=bootloader
menjadi salah satu nama programmer yang telah dicantumkan dalam fileprogrammer.txt.
Change: upload.using from bootloader to the identifier of one of the programmers in hardware/programmers.txt (e.g. avrispmkii).
Misalnya saya menggunakan dua programmer, yaitu USBasp dan USBtinyISP yang saya cantumkan di dalam file programmer.txt.
usbasp.name=USBaspusbasp.protocol=USBasp
usbtinyisp.name=USBtinyISP
usbtinyisp.protocol=usbtiny

Maka saya bisa mengubah baris yang tertulis sebagai upload.using=bootloader dalampreferences.txt menjadi upload.using=USBasp atau upload.using=USBtinyISP.

Saya sendiri lebih menyenangi cara yang kedua yaitu melakukan konfigurasi pada file boards.txt. Menurut saya cara ini lebih fleksibel, bahkan saya menjadi bisa untuk memiliki lebih dari satu konfigurasi untuk satu papan / boards / sistem. Misalnya saya memiliki dua konfigurasi untuk sistem/papan ATmega8, satu untuk internal clock 1 MHz dan satu lagi untuk  internal clock  8 Mhz.

File boards.txt pada sistem OS MS Windows dapat ditemukan di sub folder instalasinya misalnyaD:\arduino-0022\hardware\arduino\boards.txt. Pada sistem GNU/Linux dapat ditemukan di tempat instalasinya misalnya di /home/sunu/arduino-0022hknix/hardware/arduino/boards.txt.

Baris konfigurasi yang perlu diubah atau ditambahkan (jika belum ada) adalah baris yang tertulis sebagai: 
xxx.upload.using=nama_programmer
xxx.upload.protocol=nama_programmer

Misalnya:
    USBtinyISP-ATtiny2313.upload.using=usbtiny
    USBtinyISP-ATtiny2313.upload.protocol=usbtiny
atau
    arduino_attiny2313.upload.using=usbasp
    arduino_attiny2313.upload.protocol=usbasp

Berikut ini adalah konfigurasi yang saya buat untuk keperluan sistem saya, dapat dimodifikasi sesuai keperluan:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
##############################################################
 
USBtinyISP-ATtiny2313.name=USBtinyISP ATtiny2313 8 MHZ internal
 
USBtinyISP-ATtiny2313.upload.using=usbtiny
USBtinyISP-ATtiny2313.upload.protocol=usbtiny
USBtinyISP-ATtiny2313.upload.maximum_size=2048
USBtinyISP-ATtiny2313.upload.speed=19200
 
USBtinyISP-ATtiny2313.bootloader.low_fuses=0x64
USBtinyISP-ATtiny2313.bootloader.high_fuses=0xdf
USBtinyISP-ATtiny2313.bootloader.path=attiny45
USBtinyISP-ATtiny2313.bootloader.file=ATmegaBOOT.hex
USBtinyISP-ATtiny2313.bootloader.unlock_bits=0x3F
USBtinyISP-ATtiny2313.bootloader.lock_bits=0x0F
 
USBtinyISP-ATtiny2313.build.mcu=attiny2313
USBtinyISP-ATtiny2313.build.f_cpu=8000000L
USBtinyISP-ATtiny2313.build.core=arduino
 
##############################################################
 
arduino_attiny2313.name=USBasp ATtiny2313 8 MHZ internal
 
arduino_attiny2313.upload.using=usbasp
arduino_attiny2313.upload.protocol=usbasp
arduino_attiny2313.upload.maximum_size=2048
arduino_attiny2313.upload.speed=19200
 
arduino_attiny2313.bootloader.low_fuses=0x64
arduino_attiny2313.bootloader.high_fuses=0xdf
arduino_attiny2313.bootloader.path=attiny45
arduino_attiny2313.bootloader.file=ATmegaBOOT.hex
arduino_attiny2313.bootloader.unlock_bits=0x3F
arduino_attiny2313.bootloader.lock_bits=0x0F
 
arduino_attiny2313.build.mcu=attiny2313
arduino_attiny2313.build.f_cpu=8000000L
arduino_attiny2313.build.core=arduino
 
##############################################################
 
atmega8usbasp1mhz.name=ATmega8 tanpa bootloader 1 MHz (USBasp)
 
atmega8usbasp1mhz.upload.using=usbasp
atmega8usbasp1mhz.upload.protocol=usbasp
atmega8usbasp1mhz.upload.maximum_size=8192
atmega8usbasp1mhz.upload.speed=19200
 
atmega8usbasp1mhz.build.mcu=atmega8
atmega8usbasp1mhz.build.f_cpu=1000000L
atmega8usbasp1mhz.build.core=arduino
 
##############################################################
 
atmega8usbasp8mhz.name=ATmega8 tanpa bootloader 8 MHz (USBasp)
 
atmega8usbasp8mhz.upload.using=usbasp
atmega8usbasp8mhz.upload.protocol=usbasp
atmega8usbasp8mhz.upload.maximum_size=8192
atmega8usbasp8mhz.upload.speed=19200
 
#catatan -U lfuse:w:0xE4
#catatan -U hfuse:w:0xD9
 
atmega8usbasp8mhz.build.mcu=atmega8
atmega8usbasp8mhz.build.f_cpu=8000000L
atmega8usbasp8mhz.build.core=arduino
 
##############################################################
 
atmega8.name=Arduino NG or older w/ ATmega8
 
atmega8.upload.protocol=stk500
atmega8.upload.maximum_size=7168
atmega8.upload.speed=19200
 
atmega8.bootloader.low_fuses=0xdf
atmega8.bootloader.high_fuses=0xca
atmega8.bootloader.path=atmega8
atmega8.bootloader.file=ATmegaBOOT.hex
atmega8.bootloader.unlock_bits=0x3F
atmega8.bootloader.lock_bits=0x0F
 
atmega8.build.mcu=atmega8
atmega8.build.f_cpu=16000000L
atmega8.build.core=arduino
 
##############################################################
 
atmega16_1Mhz_dalam.name=Atmega16 1 MHz internal
 
atmega16_1Mhz_dalam.upload.using=usbasp
atmega16_1Mhz_dalam.upload.protocol=usbasp
atmega16_1Mhz_dalam.upload.maximum_size=16384
atmega16_1Mhz_dalam.upload.speed=57600
 
#catatan -U lfuse:w:0xE1
#catatan -U hfuse:w:0x99
 
atmega16_1Mhz_dalam.build.mcu=atmega16
atmega16_1Mhz_dalam.build.f_cpu=1000000L
atmega16_1Mhz_dalam.build.core=arduino
 
##############################################################
 
arduino_atmega16.name=Arduino-Atmega16
 
arduino_atmega16.upload.protocol=stk500v2
arduino_atmega16.upload.maximum_size=14336
arduino_atmega16.upload.speed=57600
 
arduino_atmega16.bootloader.low_fuses=0xE4
arduino_atmega16.bootloader.high_fuses=0x98
arduino_atmega16.bootloader.extended_fuses=0xFF
arduino_atmega16.bootloader.path=atmega
arduino_atmega16.bootloader.file=ATmegaBOOT_168_atmega16.hex
arduino_atmega16.bootloader.unlock_bits=0x3F
arduino_atmega16.bootloader.lock_bits=0x0F
 
arduino_atmega16.build.mcu=atmega16
arduino_atmega16.build.f_cpu=8000000L
arduino_atmega16.build.core=arduino
 
##############################################################
 
atmega32_no_boot_1MHz.name=ATmega32 1 MHz internal
 
atmega32_no_boot_1MHz.upload.using=usbasp
atmega32_no_boot_1MHz.upload.protocol=usbasp
atmega32_no_boot_1MHz.upload.maximum_size=32768
atmega32_no_boot_1MHz.upload.speed=57600
 
#catatan -U lfuse:w:0xE1
#catatan -U hfuse:w:0x99
 
atmega32_no_boot_1MHz.build.mcu=atmega32
atmega32_no_boot_1MHz.build.f_cpu=1000000L
atmega32_no_boot_1MHz.build.core=arduino
 
##############################################################
 
atmega32_no_boot_8MHz.name=ATmega32 8 MHz internal
 
atmega32_no_boot_8MHz.upload.using=usbasp
atmega32_no_boot_8MHz.upload.protocol=usbasp
atmega32_no_boot_8MHz.upload.maximum_size=28672
atmega32_no_boot_8MHz.upload.speed=57600
 
#catatan -U lfuse:w:0xE4
#catatan -U hfuse:w:0x99
 
atmega32_no_boot_8MHz.build.mcu=atmega32
atmega32_no_boot_8MHz.build.f_cpu=8000000L
atmega32_no_boot_8MHz.build.core=arduino
 
##############################################################
arduino_penguino_avr.name=Arduino-Penguino AVR
 
arduino_penguino_avr.upload.protocol=stk500v2
arduino_penguino_avr.upload.maximum_size=28672
arduino_penguino_avr.upload.speed=57600
 
arduino_penguino_avr.bootloader.low_fuses=0xFF
arduino_penguino_avr.bootloader.high_fuses=0xDA
arduino_penguino_avr.bootloader.extended_fuses=0x05
arduino_penguino_avr.bootloader.path=atmega
arduino_penguino_avr.bootloader.file=stk500boot_v2_penguino.hex
arduino_penguino_avr.bootloader.unlock_bits=0x3F
arduino_penguino_avr.bootloader.lock_bits=0x0F
 
arduino_penguino_avr.build.mcu=atmega32
arduino_penguino_avr.build.f_cpu=16000000L
arduino_penguino_avr.build.core=arduino
 
##############################################################
 
uno.name=Arduino Uno
uno.upload.protocol=stk500
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
 
##############################################################
 
mega2560.name=Arduino Mega 2560
 
mega2560.upload.protocol=stk500v2
mega2560.upload.maximum_size=258048
mega2560.upload.speed=115200
 
mega2560.bootloader.low_fuses=0xFF
mega2560.bootloader.high_fuses=0xD8
mega2560.bootloader.extended_fuses=0xFD
mega2560.bootloader.path=stk500v2
mega2560.bootloader.file=stk500boot_v2_mega2560.hex
mega2560.bootloader.unlock_bits=0x3F
mega2560.bootloader.lock_bits=0x0F
 
mega2560.build.mcu=atmega2560
mega2560.build.f_cpu=16000000L
mega2560.build.core=arduino
 
##############################################################
arduino_atmega8515.name=Arduino-ATmega8515
 
arduino_atmega8515.upload.using=usbtinyisp
arduino_atmega8515.upload.protocol=stk500
arduino_atmega8515.upload.maximum_size=8192
arduino_atmega8515.upload.speed=19200
 
arduino_atmega8515.bootloader.low_fuses=0xdf
arduino_atmega8515.bootloader.high_fuses=0xca
arduino_atmega8515.bootloader.path=atmega
arduino_atmega8515.bootloader.file=ATmegaBOOT.hex
arduino_atmega8515.bootloader.unlock_bits=0x3F
arduino_atmega8515.bootloader.lock_bits=0x0F
 
arduino_atmega8515.build.mcu=atmega8515
arduino_atmega8515.build.f_cpu=16000000L
arduino_atmega8515.build.core=arduino
 
##############################################################
arduino_atmega8535.name=Arduino-Test-Atmega8535
 
arduino_atmega8535.upload.protocol=stk500v2
arduino_atmega8535.upload.maximum_size=7168
arduino_atmega8535.upload.speed=38400
 
arduino_atmega8535.bootloader.low_fuses=0xEC
arduino_atmega8535.bootloader.high_fuses=0x18
arduino_atmega8535.bootloader.extended_fuses=0xFD
arduino_atmega8535.bootloader.path=atmega
arduino_atmega8535.bootloader.file=stk500boot_v2_notdefined.hex
arduino_atmega8535.bootloader.unlock_bits=0x3F
arduino_atmega8535.bootloader.lock_bits=0x0F
 
arduino_atmega8535.build.mcu=atmega8535
arduino_atmega8535.build.f_cpu=16000000L
arduino_atmega8535.build.core=arduino
 
##############################################################
 
atmega328.name=Arduino Duemilanove or Nano w/ ATmega328
 
atmega328.upload.protocol=stk500
atmega328.upload.maximum_size=30720
atmega328.upload.speed=57600
 
atmega328.bootloader.low_fuses=0xFF
atmega328.bootloader.high_fuses=0xDA
atmega328.bootloader.extended_fuses=0x05
atmega328.bootloader.path=atmega
atmega328.bootloader.file=ATmegaBOOT_168_atmega328.hex
atmega328.bootloader.unlock_bits=0x3F
atmega328.bootloader.lock_bits=0x0F
 
atmega328.build.mcu=atmega328p
atmega328.build.f_cpu=16000000L
atmega328.build.core=arduino
 
##############################################################
 
diecimila.name=Arduino Diecimila, Duemilanove, or Nano w/ ATmega168
 
diecimila.upload.protocol=stk500
diecimila.upload.maximum_size=14336
diecimila.upload.speed=19200
 
diecimila.bootloader.low_fuses=0xff
diecimila.bootloader.high_fuses=0xdd
diecimila.bootloader.extended_fuses=0x00
diecimila.bootloader.path=atmega
diecimila.bootloader.file=ATmegaBOOT_168_diecimila.hex
diecimila.bootloader.unlock_bits=0x3F
diecimila.bootloader.lock_bits=0x0F
 
diecimila.build.mcu=atmega168
diecimila.build.f_cpu=16000000L
diecimila.build.core=arduino
 
##############################################################

Saya melakukan modifikasi pada file boards.txt agar tampilan daftar pilihannya tidak terlalu panjang dan berisi penuh konfigurasi yang hampir tidak pernah saya pergunakan. Jika suatu hari nanti perlu ditambah atau dimodifikasi ulang toh caranya sangat gampang. 

File boards.txt maupun file programmers.txt yang berada di folder/direktori yang sama telah sayaupload di siniFile programmers.txt perlu dimodifikasi jika anda ingin membakar/download bootloader dengan papan selain turunan papan arduino. Misalnya jika ingin menggunakan programmer USBasp atau USBtinyISP.







Demikianlah, selamat mencoba. Silahkan melihat ke semua link (tautan) di tulisan di atas dan daftar referensi berikut:
Sumber: pikirsa.wordpress.com