You are on page 1of 30

TUTORIAL

PEMROGRAMAN
PERSIAPAN LKS SMK TINGKAT NASIONAL

C language using
Atmel Studio 7

Farid Rinanto, SST


Expert World Skills Competition (WSC) - skill Electronics

Calon Instruktur Elektronika Industri


Balai Besar Pengembangan Latihan Kerja (BBPLK) Bekasi/ Cevest
Kementerian Ketenagakerjaan RI

TERIMAKASIH BEASISWA UNGGULAN BPKLN - KEMENDIKBUD

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 1


A. MEMBUAT NEW PROJECT
1. Open Atmel Studio 7

Fig 1. Atmel studio.exe


Kemudian akan muncul tampilan seperti dibawah ini

Fig 2. Tampilan Menu Awal


2. Untuk membuat file baru, Pilih -> File -> New -> Project

Fig 3. Tampilan New Project

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 2


Kemudian akan muncul tampilan baru

Fig 4. Tampilan New Project C/C++

3. Pilih -> GCC C Executable Project

Fig 5. Pilih GCC C Executable Project

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 3


Kemudian rubah nama file dengan mengganti nama di kolom nama, lihat gambar dibawah ini
(nama tidak mengandung spasi)

Fig 6. Tampilan Penuisan nama project

Jika ingin merubah lokasi penyimpanan, klik tombol Browse dan pilih lokasi penyimpanan sesuai
keinginan.

Fig 7. Tampilan pilihan folder penyimpanan

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 4


Klik OK Kemudian akan muncul tampilan sebagai berikut

Fig 8. Tampilan Device Selection

4. Pilih Device / IC Controller sesuai dengan tipe yang diinginkan, dalam tutorial ini menggunakan
ATmega 16 sebagai contoh. Klik OK jika sudah selesai.

Fig 9. Tampilan Device Selection

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 5


Kemudian akan muncul tampilan sheet program seperti gambar dibawah ini

Fig 10. Tampilan form New Project C/C++


Diatas adalah sheet untuk menuliskan program sesuai dengan keinginan kita.

5. Compile / build program untuk menghasilkan file .hex adalah dengan pilih menu Build
kemudian pilih sub menu Build solution atau tekan F7. Lihat gambar dibawah ini

Fig 11. Tampilan New Project C/C++


Pastikan build succeeded or up tu date / no error. Bisa dilihat pada tulisan output bawah

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 6


B. HAL YANG HARUS DIPERHATIKAN SEBELUM MEMBUAT PROGRAM
1. Harus mengetahui kerangka / system penulisan program.
Pemanggilan header
- #include <.h>
Ini memerntahkan compiler untuk membaca program / file yang telah di include-
kan kedalam program kita.
Penulisan variable
Variable adalah tempat untuk penyimpanan dan menakses data yang mewakili
memari dalam microcontroller. Variable harus dideklarasikan dengan tipe data
beserta nama variable.
Berikut adalah table tipe data
Tipe Data Byte Bit Minimum Maximum
Char 1 8 -128 127
Signed char 1 8 -128 127
Unsigned char 1 8 0 255
int 2 16 -32768 -32767
Signed int 2 16 -32768 -32767
Unsigned int 2 16 0 65535
Long 4 32 -2147483648 2147483648
signed long 4 32 -2147483648 2147483648
Unsigned long 4 32 0 4294967295
Float 4 32 1.28E-38 3.4E38
Contoh penulisan variable
Char a; nama variable adalah a dan tipe datanya char atau mempunyai range
penyimpanan data -128 sampai 127

Fungsi utama (main)


- Inisialisasi
Ini digunakan untuk mengaktifkan sebuah fungsi dalam suatu register pada
microcontroller. Contoh untuk mengaktifkan PORTx menjadi input atau output.
DDRx = merupakan fiungsi register yang digunakan untuk menjadikan PORTx
menjadi input atau output.
Dengan memberikan nilai 1 = menjadikan bit menjadi fungsi output.
Dengan memberikan nilai 0 = menjadikan bit menjadi fungsi input.

Contoh penulisan
DDRA=0b11111111; menjadikan PORTA dari bit 0 hingga bit 7 menjadi fungsi
output
DDRA=0b00000000; menjadikan PORTA dari bit 0 hingga bit 7 menjadi fungsi
input
DDRA=0b11110000; menjadikan PORTA dari bit 0 hingga bit 3 menjadi fungsi
input, menjadikan PORTA dari bit 4 hingga bit 7 menjadi fungsi Output,

Keterangan tambahan, jika PORTx digunakan sebagai input akan tetapi fungsi
register yang digunakan adalah sebagai output maka microcontroller tidak akan
merespon masukan input yang diterima di PORTx.

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 7


Dan sebaliknya Keterangan tambahan, jika PORTx digunakan sebagai output
akan tetapi fungsi register yang digunakan adalah sebagai input maka
microcontroller tidak akan merespon data output yang dikirim di PORTx.
Pembuatan sub program / fungsi
- Fungsi yang telah di-prototype-kan ditulis diluar main, ini untuk memudahkan
programmer dalam penulisan program yang besar atau mempersingkat program
jika selalu ditulis terus menerus.
Contoh 1:
void tampilan (void){ //sub program tampilan
PORTA=0B11110000; //isi sub program
PORTB=0B00001111; //isi sub program
PORTC=0B10101010; //isi sub program
PORTD=0B01010101; //isi sub program
}

Contoh 2:
void tunda (void){ //sub program tunda
for (a=0; a<1000; a++){ // pengulangan 1000x
tampil(); // pemanggilan tampil
}
}

2. mengetauhi syntax atau tata cara penulisan bahasa C avr gcc.


Algoritma pemograman
Pernyataan berkondisi dan Pengulangan
if else: digunakan untuk menyeleksi satu atau beberapa kondisi
if ( [persyaratan] ) {
[statement1];
[statement2];
...
}
else
{
[statement3];
[statement4];
...
}

for: digunakan untuk pengulangan dengan jumlah yang sudah diketahui berapa kali
diulang.

for ( [nilai awal] ; [syarat] ; [operasi nilai] )


{
[statement1];
[statement2];
...
}
Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 8
while: digunakan untuk pengulangan (looping) jika dan sealama memenuhi suatu
kondisi masih dipenuhi (pengulangan selama benar)
while ( [persyaratan] )
{
[statement1];
[statement2];
...
}

do while: digunakan untuk pengulangan jika dan selama memenuhi syarat tertentu,
namun min 1 kali
do
{
[statement1];
[statement2];
...
}
while ([persyaratan])

switch case: digunakan untuk seleksi dengan banyak kondisi


switch ( [nama variabel] )
{
case [nilai1]: [statement1];
break;
case [nilai2]: [statement2];
break;
...
}

Operasi Logika dan Bilangan Biner


Operator Logika atau dalam perbandingan
AND: &&
NOT: !
OR : ||
Biner dalam aritmatika
AND: &
OR : |
XOR : ^
Shift right: >>
Shift left : <<

Lebih besar sama dengan: >=


Lebih kecil/besar: <,>
Lebih kecil sama dengan : <=

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 9


C. CONTOH PROGRAM TUTORIAL
1. Menyalakan LED 00001111

LED_R
LED_L
U2 a
RV2 RV1 1 BUZ1 b
BZ c
MOTOR_L MOTOR_R d
93.0 R1 R2 e
50%

56%
ADC2 ADC1 330
BUZZER 330 f
g
2
VOUT ADC0
1k 1k D10 D9
3 LM35

S_S70 R4 R5 R6 R7
R24 S_S71 220 220 220 220
10k S_S72
U1 S_S73
9 22

LED7

LED6

LED5

LED4

LED3

LED2

LED1

LED0
RESET PC0/SCL a
23
PC1/SDA b
13 24
XTAL1 PC2/TCK c
12 25
XTAL2 PC3/TMS d
26
PC4/TDO e
40 27
ADC0
39
PA0/ADC0 PC5/TDI
28
f R20 R21 R22 R23
ADC1
38
PA1/ADC1 PC6/TOSC1
29
g 10k 10k 10k 10k R8 R9 R10 R11 R12 R13 R14 R15
ADC2 PA2/ADC2 PC7/TOSC2 h 330 330 330 330 330 330 330 330
37
LED_R PA3/ADC3
36 14
LED_L PA4/ADC4 PD0/RXD LED0 sw3 sw2 sw1 sw0
35 15
BZ PA5/ADC5 PD1/TXD LED1
MOTOR_R
34
PA6/ADC6 PD2/INT0
16
LED2
D8 D7 D6 D5 D4 D3 D2 D1
33 17
MOTOR_L PA7/ADC7 PD3/INT1 LED3
18
PD4/OC1B LED4
1 19
sw0 PB0/T0/XCK PD5/OC1A LED5
2 20
sw1 PB1/T1 PD6/ICP1 LED6
3 21
sw2 PB2/AIN0/INT2 PD7/OC2 LED7
sw3
4
PB3/AIN1/OC0 SW3 SW2 SW1 SW0
5
S_S70 PB4/SS
6
S_S71 PB5/MOSI
7 32
S_S72 PB6/MISO AREF
8 30
S_S73 PB7/SCK AVCC
ATMEGA16

////COPY DARI SINI//////////////


#include <avr/io.h>

int main(void)
{
DDRD=0b11111111; //lihat Hal. 7
while (1)
{
PORTD=0b00001111;
}
}
////COPY SAMPAI DISINI///////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 10


2. Menyalakan LED 01010101

LED_R
LED_L
U2 a
RV2 RV1 1 BUZ1 b
BZ c
MOTOR_L MOTOR_R d
93.0 R1 R2 e
50%

56%
ADC2 ADC1 330
BUZZER 330 f
g
2
VOUT ADC0
1k 1k D10 D9
3 LM35

S_S70 R4 R5 R6 R7
R24 S_S71 220 220 220 220
10k S_S72
U1 S_S73
9 22

LED7

LED6

LED5

LED4

LED3

LED2

LED1

LED0
RESET PC0/SCL a
23
PC1/SDA b
13 24
XTAL1 PC2/TCK c
12 25
XTAL2 PC3/TMS d
26
PC4/TDO e
40 27
ADC0
39
PA0/ADC0 PC5/TDI
28
f R20 R21 R22 R23
ADC1
38
PA1/ADC1 PC6/TOSC1
29
g 10k 10k 10k 10k R8 R9 R10 R11 R12 R13 R14 R15
ADC2 PA2/ADC2 PC7/TOSC2 h 330 330 330 330 330 330 330 330
37
LED_R PA3/ADC3
36 14
LED_L PA4/ADC4 PD0/RXD LED0 sw3 sw2 sw1 sw0
35 15
BZ PA5/ADC5 PD1/TXD LED1
MOTOR_R
34
PA6/ADC6 PD2/INT0
16
LED2
D8 D7 D6 D5 D4 D3 D2 D1
33 17
MOTOR_L PA7/ADC7 PD3/INT1 LED3
18
PD4/OC1B LED4
1 19
sw0 PB0/T0/XCK PD5/OC1A LED5
2 20
sw1 PB1/T1 PD6/ICP1 LED6
3 21
sw2 PB2/AIN0/INT2 PD7/OC2 LED7
sw3
4
PB3/AIN1/OC0 SW3 SW2 SW1 SW0
5
S_S70 PB4/SS
6
S_S71 PB5/MOSI
7 32
S_S72 PB6/MISO AREF
8 30
S_S73 PB7/SCK AVCC
ATMEGA16

////COPY DARI SINI//////////////


#include <avr/io.h>

int main(void)
{
DDRD=0b11111111; //Lihat Hal.7
while (1)
{
PORTD=0b01010101;
}
}
////COPY SAMPAI DISINI///////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 11


3. Menyalakan LED 01010111 secara HEXA

LED_R
LED_L
U2 a
RV2 RV1 1 BUZ1 b
BZ c
MOTOR_L MOTOR_R d
93.0 R1 R2 e
50%

56%
ADC2 ADC1 330
BUZZER 330 f
g
2
VOUT ADC0
1k 1k D10 D9
3 LM35

S_S70 R4 R5 R6 R7
R24 S_S71 220 220 220 220
10k S_S72
U1 S_S73
9 22

LED7

LED6

LED5

LED4

LED3

LED2

LED1

LED0
RESET PC0/SCL a
23
PC1/SDA b
13 24
XTAL1 PC2/TCK c
12 25
XTAL2 PC3/TMS d
26
PC4/TDO e
40 27
ADC0
39
PA0/ADC0 PC5/TDI
28
f R20 R21 R22 R23
ADC1
38
PA1/ADC1 PC6/TOSC1
29
g 10k 10k 10k 10k R8 R9 R10 R11 R12 R13 R14 R15
ADC2 PA2/ADC2 PC7/TOSC2 h 330 330 330 330 330 330 330 330
37
LED_R PA3/ADC3
36 14
LED_L PA4/ADC4 PD0/RXD LED0 sw3 sw2 sw1 sw0
35 15
BZ PA5/ADC5 PD1/TXD LED1
MOTOR_R
34
PA6/ADC6 PD2/INT0
16
LED2
D8 D7 D6 D5 D4 D3 D2 D1
33 17
MOTOR_L PA7/ADC7 PD3/INT1 LED3
18
PD4/OC1B LED4
1 19
sw0 PB0/T0/XCK PD5/OC1A LED5
2 20
sw1 PB1/T1 PD6/ICP1 LED6
3 21
sw2 PB2/AIN0/INT2 PD7/OC2 LED7
sw3
4
PB3/AIN1/OC0 SW3 SW2 SW1 SW0
5
S_S70 PB4/SS
6
S_S71 PB5/MOSI
7 32
S_S72 PB6/MISO AREF
8 30
S_S73 PB7/SCK AVCC
ATMEGA16

////COPY DARI SINI//////////////


#include <avr/io.h>

int main(void)
{
DDRD=0xff; //lihat Hal.7
while (1)
{
PORTD=0x55;
}
}
////COPY SAMPAI DISINI//////////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 12


4. Menyalakan LED PORTD.0 Kedip 1 detik

////COPY DARI SINI//////////////


#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

int main(void)
{
DDRD=0B11111111; //baca Hal.7
PORTD=0B00000000; //LED mati pada saat start

while (1)
{
PORTD=0x01;
_delay_ms(1000); //delay 1000ms atau 1 detik
PORTD=0x00;
_delay_ms(1000);
}
}
////COPY SAMPAI DISINI//////////////

5. Menyalakan LED PORTD Kedip 1 detik

////COPY DARI SINI//////////////


#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

int main(void)
{
DDRD=0B11111111;
PORTD=0B00000000;

while (1)
{
PORTD=0xff;
_delay_ms(1000); //delay 1000ms atau 1 detik
PORTD=0x00;
_delay_ms(1000);
}
}
////COPY SAMPAI DISINI//////////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 13


6. Menyalakan LED Berjalan

////COPY DARI SINI//////////////


#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

int main(void)
{
DDRD=0B11111111;
PORTD=0B00000000;

while (1)
{
PORTD=0b00000000;
_delay_ms(500); //delay 1000ms atau 1 detik
PORTD=0b00000001;
_delay_ms(500);
PORTD=0b00000010;
_delay_ms(500);
PORTD=0b00000100;
_delay_ms(500);
PORTD=0b00001000;
_delay_ms(500);
PORTD=0b00010000;
_delay_ms(500);
PORTD=0b00100000;
_delay_ms(500);
PORTD=0b01000000;
_delay_ms(500);
PORTD=0b10000000;
_delay_ms(500);
}
}
////COPY SAMPAI DISINI//////////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 14


7. Menyalakan Seven Segment angka 1 tanpa Scanning diseven segmen disatuan

LED_R
LED_L
U2 a
RV2 RV1 1 BUZ1 b
BZ c
MOTOR_L MOTOR_R d
93.0 R1 R2 e
50%

56%
ADC2 ADC1 330
BUZZER 330 f
g
2
VOUT ADC0
1k 1k D10 D9
3 LM35

S_S70 R4 R5 R6 R7
R24 S_S71 220 220 220 220
10k S_S72
U1 S_S73
9 22

LED7

LED6

LED5

LED4

LED3

LED2

LED1

LED0
RESET PC0/SCL a
23
PC1/SDA b
13 24
XTAL1 PC2/TCK c
12 25
XTAL2 PC3/TMS d
26
PC4/TDO e
40 27
ADC0
39
PA0/ADC0 PC5/TDI
28
f R20 R21 R22 R23
ADC1
38
PA1/ADC1 PC6/TOSC1
29
g 10k 10k 10k 10k R8 R9 R10 R11 R12 R13 R14 R15
ADC2 PA2/ADC2 PC7/TOSC2 h 330 330 330 330 330 330 330 330
37
LED_R PA3/ADC3
36 14
LED_L PA4/ADC4 PD0/RXD LED0 sw3 sw2 sw1 sw0
35 15
BZ PA5/ADC5 PD1/TXD LED1
MOTOR_R
34
PA6/ADC6 PD2/INT0
16
LED2
D8 D7 D6 D5 D4 D3 D2 D1
33 17
MOTOR_L PA7/ADC7 PD3/INT1 LED3
18
PD4/OC1B LED4
1 19
sw0 PB0/T0/XCK PD5/OC1A LED5
2 20
sw1 PB1/T1 PD6/ICP1 LED6
3 21
sw2 PB2/AIN0/INT2 PD7/OC2 LED7
sw3
4
PB3/AIN1/OC0 SW3 SW2 SW1 SW0
5
S_S70 PB4/SS
6
S_S71 PB5/MOSI
7 32
S_S72 PB6/MISO AREF
8 30
S_S73 PB7/SCK AVCC
ATMEGA16

////COPY DARI SINI//////////////


#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

int main(void)
{
DDRC=0B11111111;
DDRB=0B11110000;
while (1)
{
PORTC=0b00000110; //DATA SEVENSEGMEN angka 1
PORTB=0B01111111; //SELECTOR/SCAN SEVEN SEGMENT digit ke 1
}
}
////COPY SAMPAI DISINI//////////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 15


8. Menyalakan Seven Segment angka 1 tanpa Scanning diseven segmen dipuluhan

LED_R
LED_L
U2 a
RV2 RV1 1 BUZ1 b
BZ c
MOTOR_L MOTOR_R d
93.0 R1 R2 e
50%

56%
ADC2 ADC1 330
BUZZER 330 f
g
2
VOUT ADC0
1k 1k D10 D9
3 LM35

S_S70 R4 R5 R6 R7
R24 S_S71 220 220 220 220
10k S_S72
U1 S_S73
9 22

LED7

LED6

LED5

LED4

LED3

LED2

LED1

LED0
RESET PC0/SCL a
23
PC1/SDA b
13 24
XTAL1 PC2/TCK c
12 25
XTAL2 PC3/TMS d
26
PC4/TDO e
40 27
ADC0
39
PA0/ADC0 PC5/TDI
28
f R20 R21 R22 R23
ADC1
38
PA1/ADC1 PC6/TOSC1
29
g 10k 10k 10k 10k R8 R9 R10 R11 R12 R13 R14 R15
ADC2 PA2/ADC2 PC7/TOSC2 h 330 330 330 330 330 330 330 330
37
LED_R PA3/ADC3
36 14
LED_L PA4/ADC4 PD0/RXD LED0 sw3 sw2 sw1 sw0
35 15
BZ PA5/ADC5 PD1/TXD LED1
MOTOR_R
34
PA6/ADC6 PD2/INT0
16
LED2
D8 D7 D6 D5 D4 D3 D2 D1
33 17
MOTOR_L PA7/ADC7 PD3/INT1 LED3
18
PD4/OC1B LED4
1 19
sw0 PB0/T0/XCK PD5/OC1A LED5
2 20
sw1 PB1/T1 PD6/ICP1 LED6
3 21
sw2 PB2/AIN0/INT2 PD7/OC2 LED7
sw3
4
PB3/AIN1/OC0 SW3 SW2 SW1 SW0
5
S_S70 PB4/SS
6
S_S71 PB5/MOSI
7 32
S_S72 PB6/MISO AREF
8 30
S_S73 PB7/SCK AVCC
ATMEGA16

////COPY DARI SINI//////////////


#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

int main(void)
{
DDRC=0B11111111;
DDRB=0B11110000;
while (1)
{
PORTC=0b00000110; //DATA SEVEN SEGMENT angka 1
PORTB=0B10111111; //SELECTOR/SCAN SEVEN SEGMENT digit ke 2
}
}
////COPY SAMPAI DISINI//////////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 16


9. Menyalakan Seven Segment Up Counter

////COPY DARI SINI//////////////


#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

int main(void)
{
DDRC=0B11111111;
DDRB=0B11110000;
while (1)
{
PORTB=0B10111111; //SELECTOR/SCAN SEVEN SEGMENT digit ke 2

PORTC=0b00111111; //DATA SEVENSEGMENT 0


_delay_ms(500);
PORTC=0b00000110; //DATA SEVENSEGMENT 1
_delay_ms(500);
PORTC=0b01011011; //DATA SEVENSEGMENT 2
_delay_ms(500);
PORTC=0b01001111; //DATA SEVENSEGMENT 3
_delay_ms(500);
PORTC=0b01100110; //DATA SEVENSEGMENT 4
_delay_ms(500);
PORTC=0b01101101; //DATA SEVENSEGMENT 5
_delay_ms(500);
PORTC=0b01111101; //DATA SEVENSEGMENT 6
_delay_ms(500);
PORTC=0b00000111; //DATA SEVENSEGMENT 7
_delay_ms(500);
PORTC=0b01111111; //DATA SEVENSEGMENT 8
_delay_ms(500);
PORTC=0b01101111; //DATA SEVENSEGMENT 9
_delay_ms(500);
}
}
////COPY SAMPAI DISINI//////////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 17


10. Menyalakan Seven Segment angka 1234 (Basic scanning)

LED_R
LED_L
U2 a
RV2 RV1 1 BUZ1 b
BZ c
MOTOR_L MOTOR_R d
93.0 R1 R2 e
50%

56%
ADC2 ADC1 330
BUZZER 330 f
g
2
VOUT ADC0
1k 1k D10 D9
3 LM35

S_S70 R4 R5 R6 R7
R24 S_S71 220 220 220 220
10k S_S72
U1 S_S73
9 22

LED7

LED6

LED5

LED4

LED3

LED2

LED1

LED0
RESET PC0/SCL a
23
PC1/SDA b
13 24
XTAL1 PC2/TCK c
12 25
XTAL2 PC3/TMS d
26
PC4/TDO e
40 27
ADC0
39
PA0/ADC0 PC5/TDI
28
f R20 R21 R22 R23
ADC1
38
PA1/ADC1 PC6/TOSC1
29
g 10k 10k 10k 10k R8 R9 R10 R11 R12 R13 R14 R15
ADC2 PA2/ADC2 PC7/TOSC2 h 330 330 330 330 330 330 330 330
37
LED_R PA3/ADC3
36 14
LED_L PA4/ADC4 PD0/RXD LED0 sw3 sw2 sw1 sw0
35 15
BZ PA5/ADC5 PD1/TXD LED1
MOTOR_R
34
PA6/ADC6 PD2/INT0
16
LED2
D8 D7 D6 D5 D4 D3 D2 D1
33 17
MOTOR_L PA7/ADC7 PD3/INT1 LED3
18
PD4/OC1B LED4
1 19
sw0 PB0/T0/XCK PD5/OC1A LED5
2 20
sw1 PB1/T1 PD6/ICP1 LED6
3 21
sw2 PB2/AIN0/INT2 PD7/OC2 LED7
sw3
4
PB3/AIN1/OC0 SW3 SW2 SW1 SW0
5
S_S70 PB4/SS
6
S_S71 PB5/MOSI
7 32
S_S72 PB6/MISO AREF
8 30
S_S73 PB7/SCK AVCC
ATMEGA16

////COPY DARI SINI//////////////


#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

int main(void)
{
DDRC=0B11111111;
DDRB=0B11110000;
while (1)
{
PORTC=0b00000110; //DATA SEVEN SEGMENT 1
PORTB=0B11101111; //SELECTOR/SCAN DIGIT 4
_delay_ms(5);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=0b01011011; //DATA SEVEN SEGMENT 2


PORTB=0B11011111; //SELECTOR/SCAN DIGIT 3
_delay_ms(5);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=0b01001111; //DATA SEVEN SEGMENT 3


PORTB=0B10111111; //SELECTOR/SCAN DIGIT 2
_delay_ms(5);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=0b01100110; //DATA SEVEN SEGMENT 4


PORTB=0B01111111; //SELECTOR/SCAN DIGIT 1
_delay_ms(5);
PORTB=0B11111111; //SELECTOR/SCAN OFF
}
}
////COPY SAMPAI DISINI//////////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 18


11. Menyalakan Seven Segment angka 0168

LED_R
LED_L
U2 a
RV2 RV1 1 BUZ1 b
BZ c
MOTOR_L MOTOR_R d
93.0 R1 R2 e
50%

56%
ADC2 ADC1 330
BUZZER 330 f
g
2
VOUT ADC0
1k 1k D10 D9
3 LM35

S_S70 R4 R5 R6 R7
R24 S_S71 220 220 220 220
10k S_S72
U1 S_S73
9 22

LED7

LED6

LED5

LED4

LED3

LED2

LED1

LED0
RESET PC0/SCL a
23
PC1/SDA b
13 24
XTAL1 PC2/TCK c
12 25
XTAL2 PC3/TMS d
26
PC4/TDO e
40 27
ADC0
39
PA0/ADC0 PC5/TDI
28
f R20 R21 R22 R23
ADC1
38
PA1/ADC1 PC6/TOSC1
29
g 10k 10k 10k 10k R8 R9 R10 R11 R12 R13 R14 R15
ADC2 PA2/ADC2 PC7/TOSC2 h 330 330 330 330 330 330 330 330
37
LED_R PA3/ADC3
36 14
LED_L PA4/ADC4 PD0/RXD LED0 sw3 sw2 sw1 sw0
35 15
BZ PA5/ADC5 PD1/TXD LED1
MOTOR_R
34
PA6/ADC6 PD2/INT0
16
LED2
D8 D7 D6 D5 D4 D3 D2 D1
33 17
MOTOR_L PA7/ADC7 PD3/INT1 LED3
18
PD4/OC1B LED4
1 19
sw0 PB0/T0/XCK PD5/OC1A LED5
2 20
sw1 PB1/T1 PD6/ICP1 LED6
3 21
sw2 PB2/AIN0/INT2 PD7/OC2 LED7
sw3
4
PB3/AIN1/OC0 SW3 SW2 SW1 SW0
5
S_S70 PB4/SS
6
S_S71 PB5/MOSI
7 32
S_S72 PB6/MISO AREF
8 30
S_S73 PB7/SCK AVCC
ATMEGA16

////COPY DARI SINI//////////////


#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

unsigned char segmen [10]={0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110,


0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111}; //array

int nilai; //membuat variable nilai dengan range int

///////////SUB Program////////////////////////////////////
void display (void){
char a;
for (a=0;a<250;a++){
PORTC=segmen[nilai%10]; //formula ambil data satuan
PORTB=0B01111111; //SELECTOR/SCAN DIGIT satuan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[nilai/10%10]; //formula ambil data puluhan


PORTB=0B10111111; //SELECTOR/SCAN DIGIT puluhan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[nilai/100%10]; //formula ambil data data ratusan


PORTB=0B11011111; //SELECTOR/SCAN DIGIT ratusan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[nilai/1000%10]; //formula ambil data ribuan


PORTB=0B11101111; //SELECTOR/SCAN DIGIT ribuan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF
}
}
///////////////////////////////////////////////////////////
int main(void)
{
DDRC=0B11111111;
DDRB=0B11110000;
nilai=0;
while (1){
nilai=168; //nilai = 168
display(); //memanggil sub program display
}
}
////COPY SAMPAI DISINI//////////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 19


12. Menyalakan Seven Segment angka up Counter

LED_R
LED_L
U2 a
RV2 RV1 1 BUZ1 b
BZ c
MOTOR_L MOTOR_R d
93.0 R1 R2 e
50%

56%
ADC2 ADC1 330
BUZZER 330 f
g
2
VOUT ADC0
1k 1k D10 D9
3 LM35

S_S70 R4 R5 R6 R7
R24 S_S71 220 220 220 220
10k S_S72
U1 S_S73
9 22

LED7

LED6

LED5

LED4

LED3

LED2

LED1

LED0
RESET PC0/SCL a
23
PC1/SDA b
13 24
XTAL1 PC2/TCK c
12 25
XTAL2 PC3/TMS d
26
PC4/TDO e
40 27
ADC0
39
PA0/ADC0 PC5/TDI
28
f R20 R21 R22 R23
ADC1
38
PA1/ADC1 PC6/TOSC1
29
g 10k 10k 10k 10k R8 R9 R10 R11 R12 R13 R14 R15
ADC2 PA2/ADC2 PC7/TOSC2 h 330 330 330 330 330 330 330 330
37
LED_R PA3/ADC3
36 14
LED_L PA4/ADC4 PD0/RXD LED0 sw3 sw2 sw1 sw0
35 15
BZ PA5/ADC5 PD1/TXD LED1
MOTOR_R
34
PA6/ADC6 PD2/INT0
16
LED2
D8 D7 D6 D5 D4 D3 D2 D1
33 17
MOTOR_L PA7/ADC7 PD3/INT1 LED3
18
PD4/OC1B LED4
1 19
sw0 PB0/T0/XCK PD5/OC1A LED5
2 20
sw1 PB1/T1 PD6/ICP1 LED6
3 21
sw2 PB2/AIN0/INT2 PD7/OC2 LED7
sw3
4
PB3/AIN1/OC0 SW3 SW2 SW1 SW0
5
S_S70 PB4/SS
6
S_S71 PB5/MOSI
7 32
S_S72 PB6/MISO AREF
8 30
S_S73 PB7/SCK AVCC
ATMEGA16

////COPY DARI SINI//////////////


#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

unsigned char segmen [10]={0b00111111, 0b00000110, 0b01011011, 0b01001111, 0b01100110,


0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111}; //array

int nilai; //membuat variable nilai dengan range int

///////////SUB Program////////////////////////////////////
void display (void){
char a;
for (a=0;a<250;a++){
PORTC=segmen[nilai%10]; //formula ambil data satuan
PORTB=0B01111111; //SELECTOR/SCAN DIGIT satuan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[nilai/10%10]; //formula ambil data puluhan


PORTB=0B10111111; //SELECTOR/SCAN DIGIT puluhan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[nilai/100%10]; //formula ambil data data ratusan


PORTB=0B11011111; //SELECTOR/SCAN DIGIT ratusan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[nilai/1000%10]; //formula ambil data ribuan


PORTB=0B11101111; //SELECTOR/SCAN DIGIT ribuan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF
}
}
///////////////////////////////////////////////////////////
int main(void)
{
DDRC=0B11111111;
DDRB=0B11110000;
nilai=0;
while (1){
nilai++; //nilai akan melakukan penambahan 1, bisa ditulis juga "nilai=nilai+1"
display(); //memanggil sub program display
}
}
////COPY SAMPAI DISINI//////////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 20


13. Tombol 1 on, Tombol 2 Off

////COPY DARI SINI//////////////


#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

int main(void)
{
DDRD=0B11111111; //PORTD sebagai output
DDRB=0B11110000; //PORTB.0 sampai 3 sebagai input
PORTD=0B00000000;

while (1)
{
if bit_is_clear(PINB,0){
PORTD=0b00000001;
}
if bit_is_clear(PINB,1){
PORTD=0b00000000;
}
}
}
////COPY SAMPAI DISINI//////////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 21


14. Tombol 0-3 dan LED 0-3

////COPY DARI SINI//////////////


#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

int main(void)
{
DDRD=0B11111111; //PORTD sebagai Output
DDRB=0b11110000; //PORTB.0 sampai 3 sebagai Input
PORTD=0b00000000; //Pada saat start awal, LED dimatikan

while (1)
{
if bit_is_clear(PINB,0){
PORTD=0b00000001; //LED 0
}
if bit_is_clear(PINB,1){
PORTD=0b00000010; //LED 1
}
if bit_is_clear(PINB,2){
PORTD=0b00000100; //LED 2
}
if bit_is_clear(PINB,3){
PORTD=0b00001000; //LED 3
}
}
}
////COPY SAMPAI DISINI//////////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 22


15. Tombol 0-3 dan seven segment 0-3

LED_R
LED_L
U2 a
RV2 RV1 1 BUZ1 b
BZ c
MOTOR_L MOTOR_R d
93.0 R1 R2 e
50%

56%
ADC2 ADC1 330
BUZZER 330 f
g
2
VOUT ADC0
1k 1k D10 D9
3 LM35

S_S70 R4 R5 R6 R7
R24 S_S71 220 220 220 220
10k S_S72
U1 S_S73
9 22

LED7

LED6

LED5

LED4

LED3

LED2

LED1

LED0
RESET PC0/SCL a
23
PC1/SDA b
13 24
XTAL1 PC2/TCK c
12 25
XTAL2 PC3/TMS d
26
PC4/TDO e
40 27
ADC0
39
PA0/ADC0 PC5/TDI
28
f R20 R21 R22 R23
ADC1
38
PA1/ADC1 PC6/TOSC1
29
g 10k 10k 10k 10k R8 R9 R10 R11 R12 R13 R14 R15
ADC2 PA2/ADC2 PC7/TOSC2 h 330 330 330 330 330 330 330 330
37
LED_R PA3/ADC3
36 14
LED_L PA4/ADC4 PD0/RXD LED0 sw3 sw2 sw1 sw0
35 15
BZ PA5/ADC5 PD1/TXD LED1
MOTOR_R
34
PA6/ADC6 PD2/INT0
16
LED2
D8 D7 D6 D5 D4 D3 D2 D1
33 17
MOTOR_L PA7/ADC7 PD3/INT1 LED3
18
PD4/OC1B LED4
1 19
sw0 PB0/T0/XCK PD5/OC1A LED5
2 20
sw1 PB1/T1 PD6/ICP1 LED6
3 21
sw2 PB2/AIN0/INT2 PD7/OC2 LED7
sw3
4
PB3/AIN1/OC0 SW3 SW2 SW1 SW0
5
S_S70 PB4/SS
6
S_S71 PB5/MOSI
7 32
S_S72 PB6/MISO AREF
8 30
S_S73 PB7/SCK AVCC
ATMEGA16

////COPY DARI SINI//////////////


#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

int main(void)
{
DDRC=0B11111111; //PORTC sebagai Output
DDRB=0b11110000; //PORTB.0 sampai 3 sebagai Input
PORTC=0b00000000; //Pada saat start awal, seven segment dimatikan

while (1)
{
if bit_is_clear(PINB,0){
PORTC=0b00111111; //seven segment 0
}
if bit_is_clear(PINB,1){
PORTC=0b00000110; //seven segment 1
}
if bit_is_clear(PINB,2){
PORTC=0b01011011; //seven segment 2
}
if bit_is_clear(PINB,3){
PORTC=0b01001111; //seven segment 3
}
}
}
////COPY SAMPAI DISINI//////////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 23


16. Kombinasi LED, SWITCH dan Seven Segment

////COPY DARI SINI//////////////


#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

int main(void)
{
DDRC=0B11111111; //PORTC sebagai Output
DDRD=0b11111111; //PORTD sebagai Output
DDRB=0b11110000; //PORTB.0 sampai 3 sebagai Input
PORTC=0b00000000; //Pada saat start awal, seven segment dimatikan
PORTD=0b00000000; //Pada saat start awal, LED dimatikan

while (1)
{
if bit_is_clear(PINB,0){
PORTD=0b00000001; //LED 0
PORTC=0b00111111; //seven segment 0
}
if bit_is_clear(PINB,1){
PORTD=0b00000010; //LED 0
PORTC=0b00000110; //seven segment 1
}
if bit_is_clear(PINB,2){
PORTD=0b00000100; //LED 0
PORTC=0b01011011; //seven segment 2
}
if bit_is_clear(PINB,3){
PORTD=0b00001000; //LED 0
PORTC=0b01001111; //seven segment 3
}
}
}
////COPY SAMPAI DISINI//////////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 24


17. ADC 10 bit (0-1023)
////COPY DARI SINI//////////////
#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

unsigned char segmen [10]={0b00111111, 0b00000110, 0b01011011, 0b01001111,


0b01100110, 0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111}; //array

int nilai; //membuat variable nilai dengan range int

//////Sub ADC- baca di data sheet ATmega 16//////////////////


int adc(char ch)
{
ADMUX=ch;
_delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
///////////////////////////////////////////////////////////

///////////SUB Program////////////////////////////////////
void display (void){
char a;
for (a=0;a<250;a++){
PORTC=segmen[nilai%10]; //formula ambil data satuan
PORTB=0B01111111; //SELECTOR/SCAN DIGIT satuan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[nilai/10%10]; //formula ambil data puluhan


PORTB=0B10111111; //SELECTOR/SCAN DIGIT puluhan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[nilai/100%10]; //formula ambil data data ratusan


PORTB=0B11011111; //SELECTOR/SCAN DIGIT ratusan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[nilai/1000%10]; //formula ambil data ribuan


PORTB=0B11101111; //SELECTOR/SCAN DIGIT ribuan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF
}
}
///////////////////////////////////////////////////////////
int main(void)
{
DDRC=0B11111111;
DDRB=0B11110000;
ADMUX=0xE0; //baca data sheet ATmega 16
ADCSRA=0x84; //baca data sheet ATmega 16

nilai=0;
while (1){
nilai=adc(1); //adc (1), 1 adalah chanel 1 atau PORTA.1
display(); //memanggil sub program display
}
}
////COPY SAMPAI DISINI//////////////
Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 25
18. ADC caling 0-1023 ke 0-100
////COPY DARI SINI//////////////
#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

unsigned char segmen [10]={0b00111111, 0b00000110, 0b01011011, 0b01001111,


0b01100110, 0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111}; //array

int nilai; //membuat variable nilai dengan range int

//////Sub ADC- baca di data sheet ATmega 16//////////////////


int adc(char ch)
{
ADMUX=ch;
_delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
///////////////////////////////////////////////////////////

///////////SUB Program////////////////////////////////////
void display (void){
char a;
for (a=0;a<250;a++){
PORTC=segmen[nilai%10]; //formula ambil data satuan
PORTB=0B01111111; //SELECTOR/SCAN DIGIT satuan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[nilai/10%10]; //formula ambil data puluhan


PORTB=0B10111111; //SELECTOR/SCAN DIGIT puluhan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[nilai/100%10]; //formula ambil data data ratusan


PORTB=0B11011111; //SELECTOR/SCAN DIGIT ratusan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[nilai/1000%10];//formula ambil data ribuan


PORTB=0B11101111; //SELECTOR/SCAN DIGIT ribuan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF
}
}
///////////////////////////////////////////////////////////
int main(void)
{
DDRC=0B11111111;
DDRB=0B11110000;
ADMUX=0xE0; //baca data sheet ATmega 16
ADCSRA=0x84; //baca data sheet ATmega 16

nilai=0;
while (1){
nilai=(adc(1)/1023.0)*100; //scaling dari 0-1023 ke 0 -100
display(); //memanggil sub program display
}
}
////COPY SAMPAI DISINI//////////////
Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 26
19. ADC Suhu LM35
////COPY DARI SINI//////////////
#include <avr/io.h>
#define F_CPU 11059200UL //F_CPU = 11.059200Mhz
#include <util/delay.h> //Panggil Header Delay

unsigned char segmen [10]={0b00111111, 0b00000110, 0b01011011, 0b01001111,


0b01100110, 0b01101101, 0b01111101, 0b00000111, 0b01111111, 0b01101111}; //array

int suhu; //membuat variable nilai dengan range int

//////Sub ADC- baca di data sheet ATmega 16//////////////////


int adc(char ch)
{
ADMUX=ch;
_delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
///////////////////////////////////////////////////////////

///////////SUB Program////////////////////////////////////
void display (void){
char a;
for (a=0;a<200;a++){
PORTC=segmen[suhu%10]; //formula ambil data satuan
PORTB=0B01111111; //SELECTOR/SCAN DIGIT satuan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[suhu/10%10]; //formula ambil data puluhan


PORTB=0B10111111; //SELECTOR/SCAN DIGIT puluhan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[suhu/100%10]; //formula ambil data data ratusan


PORTB=0B11011111; //SELECTOR/SCAN DIGIT ratusan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF

PORTC=segmen[suhu/1000%10]; //formula ambil data ribuan


PORTB=0B11101111; //SELECTOR/SCAN DIGIT ribuan
_delay_ms(1);
PORTB=0B11111111; //SELECTOR/SCAN OFF
}
}
///////////////////////////////////////////////////////////
int main(void)
{
DDRC=0B11111111;
DDRB=0B11110000;
ADMUX=0xE0; //baca data sheet ATmega 16
ADCSRA=0x84; //baca data sheet ATmega 16

while (1){
suhu=(adc(0)/1023.0)*500; //contoh formula suhu celsius LM35
display(); //memanggil sub program display
}
}
////COPY SAMPAI DISINI//////////////

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 27


Ini adalah Tutorial Basic/ dasar disusun dengan waktu yang singkat untuk
membantu Latihan pemahaman pemograman persiapan LKS SMK Nasional
2016

Insya Allah jika ada kesempatan akan saya Upload versi yang lebih lengkap

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 28


TENTANG PENULIS
Nama : Farid Rinanto, SST
NIP : 19910309 201503 1 006
Jenis Kelamin : Laki-Laki
Tempat Tanggal Lahir : Kudus, 09 Maret 1991
Kewarganegaraan : Indonesia
Agama : Islam
Alamat Lengkap : Desa Bulung kulon Rt/Rw 06/02
Kec. Jekulo, Kab. Kudus,
Prov. Jawa Tengah 59382.
No HP : +62 82322992336
E-mail : faridrinanto@gmail.com
Website : www.inaskills-electronics.com
Pekerjaan Sekarang
Institusi : Balai Besar Pengembangan Latihan Kerja (BBPLK) - CEVEST BEKASI
Kementerian Ketenagakerjaan RI.
Jabatan : CALON INSTRUKTUR PERTAMA
Golongan : III/a

Pendidikan Formal
1996-1997 : TK Pertiwi Bulung Kulon, Kecamatan Jekulo, Kabupaten Kudus
1997-2003 : SD Negeri 6 Bulung Kulon, Kecamatan Jekulo, Kabupaten Kudus
2003-2006 : SMP Negeri 1 Jekulo, Kabupaten Kudus, Provinsi Jawa Tengah
2006-2009 : SMK Negeri 2 Pati Teknik Audio Video, Kabupaten. Pati, Provinsi Jawa Tengah
2010-2014 : Diploma IV Jurusan Teknik Otomasi Industri di Politeknik TEDC Bandung
Beasiswa Unggulan 2010

Pendidikan Non Formal


2011-2012 : Pelatihan pemusatan calon copetitor Asean Skill Competition (ASC) IX bidang
Elektronika Industri di Yayasan Pendidikan Matsushita Gobel (YPMG) PT. Panasonic Manufacturing
Indonesia.

Pengalaman
Tenaga Pengajar (Training) freelance untuk bidang electronic applications dan industrial electronics
kerjasama dengan Yayasan Matsushita Gobel (YMG), PT. Panasonic manufactruring indonesia tahun
2012 2014
Instruktur Asean Skills Competition X Hanoi 2014 Trade Electronics
Expert Electronics World Skills Competition 43 Sao paulo 2015

Prestasi akademik
2008 Juara 2 lomba Robot Linefollower se Jawa Tengah di Universitas Sultan Agung Semarang.
2008 Juara 3 lomba Robot Linefollower se Jawa Tengah dan DIY di Politeknik Negeri Semarang.
2009 Juara 1 lomba LKS SMK (Lomba Keterampilan Siswa) tingkat Provinsi Jawa Tengah.
2009 Juara 1 (Gold Medal) Lomba LKS SMK (Lomba Keterampilan Siswa) tingkat Nasional di
Jakarta.
2011 Peserta lomba Muatan Roket Indonesia (Komurindo) di Universitas Gajah Mada oleh DIKTI.
2012 Juara 1 (Gold Medal) Lomba Asean Skill Competition (ASC) IX bidang Elektronika Industri di
Jakarta.
2012 Best of Nation Asean Skill Competition (ASC) IX di Jakarta.
Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 29
2012 Mahasiswa berprestasi di Politeknik TEDC Bandung.
2013 Peserta lomba PLC Schneider (Programmable Logic Controller) antar mahasiswa tingkat nasional
di Politeknik Negeri Jakarta.
2013 Peserta lomba cipta mobil hemat energi (bahan bakar battery listrik) di ITS kerjasama dengan
DIKTI.
2013 Mahasiswa berprestasi di Politeknik TEDC Bandung.
2014 Perticipant Shell Eco Marathon Asia (Lomba cipta mobil irit se-Asia) di Manila Philippines.
2014 Mahasiswa berprestasi di Politeknik TEDC Bandung.
2014 Finalis lomba Ledder programing PLC Siemens (Programmable Logic Controller) antar mahasiswa
tingkat nasional di Institut Teknologi Bandung.

Pengalaman Organisasi
2008-2009 Perintis dan ketua tim Robot di SMK N 2 Pati Jawa Tengah.
2010-2011 Wakil Ketua Himpunan Mahasiswa Elektro di Politeknik TEDC Bandung.
2012-2013 Devisi diklat Himpunan Mahasiswa Elektro di Politeknik TEDC Bandung.
2013 Manager team cimahi 3 dalam pembuatan mobil hemat energi bahan bakar battery listrik.
2014 Electronics Engineering tim cimahi 2 dalam pembuatan mobil hemat energi bahan bakar Bensin.

Pengalaman Lain
Penyusun Soal LKS (Lomba Kompetensi siswa) SMK bidang elektronika tingkat Tanggerang Selatan
2012.
Penyusun Soal LKS (Lomba Kompetensi siswa) SMK bidang elektronika tingkat DKI Jakarta 2012.
Penyusun Soal LKS (Lomba Kompetensi siswa) SMK bidang elektronika tingkat nasional tahun 2012,
2013, 2014, 2015, 2016
Penyusun Soal seleknas ASC (Asean Skills Copetition) bidang elektronika tahun 2013, 2015.
Juri LKS (Lomba Kompetensi siswa) SMK bidang elektronika tingkat DKI Jakarta tahun 2014, 2015,
2016.
Juri Seleknas ASC (Asean Skills Competition) Bidang Elektronika 2015

Email: faridrinanto@gmail.com website: www.inaskills-electronics.com 30

You might also like