SlideShare a Scribd company logo
1 of 21
Download to read offline
LAPORAN PROJEK UJIAN TENGAH SEMESTER SISTEM
EMBEDDED
Agung Bandaso Karurukan (1110145003) D4 LJ ELKA
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
2015
Pendahuluan :
Dalam kehidupan sehari hari kegiatan manusia sudah sangat erat hunbungannya
dengan sistem otomasi, monitoring ataupun yang lainnya yang dikontrol dengan kontroler.
Salah satunya adalah sistem monitoring waktu dalam perlombaan balap mobil, maka
untuk memperdalam pengetahuan terhadap system embeded, pada project ujian tengah
semester ini, dilakukan perncangan sebuah system embeded untuk memonitoring lama waktu
setiap mobil dalam menyelesaikan 4 putaran.
Tujuan :
Setelah melaksanakan project ini diharapkan mahasiswa dapat lebih mememahami
cara pembuatan simple embeded system.
Alur proses
Alur proses dari system memiliki 3 input sensor untuk masing masing mobil yang
diwakili oleh 3 push button, 1 push button untuk tombol start dan stop dan 1 push button
untuk reset. Dengan output yang di tampilkan pada komputer menggunakan aplikasi visual
basic dengan komunikasi serial.
Program akan mendeteksi push button start/stop, reset dan sensor yang selanutnya
mengirimkan karakter melalui kabel serial menuju komputer dan diolah menggunakan
aplikasi visual basic. Tombol start/stop digunakan untuk memulai dan mengakhiri timer
pada mikrokontontroler. Tombol reset digunakan untuk mereset timer. Sensor 1 sampai
sensor 3 adalah sensor proximity yang mencatat setiap lap dari setiap mobil yang telah
ditempuh. Dimana ketiga sensor diwakili dengan push button. Setiap pushbutton
menggunakan mekanisme delay untuk menghilangkan efek bouncing dari setiap penekanan
sakelar. Sistem mengirimkan informasi waktu yang ditempuh pada komputer untuk keperluan
analisa. Apabila sensor mengalami kerusakan maka sistem akan mengirimkan peringatan
berupa kode error yang selanjutnya diolah menjadi kode warna untuk masing masing sensor
Gambar.1 flow chart program
Start
Tekan Start
Timer aktif
Kirim nilai timer pada port serial
Deteksi Penekanan tombol sensor (1,2,3)
Timeout?
YA
aktif
Kirim keterangan
error
TIDAK
aktif
Kirim data sesuai
sensor yang ditekan
Masing-masing
sensor mencapai 4
kali lap?
Kirim nilai analisa
melalui port serial
YA
aktif
Tekan Reset
End
PRINSIP KERJA
Prinsip dasar dari penggunaan metode pada tugas ini mengaktifkan 2 fitur yang
dimiliki oleh mkrokontroler yaitu serial dan timer. Dimana timer yang digunakan untuk
menghasilkan data waktu yang selanjutnya ditampilkan pada visual basic, melalui kabel
serial.
Saat dilakukan penekanan tombol start stop maka sinyal akan mengirimkan data ke
mikrokontroler yang selanjutnya digunakan untuk mengkatifkan/menonaktifkan timer. Timer
yang telah diaktifkan akan menghitung setiap detik dan menyimpan data untuk setiap variabel
detik, menit dan jam, dan data dikirimkan melalui serial ke vb untuk ditampilkan sebagai data
stopwatch.
Penekanan tombol reset akan menghentikan kerja timer dan mereset nilai dari masing
masing variable detik, menit dan jam, yang selanjutnya data dikirim ke VB dan menampilkan
nilai stopwatch.
Sensor proximity yang diwakili oleh push button akan akan mengirimkan data detik,
menit dan jam yang diambil dari variable yang telah dibuat sebelumnya, sehingga data yang
telah didapat tersebut selanjutnya dikrimkan ke VB dan akan ditampilakn untuk masing
masing putaran, penekanan tombol diberi metode anti bouncing dengan penambahan delay
sehingga jika terjadi bouncing yang diakibatkan oleh pengaruh luar maka data tidak akan
mengirim data. Pada penekanan tombol juga diberi metode time out dimana penekanan
tombol diberi batas waktu penekanan sehingga jika lama waktu penekanan tersebut terlewati
maka mikrokontroler akan mengirimkan data yang memberi tahu bahwa terjadi masalah pada
sensor/pushbutton.
Gambar2. flow chart program visual basic
Pada metode ini data yang dikirimkan dari mikrokontroler akan ditampung pada variable
“karakter” pada visual basic dan akan dipilih / parsing sesuai dengan data yang akan
ditampilkan. Dimana tiap detik data pada text1 akan diupdate sesuai dengan periode
pengiriman data oleh mikrokontroler.
DARI MIKROKONTROLER
Terima data jam digital (Per detik)
Bagi data sesuai karakter
Update tampilan jam pada Text1
Konversi data pada tiap sensor
Tampilkan data Error dan Lap
Terima data reset
Clear semua text pada form
Terima data Analisa
Tampilkan Analisa
Alat dan Bahan
- Minimum system + ATMEGA 16 -------------- 1x
- Kabel komunikasi USB – TTL ------------------ 1x
- Push Button ---------------------------------------- 4x
- Kabel downloader (USB ASP) ------------------ 1x
- Aplikasi Eclipse ----------------------------------- 1x
- Aplikasi Visual Basic 6 -------------------------- 1x
o Label
o Button
o Combo box
o Text Box
o Timer
o MsComm
Gambar3. minimum system , USB to TTL dan Pushbutton
Koneksi pemasangan pushbutton diletakkan pada PORTA.1 – PORTA.5
PORTA.1 = Start stop
PORTA.2 = Reset
PORTA.3 = sensor 1
PORTA.4 = sensor 2
PORTA.5 = sensor 3
Penjelasan program
1. Serial
Inisialisasi dan pengkatifan sebuah fitur serial dari mikrokontroler dimaksudkan untuk
mikrokontroler yang digunakan dapat berkomunikasi dengan dengan device yang
lainnya dimana pda tugas ini adalah komputer.
Potongan program
void uart_init(void)
{
UCSRA = (1<<U2X);
UCSRB = (1<<TXEN)|(1<<RXEN)|(0<<UCSZ2);
UCSRC = (1<<UCSZ1)|(1<<UCSZ0);
UBRRH = 0x0;
UBRRL = 51;
}
USART Control and Status Register A-UCSRA memiliki susunan seperti berikut
U2X merupakan bit yang mengatur operating mode, pada program ini mode yang
digunakan adalah Asyncronous Double Speed.
Sehingga untuk perhitungan UBRR guna menyamakan baudrate dapat dihitung dengan
Register yang diseting selanjutnya adalah UCSRB
RXEN dan TXEN diaktifkan dengan memberi nilai 1, nilai UCSZ0 berkaitan dengan UCSZ1
dan UCSZ2 dimana ketiga kombinasi bit akan memeilih lebar data yang akan digunakan.
Pada program digunakan lebar data 8 bit sehingga pengaturan
UCZ0 = 1
UCZ1 = 1
UCZ2 = 0
2. Timer
Fitur timer yang ada pada atmega 16 ada 3 yaitu timer 0, timer1 dan timer 2.
Pada program ini digunakan timer 1 sebagai pewaktu yang dkirim ke VB.
Potongan program
void TIMER1_init (void)
{
DDRC=0XFF;
TCCR1A |= (0<<WGM11)|(0<<WGM10);
TCCR1B |= (0<<WGM13)|(1<<WGM12)|(1<<CS12)|(0<<CS11)|(0<<CS10);
//MODE CTC
OCR1A=(7812*2); //1 DETIK
}
Pada potongan progra diatas, DDRC diseting output yang dikoneksikan dengan led
yang berfungsi untuk indicator jika terjadi pengiriman data.
Timer control Register TCCR1 A
Timer control Register TCCR1 B
Pada liss program yang diset adalah bit WGM 10, WGM 11, WGM 12 dan WGM 13 dengan
konfigurasi :
WGM10 : 0
WGM11 : 0
WGM12 : 1
WGM13 : 0
Dari tabel diatas dapat kita lihat bahwa timer yang digunaan adalah timer dengan
mode operasi CTC dan maximal/TOP perhitungan data bergantung dari nilai OCR yang kita
masukkan.
Mode CTC merupakan mode dimana timer akan mengconting dari 0 samapai dengan
batas atas TOP/OCR yang diisikan oleh yang memprogram. Contohnya dilakukan seting
OCR/TOP adalah 3 maka counter akan menhitung dari 0 sampai pada 3, jika setiap cycle
adalah 1 detik maka didapatkan waktu 3 detik, untuk mendapatkan nilai yang lebih lama
dapat kita tambahkan nilai OCRnya misalkan 5, maka nilai tundaannya menjadi 5 detik.
Nilai OCR dapat dihitung dengan rumus
Pada bit Chip select pada program memiliki konfigurasi seperti berikut
CS12 = 1
CS11 = 0
CS10 = 0
Dari tabel dibawah dapat dilihat bahwa prescaler yang digunakan adalah 256
Saat nilai OCR telah terpenuhi maka program akan menjalankan subrutin interupt ISR
dimana subrutin ini akan mengirimkan data variable jam, menit dan detik setiap 1 detik
ISR(TIMER1_COMPA_vect)
{
kondisi=kondisi+1;
detik++;
PORTC=kondisi;
if(kondisi==255){kondisi=0;}
if (detik == 60)
{
detik = 0;
menit= menit + 1;
}
if (menit == 60)
{
menit = 0;
jam=jam + 1;
}
if (jam == 24)
{
jam = 0;
}
printf("TIME : %d : %d : %dnr",jam, menit, detik);
}
Gambar pengiriman data subrutin timer pada hyperterminal
3. Reset
Penekanan tombol reset difungsikan untuk mereset nilai dari variable, pada
potongan program dibawah ini, saat terjadi penekanan tombol, maka variable jam,
menit dan detik diseting 0 dan mengirimkan karakter “REST” serta mendisablekan
timer.
unsigned char resetDetected(void)
{
Timeout_loop=0;
if (!isCheckPIN(btnReset))
{ //bila saklar counter di tekan
_delay_ms(40);
if(!isCheckPIN(btnReset))
{
while(!isCheckPIN(btnReset)&& Timeout_loop++<=Timeout_value);
if (Timeout_loop>=Timeout_value)
{
printf("sn");
}
else
{
jam=0;
menit=0;
detik=0;
printf("REST nr");
TIMSK=(0<<OCIE1A);
}
}
}
}
Gambar pengiriman data seset pada hypertherminal
4. Start/Stop
Pada program ini bila saklar ditekan untuk menghilangkan efek bouncing
maka diberikan delay 40 ms, selanjutnya pengecheckkan apakah masih terjadi
penekanan tombol dan variable startstop =0 (penekanan pertama) jika ya timer akan
diaktifkan setelah timer diaktifkan variable startstop diubah menjadi 1. Dan jika
terjadi penekanan yang kedua, dimana nilai variable start stop sudah menjadi 1 maka
program akan mendeteksi bahwa penekanan telah dilakukan sebanyak dua kali,
sehingga yang dilakukan adalah mendisablekan timer.
unsigned char startstopDetected(void)
{
if (!isCheckPIN(btnCount))
{ //bila saklar diaktifkan
_delay_ms(40);
if(!isCheckPIN(btnCount)&&startstop==0)
{
while(!isCheckPIN(btnCount));
TIMSK=(1<<OCIE1A); //ENABLE INTERUPPT OCR1A;
startstop=1;
}
else if (!isCheckPIN(btnCount)&&startstop==1)
{
while(!isCheckPIN(btnCount));
TIMSK=(0<<OCIE1A); //ENABLE INTERUPPT OCR1A;
startstop=0;
}
}
}
5. Penekanan tombol/sensor
Pada program ini hampir sama dengan penekaan tombol reset, hanya jika terjadi
penekanan maka mikrokontroler akan mengirimkan sinyal berupa data jam, menit
dan detik pada VB dengan contoh data “S1L2 0:2:12” yang selanjutnya akan di proses
dan ditampilkan pada label yang dituju.
unsigned char sensorDetected(void)
{
Timeout_loop=0;
if (!isCheckPIN(pushButton3))
{ //bila saklar counter di tekan
_delay_ms(40);
if(!isCheckPIN(pushButton3))
{
while(!isCheckPIN(pushButton3)&&
Timeout_loop++<=Timeout_value);
if (Timeout_loop>=Timeout_value)
{
printf("S1RS ERRORnr");
}
else
{
if(Sensor1<=3)
{
Sensor1++;printf("S1L%d %d : %d : %d nr",Sensor1,jam,menit,detik);
}
}
}
}
Gambar pengiriman data sensor 1 – sensor 3
Lampiran
Gambar. Hasil dari GUI visual basic
LIST PROGRAM PADA ECLIPSE
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
#include <stdlib.h>
#include <avr/interrupt.h>
//utility
#define checkbit(address,bit) (address & (1<<bit))
#define setbit(address,bit) (address |=(1<<bit))
#define clrbit(address,bit) (address &=~(1<<bit))
#define flipbit(address,bit) (address ^=(1<<bit))
//temporary
#define _set(address,bit) (PORT##address |=(1<<bit))
#define _clr(address,bit) (PORT##address &=~(1<<bit))
#define _flip(address,bit) (PORT##address ^=(1<<bit))
#define _setInputPullup(address,bit) (DDR##address &=~(1<<bit));(PORT##address
|=(1<<bit))
#define _setOutput(address,bit) (DDR##address |=(1<<bit))
#define _Checkbit2(address,bit) (PIN##address &(1<<bit))
//final
#define SET(address) _set(address)
#define CLR(address) _clr(address)
#define FLIP(address) _flip(address)
#define SETInputPullup(address) _setInputPullup(address)
#define SETOutput(address)_setOutput(address)
#define isCheckPIN(x) _Checkbit2(x)
//end utility
//DeviceIO
#define btnCount A,1
#define btnReset A,2
#define pushButton3 A,3
#define pushButton4 A,4
#define pushButton5 A,5
#define ledMerah A,6
//#define ledHijau B,2
char i=0;
unsigned char kondisi,detik=0, menit=0, jam=0, startstop=0;
static int uart_putchar (char ch,FILE*stream);
static int uart_getchar (FILE*stream);
static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar,NULL,_FDEV_SETUP_WRITE);
static FILE mystdin = FDEV_SETUP_STREAM(NULL, uart_putchar,_FDEV_SETUP_READ);
unsigned long Timeout_loop=0;
unsigned long Timeout_value=600000;
unsigned char Sensor1 = 0; Sensor2 = 0; Sensor3 = 0 ;
void uart_init(void)
{
UCSRA = (1<<U2X);
UCSRB = (1<<TXEN)|(1<<RXEN)|(0<<UCSZ2);
UCSRC = (1<<UCSZ1)|(1<<UCSZ0);
UBRRH = 0x0;
UBRRL = 51;
}
static int uart_putchar (char ch,FILE*stream)
{
if(ch=='n') uart_putchar('r',stream);
loop_until_bit_is_set(UCSRA, UDRE);
UDR=ch;
return 0;
}
static int uart_getchar(FILE*stream)
{
char temp;
loop_until_bit_is_set(UCSRA, RXC);
temp = UDR;
uart_putchar(temp,stream);
return (temp);
}
ISR(TIMER1_COMPA_vect)
{
kondisi=kondisi+1;
detik++;
PORTC=kondisi;
if(kondisi==255){kondisi=0;}
if (detik == 60)
{
detik = 0;
menit= menit + 1;
}
if (menit == 60)
{
menit = 0;
jam=jam + 1;
}
if (jam == 24)
{
jam = 0;
}
printf("TIME : %d : %d : %dnr",jam, menit, detik);
}
void TIMER1_init (void)
{
DDRC=0XFF;
TCCR1A |= (0<<WGM11)|(0<<WGM10);
TCCR1B |= (0<<WGM13)|(1<<WGM12)|(1<<CS12)|(0<<CS11)|(0<<CS10); //MODE CTC
OCR1A=(7812*2); //1 DETIK
//TIMSK=(0<<OCIE1A); //ENABLE INTERUPPT OCR1A
//sei();
//return;
}
unsigned char resetDetected(void)
{
Timeout_loop=0;
if (!isCheckPIN(btnReset))
{ //bila saklar counter di tekan
_delay_ms(40);
if(!isCheckPIN(btnReset))
{
while(!isCheckPIN(btnReset)&& Timeout_loop++<=Timeout_value);
if (Timeout_loop>=Timeout_value)
{
printf("sn");
}
else
{
jam=0;
menit=0;
detik=0;
printf("REST nr");
TIMSK=(0<<OCIE1A);
}
}
}
}
unsigned char startstopDetected(void)
{
if (!isCheckPIN(btnCount))
{ //bila saklar diaktifkan
_delay_ms(40);
if(!isCheckPIN(btnCount)&&startstop==0)
{ while(!isCheckPIN(btnCount));
TIMSK=(1<<OCIE1A); //ENABLE INTERUPPT OCR1A;
startstop=1;
}
else if (!isCheckPIN(btnCount)&&startstop==1)
{ while(!isCheckPIN(btnCount));
TIMSK=(0<<OCIE1A); //ENABLE INTERUPPT OCR1A;
startstop=0;
}
}
}
unsigned char sensorDetected(void)
{
Timeout_loop=0;
if (!isCheckPIN(pushButton3))
{ //bila saklar counter di tekan
_delay_ms(40);
if(!isCheckPIN(pushButton3))
{
while(!isCheckPIN(pushButton3)&&
Timeout_loop++<=Timeout_value);
if (Timeout_loop>=Timeout_value)
{
printf("S1RS ERRORnr");
}
else
{
if(Sensor1<=3)
{
Sensor1++;printf("S1L%d %d : %d : %d
nr",Sensor1,jam,menit,detik);
}
if (Sensor1==4){printf("DET1 %d : %d :
%dnr",jam,menit,detik);Sensor1++;}
}
}
}
if (!isCheckPIN(pushButton4))
{ //bila saklar counter di tekan
_delay_ms(40);
if(!isCheckPIN(pushButton4))
{
while(!isCheckPIN(pushButton4)&&
Timeout_loop++<=Timeout_value);
if (Timeout_loop>=Timeout_value)
{
printf("S2RS ERRORnr");
}
else
{
if(Sensor2<=3)
{
Sensor2++;printf("S2L%d %d : %d : %d
nr",Sensor2,jam,menit,detik);
}
if (Sensor2==4){printf("DET2 %d : %d :
%dnr",jam,menit,detik);Sensor2++;}
}
}
}
if (!isCheckPIN(pushButton5))
{ //bila saklar counter di tekan
_delay_ms(40);
if(!isCheckPIN(pushButton5))
{
while(!isCheckPIN(pushButton5)&&
Timeout_loop++<=Timeout_value);
if (Timeout_loop>=Timeout_value)
{
printf("S3RS ERRORnr");
}
else
{
if(Sensor3<=3)
{
Sensor3++;printf("S3L%d %d : %d : %d
nr",Sensor3,jam,menit,detik);
}
if (Sensor3==4){printf("DET3 %d : %d :
%dnr",jam,menit,detik);Sensor3++;}
}
}
}
}
int main(void)
{
// SETInputPullup(btnCount);
SETInputPullup(btnReset);
SETInputPullup(btnCount);
SETInputPullup(pushButton3);
SETInputPullup(pushButton4);
SETInputPullup(pushButton5);
// SETInputPullup(ledMerah);
uart_init();
stdout=&mystdout;
stdin=&mystdin;
TIMER1_init();
sei ();
while(1) //loop-forever
{
startstopDetected();
sensorDetected();
resetDetected();
}
return (0);
}
LIST PROGRAM VISUAL BASIC
Option Explicit
Dim karakter As Variant
Dim kata As String '=================>
Data serial yang ditampung
Dim serial As String
Dim mobil1lap1 As String
Private Sub cmdConnect_Click()
On Error Resume Next
If MSComm1.PortOpen = False Then
MSComm1.CommPort = 9
MSComm1.RThreshold = 40
'====================> Penting dok jangan
lupa lagi
MSComm1.InputLen = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.PortOpen = True
cmdConnect.Enabled = False
cmdDisconnect.Enabled = True
End If
Exit Sub
End Sub
Private Sub cmdDisconnect_Click()
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
cmdConnect.Enabled = True
cmdDisconnect.Enabled = False
End Sub
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive
Then
karakter = MSComm1.Input
If karakter <> Chr(13) Then 'kalau tidak
sama dengan
If karakter = Chr(10) Then '13 enter 10
geser kiri
'Text18.Text = kata
serial = Mid(kata, 1, 4) 'ambil dari huruf
1 sampai 4
If serial = "TIME" Then Text1.Text =
Mid(kata, 7, 11)
'==============>TIME:_0_:_0_:_11
If serial = "REST" Then
'Text1.Text = Mid(kata, 5, 10)
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""
Text9.Text = ""
Text10.Text = ""
Text11.Text = ""
Text12.Text = ""
Text13.Text = ""
'Text14.Text = "-"
'Text15.Text = "-"
'Text16.Text = "-"
Text17.Text = ""
End If
'SENSOR 1====================
If serial = "S1L1" Then Text2.Text =
Mid(kata, 5, 12)
If serial = "S1L2" Then Text3.Text =
Mid(kata, 5, 12)
If serial = "S1L3" Then Text4.Text =
Mid(kata, 5, 12)
If serial = "S1L4" Then Text5.Text =
Mid(kata, 5, 12)
If serial = "S1RS" Then Shape1.FillColor =
&HFF& 'Text14.Text = Mid(kata, 5, 9)
'=================> ERROR 1
'SENSOR 2=======================
If serial = "S2L1" Then Text6.Text =
Mid(kata, 5, 12)
If serial = "S2L2" Then Text7.Text =
Mid(kata, 5, 12)
If serial = "S2L3" Then Text8.Text =
Mid(kata, 5, 12)
If serial = "S2L4" Then Text9.Text =
Mid(kata, 5, 12)
If serial = "S2RS" Then Shape2.FillColor =
&HFF& 'Text15.Text = Mid(kata, 5, 9)
'=================> ERROR 2
'SENSOR3======================
If serial = "S3L1" Then Text10.Text =
Mid(kata, 5, 12)
If serial = "S3L2" Then Text11.Text =
Mid(kata, 5, 12)
If serial = "S3L3" Then Text12.Text =
Mid(kata, 5, 12)
If serial = "S3L4" Then Text13.Text =
Mid(kata, 5, 12)
If serial = "S3RS" Then Shape3.FillColor =
&HFF& 'Text16.Text = Mid(kata, 5, 9)
'===================> ERROR 3
'ANALISA============================
DETX:_13 ========================
If serial = "DET1" Then
With Text17
.SelStart = Len(.Text)
.SelText = vbNewLine & "Waktu Tempuh
Mobil 1 = " & Mid(kata, 6, 12)
End With
End If
If serial = "DET2" Then
With Text17
.SelStart = Len(.Text)
.SelText = vbNewLine & "Waktu Tempuh
Mobil 2 = " & Mid(kata, 6, 12)
End With
End If
If serial = "DET3" Then
With Text17
.SelStart = Len(.Text)
.SelText = vbNewLine & "Waktu Tempuh
Mobil 3 = " & Mid(kata, 6, 12)
End With
End If
kata = ""
Else
kata = kata & karakter
End If
End If
End If
End Sub

More Related Content

What's hot

72681707 jam-digital-at-mega-16
72681707 jam-digital-at-mega-1672681707 jam-digital-at-mega-16
72681707 jam-digital-at-mega-16Satria Speed
 
Proposal tugas akhir jadi
Proposal tugas akhir jadiProposal tugas akhir jadi
Proposal tugas akhir jadichamidun_majid
 
Makalah mikroprosesor jam digital dengan LCD16X2
Makalah mikroprosesor jam digital dengan LCD16X2 Makalah mikroprosesor jam digital dengan LCD16X2
Makalah mikroprosesor jam digital dengan LCD16X2 lely charo
 
Bab vi mikrokontroler
Bab vi mikrokontrolerBab vi mikrokontroler
Bab vi mikrokontrolerIkka Utamy
 
makalah sistem dasar kontrol alat pemotong dengan mikrokontroler
makalah sistem dasar kontrol alat pemotong dengan mikrokontrolermakalah sistem dasar kontrol alat pemotong dengan mikrokontroler
makalah sistem dasar kontrol alat pemotong dengan mikrokontrolerMuhammad Ishaq
 
Pengenalan Sistem Scada
Pengenalan Sistem ScadaPengenalan Sistem Scada
Pengenalan Sistem ScadaDanu Atmojo
 
Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR
Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR
Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR KEN KEN
 
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...Muhammad Kennedy Ginting
 
PID Implementation on Octave
PID Implementation on OctavePID Implementation on Octave
PID Implementation on OctaveLusiana Diyan
 
Kontrol pengawas dan data acquition (SCADA)
Kontrol pengawas dan data acquition (SCADA)Kontrol pengawas dan data acquition (SCADA)
Kontrol pengawas dan data acquition (SCADA)Abdul Hadi
 
SISTEM POWER MONITORING BERBASIS SCADA
SISTEM POWER MONITORING BERBASIS SCADASISTEM POWER MONITORING BERBASIS SCADA
SISTEM POWER MONITORING BERBASIS SCADARidho Jo
 
Automatic Door Control using LM35 Sensor
Automatic Door Control using LM35 SensorAutomatic Door Control using LM35 Sensor
Automatic Door Control using LM35 SensorAghnia Rusydah
 
10 naskah publikasi ersan budi kusuma
10 naskah publikasi ersan budi kusuma10 naskah publikasi ersan budi kusuma
10 naskah publikasi ersan budi kusumaAryanti99
 
2 input output dan internal memori
2 input output dan internal memori2 input output dan internal memori
2 input output dan internal memoriSimon Patabang
 

What's hot (20)

72681707 jam-digital-at-mega-16
72681707 jam-digital-at-mega-1672681707 jam-digital-at-mega-16
72681707 jam-digital-at-mega-16
 
Proposal tugas akhir jadi
Proposal tugas akhir jadiProposal tugas akhir jadi
Proposal tugas akhir jadi
 
2. plc fix
2. plc fix2. plc fix
2. plc fix
 
Makalah mikroprosesor jam digital dengan LCD16X2
Makalah mikroprosesor jam digital dengan LCD16X2 Makalah mikroprosesor jam digital dengan LCD16X2
Makalah mikroprosesor jam digital dengan LCD16X2
 
Bab vi mikrokontroler
Bab vi mikrokontrolerBab vi mikrokontroler
Bab vi mikrokontroler
 
makalah sistem dasar kontrol alat pemotong dengan mikrokontroler
makalah sistem dasar kontrol alat pemotong dengan mikrokontrolermakalah sistem dasar kontrol alat pemotong dengan mikrokontroler
makalah sistem dasar kontrol alat pemotong dengan mikrokontroler
 
Pengenalan Sistem Scada
Pengenalan Sistem ScadaPengenalan Sistem Scada
Pengenalan Sistem Scada
 
Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR
Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR
Pengetahuan Dasar penggunaan Timer dan Counter Microcontroller AVR
 
Laporan fix
Laporan fixLaporan fix
Laporan fix
 
Laporan vanny manpro suhu
Laporan vanny manpro suhuLaporan vanny manpro suhu
Laporan vanny manpro suhu
 
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
Membuat stopwatch menggunakan mikrokontroler atmega16 by muhammad kennedy gin...
 
PID Implementation on Octave
PID Implementation on OctavePID Implementation on Octave
PID Implementation on Octave
 
Kontrol pengawas dan data acquition (SCADA)
Kontrol pengawas dan data acquition (SCADA)Kontrol pengawas dan data acquition (SCADA)
Kontrol pengawas dan data acquition (SCADA)
 
857
857857
857
 
SISTEM POWER MONITORING BERBASIS SCADA
SISTEM POWER MONITORING BERBASIS SCADASISTEM POWER MONITORING BERBASIS SCADA
SISTEM POWER MONITORING BERBASIS SCADA
 
Automatic Door Control using LM35 Sensor
Automatic Door Control using LM35 SensorAutomatic Door Control using LM35 Sensor
Automatic Door Control using LM35 Sensor
 
10 naskah publikasi ersan budi kusuma
10 naskah publikasi ersan budi kusuma10 naskah publikasi ersan budi kusuma
10 naskah publikasi ersan budi kusuma
 
Bilangan asci
Bilangan asciBilangan asci
Bilangan asci
 
2 input output dan internal memori
2 input output dan internal memori2 input output dan internal memori
2 input output dan internal memori
 
Difu difd
Difu difdDifu difd
Difu difd
 

Similar to SIMPLE SYSTEM OPERATING WITH ECLPSE

unit kontrol
unit kontrolunit kontrol
unit kontroldewi2093
 
Aplikasi kendali smart relay pada motor 3 fasa.pptx
Aplikasi kendali smart relay pada motor 3 fasa.pptxAplikasi kendali smart relay pada motor 3 fasa.pptx
Aplikasi kendali smart relay pada motor 3 fasa.pptxArifHendrawan9
 
Konsep dasar sistem kendali digital konsep dasar sistem kendali digital
Konsep dasar sistem kendali digital konsep dasar sistem kendali digitalKonsep dasar sistem kendali digital konsep dasar sistem kendali digital
Konsep dasar sistem kendali digital konsep dasar sistem kendali digitalroy_massolo
 
PS2 Mouse Interfacing dengan pemrograman bahasa C
PS2 Mouse Interfacing dengan pemrograman bahasa CPS2 Mouse Interfacing dengan pemrograman bahasa C
PS2 Mouse Interfacing dengan pemrograman bahasa CJosephine Prasetya
 
Data Logging Tegangan melalui Komunikasi Serial
Data Logging Tegangan melalui Komunikasi SerialData Logging Tegangan melalui Komunikasi Serial
Data Logging Tegangan melalui Komunikasi SerialNur Kholifah Hidayah
 
makalah-termometer-digital
makalah-termometer-digitalmakalah-termometer-digital
makalah-termometer-digitalRendy Wahyudi
 
Control unit dan register output
Control unit dan register outputControl unit dan register output
Control unit dan register outputLusiana Diyan
 
Makalah praktikum mikro
Makalah praktikum mikroMakalah praktikum mikro
Makalah praktikum mikroAnjar OI
 
Cnc 1
Cnc 1Cnc 1
Cnc 1HIMTI
 
Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...
Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...
Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...DestiNuraeni
 
Aplikasi komunikasi serial mikrokontroller
Aplikasi komunikasi serial mikrokontrollerAplikasi komunikasi serial mikrokontroller
Aplikasi komunikasi serial mikrokontrollerWeldan Kusuf
 
Jurnal Tugas Akhir Teknik Elektro
Jurnal Tugas Akhir Teknik ElektroJurnal Tugas Akhir Teknik Elektro
Jurnal Tugas Akhir Teknik ElektroAndrie A Hamali
 
Tutorial membuat project termometer dan jam digital menggunakan codevision av...
Tutorial membuat project termometer dan jam digital menggunakan codevision av...Tutorial membuat project termometer dan jam digital menggunakan codevision av...
Tutorial membuat project termometer dan jam digital menggunakan codevision av...Muhammad Kennedy Ginting
 
alat pencampur minuman berbasis PLC
alat pencampur minuman berbasis PLCalat pencampur minuman berbasis PLC
alat pencampur minuman berbasis PLC5223127190
 

Similar to SIMPLE SYSTEM OPERATING WITH ECLPSE (20)

unit kontrol
unit kontrolunit kontrol
unit kontrol
 
Aplikasi kendali smart relay pada motor 3 fasa.pptx
Aplikasi kendali smart relay pada motor 3 fasa.pptxAplikasi kendali smart relay pada motor 3 fasa.pptx
Aplikasi kendali smart relay pada motor 3 fasa.pptx
 
Konsep dasar sistem kendali digital konsep dasar sistem kendali digital
Konsep dasar sistem kendali digital konsep dasar sistem kendali digitalKonsep dasar sistem kendali digital konsep dasar sistem kendali digital
Konsep dasar sistem kendali digital konsep dasar sistem kendali digital
 
02. Basic PLC.pptx
02. Basic PLC.pptx02. Basic PLC.pptx
02. Basic PLC.pptx
 
PS2 Mouse Interfacing dengan pemrograman bahasa C
PS2 Mouse Interfacing dengan pemrograman bahasa CPS2 Mouse Interfacing dengan pemrograman bahasa C
PS2 Mouse Interfacing dengan pemrograman bahasa C
 
Data Logging Tegangan melalui Komunikasi Serial
Data Logging Tegangan melalui Komunikasi SerialData Logging Tegangan melalui Komunikasi Serial
Data Logging Tegangan melalui Komunikasi Serial
 
makalah-termometer-digital
makalah-termometer-digitalmakalah-termometer-digital
makalah-termometer-digital
 
Control unit dan register output
Control unit dan register outputControl unit dan register output
Control unit dan register output
 
Makalah praktikum mikro
Makalah praktikum mikroMakalah praktikum mikro
Makalah praktikum mikro
 
Document riyan
Document riyanDocument riyan
Document riyan
 
Arduino Basic
Arduino BasicArduino Basic
Arduino Basic
 
Cnc 1
Cnc 1Cnc 1
Cnc 1
 
Cnc 1
Cnc 1Cnc 1
Cnc 1
 
Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...
Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...
Sistem Kendali Volume Air pada Air Isi Ulang dengan Ultrasonic metode PID ber...
 
Aplikasi komunikasi serial mikrokontroller
Aplikasi komunikasi serial mikrokontrollerAplikasi komunikasi serial mikrokontroller
Aplikasi komunikasi serial mikrokontroller
 
Jurnal Tugas Akhir Teknik Elektro
Jurnal Tugas Akhir Teknik ElektroJurnal Tugas Akhir Teknik Elektro
Jurnal Tugas Akhir Teknik Elektro
 
Tutorial membuat project termometer dan jam digital menggunakan codevision av...
Tutorial membuat project termometer dan jam digital menggunakan codevision av...Tutorial membuat project termometer dan jam digital menggunakan codevision av...
Tutorial membuat project termometer dan jam digital menggunakan codevision av...
 
UNIT CONTROL Tgs.ppt
 UNIT CONTROL  Tgs.ppt UNIT CONTROL  Tgs.ppt
UNIT CONTROL Tgs.ppt
 
alat pencampur minuman berbasis PLC
alat pencampur minuman berbasis PLCalat pencampur minuman berbasis PLC
alat pencampur minuman berbasis PLC
 
HMI
HMIHMI
HMI
 

Recently uploaded

2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptxAnnisaNurHasanah27
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++FujiAdam
 
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptxMuhararAhmad
 
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxPembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxmuhammadrizky331164
 
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open StudioSlide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open Studiossuser52d6bf
 
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptxAnnisaNurHasanah27
 
Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaRenaYunita2
 
05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.pptSonyGobang1
 
rekayasa struktur beton prategang - 2_compressed (1).pdf
rekayasa struktur beton prategang - 2_compressed (1).pdfrekayasa struktur beton prategang - 2_compressed (1).pdf
rekayasa struktur beton prategang - 2_compressed (1).pdfssuser40d8e3
 

Recently uploaded (9)

2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
2021 - 10 - 03 PAPARAN PENDAHULUAN LEGGER JALAN.pptx
 
MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++MAteri:Penggunaan fungsi pada pemrograman c++
MAteri:Penggunaan fungsi pada pemrograman c++
 
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
001. Ringkasan Lampiran Juknis DAK 2024_PAUD.pptx
 
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptxPembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
Pembangkit Listrik Tenaga Nuklir Kelompok 1.pptx
 
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open StudioSlide Transformasi dan Load Data Menggunakan Talend Open Studio
Slide Transformasi dan Load Data Menggunakan Talend Open Studio
 
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
2021 - 12 - 10 PAPARAN AKHIR LEGGER JALAN.pptx
 
Strategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di IndonesiaStrategi Pengembangan Agribisnis di Indonesia
Strategi Pengembangan Agribisnis di Indonesia
 
05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt05 Sistem Perencanaan Pembangunan Nasional.ppt
05 Sistem Perencanaan Pembangunan Nasional.ppt
 
rekayasa struktur beton prategang - 2_compressed (1).pdf
rekayasa struktur beton prategang - 2_compressed (1).pdfrekayasa struktur beton prategang - 2_compressed (1).pdf
rekayasa struktur beton prategang - 2_compressed (1).pdf
 

SIMPLE SYSTEM OPERATING WITH ECLPSE

  • 1. LAPORAN PROJEK UJIAN TENGAH SEMESTER SISTEM EMBEDDED Agung Bandaso Karurukan (1110145003) D4 LJ ELKA POLITEKNIK ELEKTRONIKA NEGERI SURABAYA 2015
  • 2. Pendahuluan : Dalam kehidupan sehari hari kegiatan manusia sudah sangat erat hunbungannya dengan sistem otomasi, monitoring ataupun yang lainnya yang dikontrol dengan kontroler. Salah satunya adalah sistem monitoring waktu dalam perlombaan balap mobil, maka untuk memperdalam pengetahuan terhadap system embeded, pada project ujian tengah semester ini, dilakukan perncangan sebuah system embeded untuk memonitoring lama waktu setiap mobil dalam menyelesaikan 4 putaran. Tujuan : Setelah melaksanakan project ini diharapkan mahasiswa dapat lebih mememahami cara pembuatan simple embeded system. Alur proses Alur proses dari system memiliki 3 input sensor untuk masing masing mobil yang diwakili oleh 3 push button, 1 push button untuk tombol start dan stop dan 1 push button untuk reset. Dengan output yang di tampilkan pada komputer menggunakan aplikasi visual basic dengan komunikasi serial. Program akan mendeteksi push button start/stop, reset dan sensor yang selanutnya mengirimkan karakter melalui kabel serial menuju komputer dan diolah menggunakan aplikasi visual basic. Tombol start/stop digunakan untuk memulai dan mengakhiri timer pada mikrokontontroler. Tombol reset digunakan untuk mereset timer. Sensor 1 sampai sensor 3 adalah sensor proximity yang mencatat setiap lap dari setiap mobil yang telah ditempuh. Dimana ketiga sensor diwakili dengan push button. Setiap pushbutton menggunakan mekanisme delay untuk menghilangkan efek bouncing dari setiap penekanan sakelar. Sistem mengirimkan informasi waktu yang ditempuh pada komputer untuk keperluan analisa. Apabila sensor mengalami kerusakan maka sistem akan mengirimkan peringatan berupa kode error yang selanjutnya diolah menjadi kode warna untuk masing masing sensor
  • 3. Gambar.1 flow chart program Start Tekan Start Timer aktif Kirim nilai timer pada port serial Deteksi Penekanan tombol sensor (1,2,3) Timeout? YA aktif Kirim keterangan error TIDAK aktif Kirim data sesuai sensor yang ditekan Masing-masing sensor mencapai 4 kali lap? Kirim nilai analisa melalui port serial YA aktif Tekan Reset End
  • 4. PRINSIP KERJA Prinsip dasar dari penggunaan metode pada tugas ini mengaktifkan 2 fitur yang dimiliki oleh mkrokontroler yaitu serial dan timer. Dimana timer yang digunakan untuk menghasilkan data waktu yang selanjutnya ditampilkan pada visual basic, melalui kabel serial. Saat dilakukan penekanan tombol start stop maka sinyal akan mengirimkan data ke mikrokontroler yang selanjutnya digunakan untuk mengkatifkan/menonaktifkan timer. Timer yang telah diaktifkan akan menghitung setiap detik dan menyimpan data untuk setiap variabel detik, menit dan jam, dan data dikirimkan melalui serial ke vb untuk ditampilkan sebagai data stopwatch. Penekanan tombol reset akan menghentikan kerja timer dan mereset nilai dari masing masing variable detik, menit dan jam, yang selanjutnya data dikirim ke VB dan menampilkan nilai stopwatch. Sensor proximity yang diwakili oleh push button akan akan mengirimkan data detik, menit dan jam yang diambil dari variable yang telah dibuat sebelumnya, sehingga data yang telah didapat tersebut selanjutnya dikrimkan ke VB dan akan ditampilakn untuk masing masing putaran, penekanan tombol diberi metode anti bouncing dengan penambahan delay sehingga jika terjadi bouncing yang diakibatkan oleh pengaruh luar maka data tidak akan mengirim data. Pada penekanan tombol juga diberi metode time out dimana penekanan tombol diberi batas waktu penekanan sehingga jika lama waktu penekanan tersebut terlewati maka mikrokontroler akan mengirimkan data yang memberi tahu bahwa terjadi masalah pada sensor/pushbutton.
  • 5. Gambar2. flow chart program visual basic Pada metode ini data yang dikirimkan dari mikrokontroler akan ditampung pada variable “karakter” pada visual basic dan akan dipilih / parsing sesuai dengan data yang akan ditampilkan. Dimana tiap detik data pada text1 akan diupdate sesuai dengan periode pengiriman data oleh mikrokontroler. DARI MIKROKONTROLER Terima data jam digital (Per detik) Bagi data sesuai karakter Update tampilan jam pada Text1 Konversi data pada tiap sensor Tampilkan data Error dan Lap Terima data reset Clear semua text pada form Terima data Analisa Tampilkan Analisa
  • 6. Alat dan Bahan - Minimum system + ATMEGA 16 -------------- 1x - Kabel komunikasi USB – TTL ------------------ 1x - Push Button ---------------------------------------- 4x - Kabel downloader (USB ASP) ------------------ 1x - Aplikasi Eclipse ----------------------------------- 1x - Aplikasi Visual Basic 6 -------------------------- 1x o Label o Button o Combo box o Text Box o Timer o MsComm Gambar3. minimum system , USB to TTL dan Pushbutton Koneksi pemasangan pushbutton diletakkan pada PORTA.1 – PORTA.5 PORTA.1 = Start stop PORTA.2 = Reset PORTA.3 = sensor 1 PORTA.4 = sensor 2 PORTA.5 = sensor 3
  • 7. Penjelasan program 1. Serial Inisialisasi dan pengkatifan sebuah fitur serial dari mikrokontroler dimaksudkan untuk mikrokontroler yang digunakan dapat berkomunikasi dengan dengan device yang lainnya dimana pda tugas ini adalah komputer. Potongan program void uart_init(void) { UCSRA = (1<<U2X); UCSRB = (1<<TXEN)|(1<<RXEN)|(0<<UCSZ2); UCSRC = (1<<UCSZ1)|(1<<UCSZ0); UBRRH = 0x0; UBRRL = 51; } USART Control and Status Register A-UCSRA memiliki susunan seperti berikut U2X merupakan bit yang mengatur operating mode, pada program ini mode yang digunakan adalah Asyncronous Double Speed. Sehingga untuk perhitungan UBRR guna menyamakan baudrate dapat dihitung dengan
  • 8. Register yang diseting selanjutnya adalah UCSRB RXEN dan TXEN diaktifkan dengan memberi nilai 1, nilai UCSZ0 berkaitan dengan UCSZ1 dan UCSZ2 dimana ketiga kombinasi bit akan memeilih lebar data yang akan digunakan. Pada program digunakan lebar data 8 bit sehingga pengaturan UCZ0 = 1 UCZ1 = 1 UCZ2 = 0 2. Timer Fitur timer yang ada pada atmega 16 ada 3 yaitu timer 0, timer1 dan timer 2. Pada program ini digunakan timer 1 sebagai pewaktu yang dkirim ke VB. Potongan program void TIMER1_init (void) { DDRC=0XFF; TCCR1A |= (0<<WGM11)|(0<<WGM10); TCCR1B |= (0<<WGM13)|(1<<WGM12)|(1<<CS12)|(0<<CS11)|(0<<CS10); //MODE CTC OCR1A=(7812*2); //1 DETIK } Pada potongan progra diatas, DDRC diseting output yang dikoneksikan dengan led yang berfungsi untuk indicator jika terjadi pengiriman data.
  • 9. Timer control Register TCCR1 A Timer control Register TCCR1 B Pada liss program yang diset adalah bit WGM 10, WGM 11, WGM 12 dan WGM 13 dengan konfigurasi : WGM10 : 0 WGM11 : 0 WGM12 : 1 WGM13 : 0 Dari tabel diatas dapat kita lihat bahwa timer yang digunaan adalah timer dengan mode operasi CTC dan maximal/TOP perhitungan data bergantung dari nilai OCR yang kita masukkan. Mode CTC merupakan mode dimana timer akan mengconting dari 0 samapai dengan batas atas TOP/OCR yang diisikan oleh yang memprogram. Contohnya dilakukan seting OCR/TOP adalah 3 maka counter akan menhitung dari 0 sampai pada 3, jika setiap cycle adalah 1 detik maka didapatkan waktu 3 detik, untuk mendapatkan nilai yang lebih lama dapat kita tambahkan nilai OCRnya misalkan 5, maka nilai tundaannya menjadi 5 detik. Nilai OCR dapat dihitung dengan rumus
  • 10. Pada bit Chip select pada program memiliki konfigurasi seperti berikut CS12 = 1 CS11 = 0 CS10 = 0 Dari tabel dibawah dapat dilihat bahwa prescaler yang digunakan adalah 256 Saat nilai OCR telah terpenuhi maka program akan menjalankan subrutin interupt ISR dimana subrutin ini akan mengirimkan data variable jam, menit dan detik setiap 1 detik ISR(TIMER1_COMPA_vect) { kondisi=kondisi+1; detik++; PORTC=kondisi; if(kondisi==255){kondisi=0;} if (detik == 60) { detik = 0; menit= menit + 1; } if (menit == 60) { menit = 0; jam=jam + 1; } if (jam == 24) { jam = 0; } printf("TIME : %d : %d : %dnr",jam, menit, detik); }
  • 11. Gambar pengiriman data subrutin timer pada hyperterminal 3. Reset Penekanan tombol reset difungsikan untuk mereset nilai dari variable, pada potongan program dibawah ini, saat terjadi penekanan tombol, maka variable jam, menit dan detik diseting 0 dan mengirimkan karakter “REST” serta mendisablekan timer. unsigned char resetDetected(void) { Timeout_loop=0; if (!isCheckPIN(btnReset)) { //bila saklar counter di tekan _delay_ms(40); if(!isCheckPIN(btnReset)) { while(!isCheckPIN(btnReset)&& Timeout_loop++<=Timeout_value); if (Timeout_loop>=Timeout_value) { printf("sn"); } else { jam=0; menit=0; detik=0; printf("REST nr"); TIMSK=(0<<OCIE1A); } } } } Gambar pengiriman data seset pada hypertherminal
  • 12. 4. Start/Stop Pada program ini bila saklar ditekan untuk menghilangkan efek bouncing maka diberikan delay 40 ms, selanjutnya pengecheckkan apakah masih terjadi penekanan tombol dan variable startstop =0 (penekanan pertama) jika ya timer akan diaktifkan setelah timer diaktifkan variable startstop diubah menjadi 1. Dan jika terjadi penekanan yang kedua, dimana nilai variable start stop sudah menjadi 1 maka program akan mendeteksi bahwa penekanan telah dilakukan sebanyak dua kali, sehingga yang dilakukan adalah mendisablekan timer. unsigned char startstopDetected(void) { if (!isCheckPIN(btnCount)) { //bila saklar diaktifkan _delay_ms(40); if(!isCheckPIN(btnCount)&&startstop==0) { while(!isCheckPIN(btnCount)); TIMSK=(1<<OCIE1A); //ENABLE INTERUPPT OCR1A; startstop=1; } else if (!isCheckPIN(btnCount)&&startstop==1) { while(!isCheckPIN(btnCount)); TIMSK=(0<<OCIE1A); //ENABLE INTERUPPT OCR1A; startstop=0; } } } 5. Penekanan tombol/sensor Pada program ini hampir sama dengan penekaan tombol reset, hanya jika terjadi penekanan maka mikrokontroler akan mengirimkan sinyal berupa data jam, menit dan detik pada VB dengan contoh data “S1L2 0:2:12” yang selanjutnya akan di proses dan ditampilkan pada label yang dituju. unsigned char sensorDetected(void) { Timeout_loop=0; if (!isCheckPIN(pushButton3)) { //bila saklar counter di tekan _delay_ms(40); if(!isCheckPIN(pushButton3)) { while(!isCheckPIN(pushButton3)&& Timeout_loop++<=Timeout_value); if (Timeout_loop>=Timeout_value)
  • 13. { printf("S1RS ERRORnr"); } else { if(Sensor1<=3) { Sensor1++;printf("S1L%d %d : %d : %d nr",Sensor1,jam,menit,detik); } } } } Gambar pengiriman data sensor 1 – sensor 3
  • 14. Lampiran Gambar. Hasil dari GUI visual basic LIST PROGRAM PADA ECLIPSE #include <avr/io.h> #include <util/delay.h> #include <stdio.h> #include <stdlib.h> #include <avr/interrupt.h> //utility #define checkbit(address,bit) (address & (1<<bit)) #define setbit(address,bit) (address |=(1<<bit)) #define clrbit(address,bit) (address &=~(1<<bit)) #define flipbit(address,bit) (address ^=(1<<bit)) //temporary #define _set(address,bit) (PORT##address |=(1<<bit)) #define _clr(address,bit) (PORT##address &=~(1<<bit)) #define _flip(address,bit) (PORT##address ^=(1<<bit)) #define _setInputPullup(address,bit) (DDR##address &=~(1<<bit));(PORT##address |=(1<<bit)) #define _setOutput(address,bit) (DDR##address |=(1<<bit)) #define _Checkbit2(address,bit) (PIN##address &(1<<bit)) //final #define SET(address) _set(address) #define CLR(address) _clr(address) #define FLIP(address) _flip(address) #define SETInputPullup(address) _setInputPullup(address) #define SETOutput(address)_setOutput(address) #define isCheckPIN(x) _Checkbit2(x) //end utility //DeviceIO #define btnCount A,1
  • 15. #define btnReset A,2 #define pushButton3 A,3 #define pushButton4 A,4 #define pushButton5 A,5 #define ledMerah A,6 //#define ledHijau B,2 char i=0; unsigned char kondisi,detik=0, menit=0, jam=0, startstop=0; static int uart_putchar (char ch,FILE*stream); static int uart_getchar (FILE*stream); static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar,NULL,_FDEV_SETUP_WRITE); static FILE mystdin = FDEV_SETUP_STREAM(NULL, uart_putchar,_FDEV_SETUP_READ); unsigned long Timeout_loop=0; unsigned long Timeout_value=600000; unsigned char Sensor1 = 0; Sensor2 = 0; Sensor3 = 0 ; void uart_init(void) { UCSRA = (1<<U2X); UCSRB = (1<<TXEN)|(1<<RXEN)|(0<<UCSZ2); UCSRC = (1<<UCSZ1)|(1<<UCSZ0); UBRRH = 0x0; UBRRL = 51; } static int uart_putchar (char ch,FILE*stream) { if(ch=='n') uart_putchar('r',stream); loop_until_bit_is_set(UCSRA, UDRE); UDR=ch; return 0; } static int uart_getchar(FILE*stream) { char temp; loop_until_bit_is_set(UCSRA, RXC); temp = UDR; uart_putchar(temp,stream); return (temp); } ISR(TIMER1_COMPA_vect) { kondisi=kondisi+1; detik++; PORTC=kondisi; if(kondisi==255){kondisi=0;} if (detik == 60) { detik = 0; menit= menit + 1; }
  • 16. if (menit == 60) { menit = 0; jam=jam + 1; } if (jam == 24) { jam = 0; } printf("TIME : %d : %d : %dnr",jam, menit, detik); } void TIMER1_init (void) { DDRC=0XFF; TCCR1A |= (0<<WGM11)|(0<<WGM10); TCCR1B |= (0<<WGM13)|(1<<WGM12)|(1<<CS12)|(0<<CS11)|(0<<CS10); //MODE CTC OCR1A=(7812*2); //1 DETIK //TIMSK=(0<<OCIE1A); //ENABLE INTERUPPT OCR1A //sei(); //return; } unsigned char resetDetected(void) { Timeout_loop=0; if (!isCheckPIN(btnReset)) { //bila saklar counter di tekan _delay_ms(40); if(!isCheckPIN(btnReset)) { while(!isCheckPIN(btnReset)&& Timeout_loop++<=Timeout_value); if (Timeout_loop>=Timeout_value) { printf("sn"); } else { jam=0; menit=0; detik=0; printf("REST nr"); TIMSK=(0<<OCIE1A); } } } } unsigned char startstopDetected(void) { if (!isCheckPIN(btnCount)) { //bila saklar diaktifkan _delay_ms(40);
  • 17. if(!isCheckPIN(btnCount)&&startstop==0) { while(!isCheckPIN(btnCount)); TIMSK=(1<<OCIE1A); //ENABLE INTERUPPT OCR1A; startstop=1; } else if (!isCheckPIN(btnCount)&&startstop==1) { while(!isCheckPIN(btnCount)); TIMSK=(0<<OCIE1A); //ENABLE INTERUPPT OCR1A; startstop=0; } } } unsigned char sensorDetected(void) { Timeout_loop=0; if (!isCheckPIN(pushButton3)) { //bila saklar counter di tekan _delay_ms(40); if(!isCheckPIN(pushButton3)) { while(!isCheckPIN(pushButton3)&& Timeout_loop++<=Timeout_value); if (Timeout_loop>=Timeout_value) { printf("S1RS ERRORnr"); } else { if(Sensor1<=3) { Sensor1++;printf("S1L%d %d : %d : %d nr",Sensor1,jam,menit,detik); } if (Sensor1==4){printf("DET1 %d : %d : %dnr",jam,menit,detik);Sensor1++;} } } } if (!isCheckPIN(pushButton4)) { //bila saklar counter di tekan _delay_ms(40); if(!isCheckPIN(pushButton4)) { while(!isCheckPIN(pushButton4)&& Timeout_loop++<=Timeout_value); if (Timeout_loop>=Timeout_value)
  • 18. { printf("S2RS ERRORnr"); } else { if(Sensor2<=3) { Sensor2++;printf("S2L%d %d : %d : %d nr",Sensor2,jam,menit,detik); } if (Sensor2==4){printf("DET2 %d : %d : %dnr",jam,menit,detik);Sensor2++;} } } } if (!isCheckPIN(pushButton5)) { //bila saklar counter di tekan _delay_ms(40); if(!isCheckPIN(pushButton5)) { while(!isCheckPIN(pushButton5)&& Timeout_loop++<=Timeout_value); if (Timeout_loop>=Timeout_value) { printf("S3RS ERRORnr"); } else { if(Sensor3<=3) { Sensor3++;printf("S3L%d %d : %d : %d nr",Sensor3,jam,menit,detik); } if (Sensor3==4){printf("DET3 %d : %d : %dnr",jam,menit,detik);Sensor3++;} } } } } int main(void) { // SETInputPullup(btnCount); SETInputPullup(btnReset); SETInputPullup(btnCount); SETInputPullup(pushButton3); SETInputPullup(pushButton4); SETInputPullup(pushButton5); // SETInputPullup(ledMerah);
  • 20. LIST PROGRAM VISUAL BASIC Option Explicit Dim karakter As Variant Dim kata As String '=================> Data serial yang ditampung Dim serial As String Dim mobil1lap1 As String Private Sub cmdConnect_Click() On Error Resume Next If MSComm1.PortOpen = False Then MSComm1.CommPort = 9 MSComm1.RThreshold = 40 '====================> Penting dok jangan lupa lagi MSComm1.InputLen = 1 MSComm1.Settings = "9600,N,8,1" MSComm1.PortOpen = True cmdConnect.Enabled = False cmdDisconnect.Enabled = True End If Exit Sub End Sub Private Sub cmdDisconnect_Click() If MSComm1.PortOpen = True Then MSComm1.PortOpen = False End If cmdConnect.Enabled = True cmdDisconnect.Enabled = False End Sub Private Sub MSComm1_OnComm() If MSComm1.CommEvent = comEvReceive Then karakter = MSComm1.Input If karakter <> Chr(13) Then 'kalau tidak sama dengan If karakter = Chr(10) Then '13 enter 10 geser kiri 'Text18.Text = kata serial = Mid(kata, 1, 4) 'ambil dari huruf 1 sampai 4 If serial = "TIME" Then Text1.Text = Mid(kata, 7, 11) '==============>TIME:_0_:_0_:_11 If serial = "REST" Then 'Text1.Text = Mid(kata, 5, 10) Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" Text7.Text = "" Text8.Text = "" Text9.Text = "" Text10.Text = "" Text11.Text = "" Text12.Text = "" Text13.Text = "" 'Text14.Text = "-" 'Text15.Text = "-" 'Text16.Text = "-" Text17.Text = "" End If 'SENSOR 1==================== If serial = "S1L1" Then Text2.Text = Mid(kata, 5, 12) If serial = "S1L2" Then Text3.Text = Mid(kata, 5, 12) If serial = "S1L3" Then Text4.Text = Mid(kata, 5, 12) If serial = "S1L4" Then Text5.Text = Mid(kata, 5, 12) If serial = "S1RS" Then Shape1.FillColor = &HFF& 'Text14.Text = Mid(kata, 5, 9) '=================> ERROR 1 'SENSOR 2======================= If serial = "S2L1" Then Text6.Text = Mid(kata, 5, 12) If serial = "S2L2" Then Text7.Text = Mid(kata, 5, 12) If serial = "S2L3" Then Text8.Text = Mid(kata, 5, 12) If serial = "S2L4" Then Text9.Text = Mid(kata, 5, 12) If serial = "S2RS" Then Shape2.FillColor = &HFF& 'Text15.Text = Mid(kata, 5, 9) '=================> ERROR 2
  • 21. 'SENSOR3====================== If serial = "S3L1" Then Text10.Text = Mid(kata, 5, 12) If serial = "S3L2" Then Text11.Text = Mid(kata, 5, 12) If serial = "S3L3" Then Text12.Text = Mid(kata, 5, 12) If serial = "S3L4" Then Text13.Text = Mid(kata, 5, 12) If serial = "S3RS" Then Shape3.FillColor = &HFF& 'Text16.Text = Mid(kata, 5, 9) '===================> ERROR 3 'ANALISA============================ DETX:_13 ======================== If serial = "DET1" Then With Text17 .SelStart = Len(.Text) .SelText = vbNewLine & "Waktu Tempuh Mobil 1 = " & Mid(kata, 6, 12) End With End If If serial = "DET2" Then With Text17 .SelStart = Len(.Text) .SelText = vbNewLine & "Waktu Tempuh Mobil 2 = " & Mid(kata, 6, 12) End With End If If serial = "DET3" Then With Text17 .SelStart = Len(.Text) .SelText = vbNewLine & "Waktu Tempuh Mobil 3 = " & Mid(kata, 6, 12) End With End If kata = "" Else kata = kata & karakter End If End If End If End Sub