ROBOTIKA 2
ROBOT LINE FOLLOWER SEDERHANA
D. Gambar Rangkaian
LCD1
RV9
LM016L
0%
RV8
0%
RV7
0%
RV6
0%
RV5
0%
RV4
0%
RV3
0%
0%
RV2
1k
1k
1k
U1
14
15
16
17
18
19
20
21
IN1
IN2
IN3
IN4
EN2
EN1
13
12
9
PB0/T0/XCK
PB1/T1
PB2/AIN0/INT2
PB3/AIN1/OC0
PB4/SS
PB5/MOSI
PB6/MISO
PB7/SCK
PD0/RXD
PD1/TXD
PD2/INT0
PD3/INT1
PD4/OC1B
PD5/OC1A
PD6/ICP1
PD7/OC2
40
39
38
37
36
35
34
33
PA0/ADC0
PA1/ADC1
PA2/ADC2
PA3/ADC3
PA4/ADC4
PA5/ADC5
PA6/ADC6
PA7/ADC7
1K
22
23
24
25
26
27
28
29
PC0/SCL
PC1/SDA
PC2
PC3
PC4
PC5
PC6/TOSC1
PC7/TOSC2
XTAL1
XTAL2
RESET
1
2
3
1
2
3
4
5
6
7
8
+5V
+12V
32
30
AREF
AVCC
D0
D1
D2
D3
D4
D5
D6
D7
1k
7
8
9
10
11
12
13
14
1k
4
5
6
1k
VSS
VDD
VEE
1k
RS
RW
E
RV1
1k
16
U2
ATMEGA8535
IN1
IN2
EN1
EN2
IN3
IN4
D8
D7
D6
D5
D4
D3
D2
D1
LED-BLUE
LED-BLUE
LED-BLUE
LED-BLUE
LED-BLUE
LED-BLUE
LED-BLUE
LED-BLUE
R8
R7
R6
R5
R4
R3
R2
R1
330R
330R
330R
330R
330R
330R
330R
330R
2
7
1
9
10
15
IN1
IN2
EN1
EN2
IN3
IN4
VSS
VS OUT1
OUT2
3
6
+88.8
GND
OUT3
GND OUT4
11
14
L293D
+88.8
ROBOTIKA 2
ROBOT LINE FOLLOWER SEDERHANA
ROBOTIKA 2
ROBOT LINE FOLLOWER SEDERHANA
Gambar 3.5. Konfigurasi Port pada CodevisionAVR
7. Pilih Tab Timer. Lalu pilih Timer1. Atur seperti pada gambar beikut.
ROBOTIKA 2
ROBOT LINE FOLLOWER SEDERHANA
ROBOTIKA 2
ROBOT LINE FOLLOWER SEDERHANA
lcd_gotoxy(0,0);
sprintf(lcd,"%X",P1);
lcd_puts(lcd);
lcd_gotoxy(3,0);
sprintf(lcd,"%X",P2);
lcd_puts(lcd);
lcd_gotoxy(6,0);
sprintf(lcd,"%X",P3);
lcd_puts(lcd);
lcd_gotoxy(9,0);
sprintf(lcd,"%X",P4);
lcd_puts(lcd);
lcd_gotoxy(0,1);
sprintf(lcd,"%X",P5);
lcd_puts(lcd);
lcd_gotoxy(3,1);
sprintf(lcd,"%X",P6);
lcd_puts(lcd);
lcd_gotoxy(6,1);
sprintf(lcd,"%X",P7);
lcd_puts(lcd);
lcd_gotoxy(9,1);
sprintf(lcd,"%X",P8);
lcd_puts(lcd);
if (P1 >= 180){
PORTB.0 = 1;
}else{
PORTB.0 = 0;
}
if (P2 >= 180){
PORTB.1 = 1;
}else{
PORTB.1 = 0;
}
if (P3 >= 180){
PORTB.2 = 1;
}else{
PORTB.2 = 0;
}
if (P4 >= 180){
PORTB.3 = 1;
}else{
PORTB.3 = 0;
}
if (P5 >= 180){
PORTB.4 = 1;
}else{
PORTB.4 = 0;
}
if (P6 >= 180){
ROBOTIKA 2
ROBOT LINE FOLLOWER SEDERHANA
PORTB.5 = 1;
}else{
PORTB.5 = 0;
}
if (P7 >= 180){
PORTB.6 = 1;
}else{
PORTB.6 = 0;
}
if (P8 >= 180){
PORTB.7 = 1;
}else{
PORTB.7 = 0;
}
}
void maju(){
IN1 = 1;IN2=0;IN3=1;IN4=0; EN1 = 100; EN2 = 100;
}
void manuver_kanan(){
IN1 = 1; IN2 = 0; IN3 = 0; IN4 = 1; EN1 = 100; EN2 = 100;
}
void manuver_kiri(){
IN1 = 0; IN2 = 1; IN3 = 1; IN4 = 0; EN1 = 100; EN2 = 100;
}
void belok_kanan(){
IN1 = 1; IN2 = 0; IN3 = 0; IN4 = 0; EN1 = 100; EN2 = 100;
}
void belok_kiri(){
IN1 = 0; IN2 = 0; IN3 = 1; IN4 = 0; EN1 = 100; EN2 = 100;
}
void idle(){
IN1 = 0; IN2 = 0; IN3 = 0; IN4 = 0; EN1 = 100; EN2 = 100;
}
void main(void)
{
DDRB=0xFF;
DDRD=0x3F;
TCCR1A=0xA1;
TCCR1B=0x0D;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SFIOR&=0xEF;
lcd_init(16);
while (1)
{
P1 = read_adc(0);P2 = read_adc(1);P3 = read_adc(2);P4 = read_adc(3);
P5 = read_adc(4);P6 = read_adc(5);P7 = read_adc(6);P8 = read_adc(7);
lcd_clear();
lcd_sensor();
delay_ms(50);
if((PORTB == 0b00000001)|(PORTB == 0b00000011)){
manuver_kanan();
EN1 = 200;
EN2 = 200;
ROBOTIKA 2
ROBOT LINE FOLLOWER SEDERHANA
lcd_gotoxy(13,1);
lcd_puts("->");
}else if((PORTB == 0b00000100)|(PORTB == 0b00000110)|(PORTB == 0b00000111))
{
belok_kanan();
EN1 = 250;
EN2 = 200;
lcd_gotoxy(13,1);
lcd_puts("->>");
}else if((PORTB == 0b00011000)|(PORTB == 0b00111000)|(PORTB == 0b00011100))
{
maju();
EN1 = 250;
EN2 = 250;
lcd_gotoxy(13,1);
lcd_puts("^");
}else if((PORTB == 0b00100000)|(PORTB == 0b01100000)|(PORTB == 0b11100000))
{
belok_kiri();
EN1 = 200;
EN2 = 250;
lcd_gotoxy(13,1);
lcd_puts("<<-");
}else if((PORTB == 0b10000000)|(PORTB == 0b11000000)){
manuver_kiri();
EN1 = 200;
EN2 = 200;
lcd_gotoxy(13,1);
lcd_puts("<-");
}else {
idle();
EN1 = 0;
EN2 = 0;
lcd_gotoxy(13,1);
lcd_puts("-");
}
}
}
12.
Setelah program selesai. Klik menu Project, lalu pilih Build
All. Yang juga secara otomatis akan menghasilkan file hex dari
program. File hex dapat ditemukan dalam folder hex
ROBOTIKA 2
ROBOT LINE FOLLOWER SEDERHANA
ROBOTIKA 2
ROBOT LINE FOLLOWER SEDERHANA
Gambar 3.12. Bagian program file tempat mengisi URL file HEX
15.
ROBOTIKA 2
ROBOT LINE FOLLOWER SEDERHANA
ROBOTIKA 2
ROBOT LINE FOLLOWER SEDERHANA
F. Diagram Alir (Flowchart)
ROBOTIKA 2
ROBOT LINE FOLLOWER SEDERHANA
Gambar 3.17. Flowchart program
G. Hasil Praktikum
a. Rangkaian pada Proteus
RV8
LCD1
RV9
LM016L
0%
0%
RV7
0%
RV6
100%
RV5
100%
RV4
0%
RV3
0%
0%
RV2
1k
1k
1k
14
15
16
17
18
19
20
21
IN1
IN2
IN3
IN4
EN2
EN1
13
12
9
PB0/T0/XCK
PB1/T1
PB2/AIN0/INT2
PB3/AIN1/OC0
PB4/SS
PB5/MOSI
PB6/MISO
PB7/SCK
PD0/RXD
PD1/TXD
PD2/INT0
PD3/INT1
PD4/OC1B
PD5/OC1A
PD6/ICP1
PD7/OC2
40
39
38
37
36
35
34
33
PA0/ADC0
PA1/ADC1
PA2/ADC2
PA3/ADC3
PA4/ADC4
PA5/ADC5
PA6/ADC6
PA7/ADC7
1K
22
23
24
25
26
27
28
29
PC0/SCL
PC1/SDA
PC2
PC3
PC4
PC5
PC6/TOSC1
PC7/TOSC2
XTAL1
XTAL2
RESET
1
2
3
1
2
3
4
5
6
7
8
+5V
+12V
32
30
AREF
AVCC
D0
D1
D2
D3
D4
D5
D6
D7
1k
7
8
9
10
11
12
13
14
1k
4
5
6
1k
VSS
VDD
VEE
1k
RS
RW
E
RV1
1k
U1
16
U2
ATMEGA8535
IN1
IN2
EN1
EN2
IN3
IN4
D8
D7
D6
D5
D4
D3
D2
D1
LED-BLUE
LED-BLUE
LED-BLUE
LED-BLUE
LED-BLUE
LED-BLUE
LED-BLUE
LED-BLUE
R8
R7
R6
R5
R4
R3
R2
R1
330R
330R
330R
330R
330R
330R
330R
330R
2
7
1
9
10
15
IN1
IN2
EN1
EN2
IN3
IN4
VSS
VS OUT1
OUT2
3
6
+180
GND
OUT3
GND OUT4
11
14
L293D
+180