• Tidak ada hasil yang ditemukan

Perancangan Waterpass Digital untuk Mengukur Kemiringan Permukaan Menggunakan Sensor MPU6050 Berbasis ATmega8535

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perancangan Waterpass Digital untuk Mengukur Kemiringan Permukaan Menggunakan Sensor MPU6050 Berbasis ATmega8535"

Copied!
14
0
0

Teks penuh

(1)

LAMPIRAN A

Pada gambar A. di bawah ini menjelaskan tentang layout atau susunan komponen yang mencakup semuanya alat pengukur Indeks Massa

Tubuh selanjutnya dapat di lihat pada gambar sebagai berikut :

(2)

LAMPIRAN A( Lanjutan )

Pada gambar B di bawah ini merupakan suatu output dari sebuah alat pengukur Indeks

Massa Tubuh dapat di lihat pada form di bawah ini sebagai berikut :

(3)

LAMPIRAN A( Lanjutan )

Pada gambar C di bawah ini merupakan output Database alat pengukur Indeks Massa

Tubuh dapat di lihat pada form di bawah ini sebagai berikut :

(4)

LAMPIRAN B

Pada lampiran B ini terdapat 2 program,yaituprogram yang ada di dalam

mikrokontroller dengan menggunakan bahasa C sebagai pembaca data dari sensor

ultrasonic dan sensor load cell dan program VB yang di gunakan pada PC sebagai

output data terakhirselanjutnya dapat di perhatikan proram sebagai berikut :

Program Bahasa C ( Mikrokontroller )

/*****************************************************

This program was produced by the

CodeWizardAVR V2.05.3 Standard

Automatic Program Generator

© Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project :

Version :

Date : 1/26/2013

Author : user

Company : free

Comments:

Chip type : ATmega8535

Program type : Application

AVR Core Clock frequency: 11.059200 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 128

*****************************************************/

#include <mega8535.h>

#include <delay.h>

(5)

#include <stdio.h>

#define ADC_VREF_TYPE 0x40

// Read the AD conversion result

float read_adc(unsigned char adc_input)

{

ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);

// Delay needed for the stabilization of the ADC input voltage

delay_us(10);

// Start the AD conversion

ADCSRA|=0x40;

// Wait for the AD conversion to complete

while ((ADCSRA & 0x10)==0);

ADCSRA|=0x10;

return ADCW;

}

// Declare your global variables here

#define SIG_out PORTB.4

#define SIG_in PINB.4

#define SIG_dir DDRB.4

float US,nilai,nil_ber,nilai3;

unsigned int i;

void tinggi(void)

{

SIG_dir = 1; // set variabel SIG sebagai output

SIG_out = 0; //memulai pengiriman pulsa

delay_us(20); //

SIG_out = 1; //

SIG_dir = 0; // set SIG pin sebagai input

(6)

while (SIG_in); // tunggu pulsa kembali

TCCR1B=0x02; //

while ((!SIG_in) && !(TIFR & 0x80)); //

TCCR1B=0x00; // hentikan timer

US = TCNT1; // simpan nilai TCNT1 ke variabel US

US = US/50; // convert to CM

US = 188-US;

}

void berat(void)

{

nil_ber=0;

for(i=0;i<=10000;i++)

{

nilai=read_adc(0);

nil_ber=nil_ber+nilai;

}

nil_ber=nil_ber/10000;

}

void kirim (void)

{

printf("%0.1f \r",nil_ber); //kirim nilai berat secara serial

printf("%0.1f \r",US); //kirim nilai tinggi secara serial

}

void main(void)

{

// Declare your local variables here

(7)

// Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTA=0x00;

DDRA=0x00;

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTB=0x00;

DDRB=0x00;

// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTC=0x00;

DDRC=0x00;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTD=0x00;

DDRD=0x00;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped

// Mode: Normal top=0xFF

// OC0 output: Disconnected

TCCR0=0x00;

TCNT0=0x00;

(8)

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: Timer1 Stopped

// Mode: Normal top=0xFFFF

// OC1A output: Discon.

// OC1B output: Discon.

// Noise Canceler: Off

// Input Capture on Falling Edge

// Timer1 Overflow Interrupt: Off

// Input Capture Interrupt: Off

// Compare A Match Interrupt: Off

// Compare B Match Interrupt: Off

TCCR1A=0x00;

TCCR1B=0x00;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

OCR1BH=0x00;

OCR1BL=0x00;

// Timer/Counter 2 initialization

// Clock source: System Clock

// Clock value: Timer2 Stopped

// Mode: Normal top=0xFF

// OC2 output: Disconnected

ASSR=0x00;

TCCR2=0x00;

TCNT2=0x00;

(9)

// External Interrupt(s) initialization

// INT0: Off

// INT1: Off

// INT2: Off

MCUCR=0x00;

MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x00;

// USART initialization

// Communication Parameters: 8 Data, 1 Stop, No Parity

// USART Receiver: On

// USART Transmitter: On

// USART Mode: Asynchronous

// USART Baud Rate: 9600

UCSRA=0x00;

UCSRB=0x18;

UCSRC=0x86;

UBRRH=0x00;

UBRRL=0x47;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80;

SFIOR=0x00;

// ADC initialization

// ADC Clock frequency: 86.400 kHz

// ADC Voltage Reference: AVCC pin

// ADC High Speed Mode: Off

// ADC Auto Trigger Source: Free Running

(10)

ADCSRA=0xA7;

SFIOR&=0x0F;

// SPI initialization

// SPI disabled

SPCR=0x00;

// TWI initialization

// TWI disabled

TWCR=0x00;

while (1)

{

tinggi();

berat();

kirim();

}

(11)

Program Visual Basic (VB 6,0)

Dim data As ListItem Dim pilih As Integer

Private Sub cmd_browse_Click() With cd

.Filter = "All Files (*.*)|*.*|Jpeg Files (*.jpg)|*.jpg|Png Files(*.*)|*.png|Bitmap Files(*.*)|*.bmp"

Private Sub cmd_operasi_Click(Index As Integer) Dim Weight, High As Double

(12)

If k >= 25.1 Then If k <= 27 Then

Text3 = "Gemuk ringan" End If

End If

If k > 27 Then

Text3 = "Gemuk berat" End If txt_alamat.Text = lv.SelectedItem.SubItems(2)

If lv.SelectedItem.SubItems(3) = opt_kel(0).Caption Then opt_kel(0).Value = True

Image1.Picture = LoadPicture(lv.SelectedItem.SubItems(7)) Label7.Caption = lv.SelectedItem.SubItems(7)

aktif

Exit Sub ed:

aktif

MsgBox "Direktori/Foto telah diPindah", vbInformation, "Pesan" Case 2 'hapus

If lv.SelectedItem.Selected = False Then

(13)

pilih = 0

del = "Delete From database where NO ='" &lv.ListItems(m).Text & "'"

MsgBox "Data yang Anda Pilih Terhapus", vbInformation, "Pesan" If txt_no.Text = "" Then

MsgBox "Isi no ", vbInformation, "Pesan" ElseIf txt_nama.Text = "" Then

MsgBox "Isi Nama anda", vbInformation, "Pesan" ElseIf txt_alamat.Text = "" Then

MsgBox "Isi Alamat anda", vbInformation, "Pesan"

ElseIf opt_kel(0).Value = False And opt_kel(1).Value = False Then MsgBox "Isi Jenis Kelamin anda", vbInformation, "Pesan" ElseIf Text2(0).Text = "" Then

MsgBox "Berat belum terisi", vbInformation, "Pesan" ElseIf Text2(1).Text = "" Then

(14)

!Jenis_kelamin = opt_kel(1).Caption

MsgBox "Isi Alamat anda", vbInformation, "Pesan"

ElseIf opt_kel(0).Value = False And opt_kel(1).Value = False Then MsgBox "Isi Jenis Kelamin anda", vbInformation, "Pesan" ElseIf Text2(0).Text = "" Then

MsgBox "Berat belum terisi", vbInformation, "Pesan" ElseIf Text2(1).Text = "" Then

Gambar

Gambar A. Layout alat pengukur Indeks Massa Tubuh
Gambar B. Form tampilan outputalat pengukur Indeks Massa Tubuh

Referensi

Dokumen terkait