• Tidak ada hasil yang ditemukan

Perancangan dan Pembuatan AlatPendeteksi Tingkat Kebisingan Bunyi Berbasis Mikrokontroler Dengan Feedback SuaraOperator

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perancangan dan Pembuatan AlatPendeteksi Tingkat Kebisingan Bunyi Berbasis Mikrokontroler Dengan Feedback SuaraOperator"

Copied!
18
0
0

Teks penuh

(1)

LAMPIRAN A

(2)

LAMPIRAN B

Program Keseluruhan Pada Mikrokontroler ATmega8535

/***************************************************** 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 : 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

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

(3)

#define data PORTC.0 #define busy PIND.7

// Alphanumeric LCD functions #include <alcd.h>

#define ADC_VREF_TYPE 0x00 #define PINC.2 1

// Read the AD conversion result

unsigned int 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 unsigned char buff[33];

unsigned int mask,x;

unsigned int intTOTAL, intADC;

float flHASIL, flMEAN,temp,temp1;

void play_voice(unsigned int command) {

(4)

delay_ms(2);

for (mask=0x8000;mask>0;mask>>=1) {

clock=0;

delay_us(50);

if (command & mask) {data=1;} else

{data=0;} delay_us(50);

clock=1;

delay_us(100); if (mask>0x0001) {

delay_ms(2); }

}

delay_ms(100); while (busy==1){} delay_ms(50); }

void main(void) {

// Declare your local variables here

// Input/Output Ports initialization // 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

(5)

// Port B initialization

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

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

PORTB=0x00; DDRB=0x10;

// Port C initialization

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

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

PORTC=0xCC; DDRC=0x03;

// 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;

(6)

// 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;

(7)

// 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: Off

// USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00;

UCSRB=0x08; 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

(8)

// ADC High Speed Mode: Off

// ADC Auto Trigger Source: Free Running ADMUX=ADC_VREF_TYPE & 0xff;

ADCSRA=0xA6; SFIOR&=0x0F;

// SPI initialization // SPI disabled

SPCR=0x00;

// TWI initialization // TWI disabled

TWCR=0x00;

// Alphanumeric LCD initialization // Connections are specified in the

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:

// RS - PORTD Bit 6 // RD - PORTD Bit 5 // EN - PORTD Bit 4 // D4 - PORTD Bit 3 // D5 - PORTD Bit 2 // D6 - PORTB Bit 1 // D7 - PORTD Bit 0 // Characters/line: 16 DDRB.4=1;

lcd_init(16); lcd_gotoxy(0,0); lcd_putsf("esna"); lcd_gotoxy(0,1);

(9)

lcd_clear(); lcd_gotoxy(0,0);

lcd_putsf("noise level:"); delay_ms(1000);

lcd_clear(); while (1) {

// Place your code here intTOTAL = 0;

flHASIL = 0;

for (x=0; x<100; x++) {

intADC = read_adc(0);

intTOTAL = intTOTAL + intADC;

delay_ms(10); // 50 x 10 mS = 500 mS = 0.5 detik

}

flMEAN = (float) intTOTAL / 100; // nilai rata-rata

temp1=flMEAN; temp =temp1/6;

sprintf(buff,"lvl:%2.2f",temp); lcd_gotoxy(0,0);

lcd_puts(buff); printf("%2.2f \r \n",temp); //pengiriman secara serial // delay_ms(50);

if (temp <70) {

lcd_clear();

(10)

lcd_gotoxy(0,0); lcd_puts(buff); lcd_gotoxy(0,1); lcd_putsf("normal"); }

if (temp <89 && temp >70) {

lcd_gotoxy(0,1);

lcd_puts("kebisingan sedang"); PORTB.4=1;

delay_ms(500); PORTB.4=0;

play_voice(1); delay_ms(500);

}

if ( temp >90) {

lcd_gotoxy(0,1);

lcd_puts("kebisingan tinggi"); PORTB.4=1;

delay_ms(1000); PORTB.4=0;

play_voice(2); delay_ms(500);

} }

(11)

LAMPIRAN C

PROGRAM PADA VISUAL BASIC

/****************************************************** Dim c

Dim sensor

Dim db As Database Dim rs As Recordset Public Sub setFlex() Dim T As Single

Set db = OpenDatabase(App.Path & "\daq.mdb") Set rs = db.OpenRecordset("log", dbOpenDynaset) fg.TextMatrix(0, 0) = "Sr No"

fg.TextMatrix(0, 1) = "Time And Date" fg.TextMatrix(0, 2) = "Nilai"

fg.ColWidth(0) = 700 fg.ColWidth(1) = 2000 fg.ColWidth(2) = 900 For i = 0 To 2

fg.Row = 0 fg.Col = i

fg.CellFontBold = True fg.ColAlignment(i) = 3 Next i

End Sub

Sub fillGrid()

Do While Not rs.EOF T = T + 1

fg.TextMatrix(T, 0) = rs.Fields("Sr No")

fg.TextMatrix(T, 1) = rs.Fields("TimeAndDate") fg.TextMatrix(T, 2) = rs.Fields("Nilai")

(12)

If Not rs.EOF Then rs.MoveNext

If fg.TextMatrix(fg.Rows - 1, 2) <> "" Then fg.Rows = fg.Rows + 1

End If Loop End Sub

Private Sub Command1_Click()

Dim Msg, Style, Title, Response, MyString Msg = "hapus semua record??"

Style = vbYesNo + vbCritical + vbDefaultButton2 Title = "Confirmation Box"

Response = MsgBox(Msg, Style, Title) If Response = vbYes Then

Call delRec End If

End Sub

Private Sub Command2_Click() Form2.Show vbModal

End Sub

Private Sub exit_Click() End

End Sub

Private Sub stopcmd_Click() VScroll3.Enabled = True stopcmd.Enabled = False Start.Enabled = True MSComm1.PortOpen = False End Sub

Sub delRec()

(13)

fg.Rows = 2 Call setFlex

totalrec.Caption = "Total Records: 0" End Sub

Private Sub Form_Load() Call setFlex

Call fillGrid

stopcmd.Enabled = False VScroll3.Value = 9 Text4.Text = "9" End Sub

Private Sub MSComm1_OnComm() 'buffer = MSComm1.Input

'If buffer <> "" Then Dim buffer As String 'With Text1

If (MSComm1.CommEvent = comEvReceive) Then buffer = MSComm1.Input

If buffer <> "" Then With Text3

.SelStart = Len(.Text) .SelText = buffer

End With End If

Label1(0).Caption = Text3 Text3.Text = ""

fg.TextMatrix(fg.Rows - 1, 0) = CStr(fg.Rows - 1) fg.TextMatrix(fg.Rows - 1, 1) = CStr(Now)

fg.TextMatrix(fg.Rows - 1, 2) = Label1(0).Caption totalrec.Caption = "Total Records: "

+ CStr(fg.Rows - 1) rs.AddNew

(14)

rs.Fields("TimeAndDate").Value = Now

rs.Fields("Nilai").Value = Val(fg.TextMatrix(fg.Rows– 1,2))

rs.Update

fg.Rows = fg.Rows + 1 End If

End Sub

Private Sub Start_Click()

MSComm1.CommPort = VScroll3.Value MSComm1.Settings = "9600,N,8,1"

MSComm1.RThreshold = 5 'nilai/20=x detik interval MSComm1.InputLen = 1024

MSComm1.PortOpen = True Start.Enabled = False stopcmd.Enabled = True VScroll3.Enabled = False End Sub

Private Sub Form_Unload(Cancel As Integer) If MSComm1.PortOpen = True Then

MSComm1.PortOpen = False End If

End Sub

Private Sub VScroll1_Change(Index As Integer) End Sub

(15)

LAMPIRAN D

Tabel Hasil Pengambilan Data Implementasi Sistem Deteksi Pada

Laboratorium Terpadu FMIPA Universitas Sumatera Utara

(16)
(17)
(18)

Gambar

Tabel Hasil Pengambilan Data Implementasi Sistem Deteksi Pada Laboratorium Terpadu FMIPA Universitas Sumatera Utara

Referensi

Dokumen terkait

Berdasarkan gambar 4.25 dapat ditarik suatu pernyataan bahwa keluaran dari rangkaian keseluruhan Transmitter CDMA adalah data yang dikirim melalui pemancar FM

GAMBAR

Rangkaian sistem minimum mikrokontroler ATMega8535 Dari gambar 3.3, Rangkaian tersebut berfungsi sebagai pusat kendali dari seluruh sistem yang ada.Komponen utama dari rangkaian

Lampiran 2 Gambar Rangkaian Keseluruhan Bluetooth HC-05 dan Bluetooth HC-06.. Lampiran 3 Uji

Gambar Skematik Rangkaian Keseluruhan Alat..

Gambar 8: Mode eksterior pada Android VR 2.10 Tampilan Aplikasi Android VR Gambar 9: Rangkaian keseluruhan alat Rangkaian pada gambar 9 merupakan semua rangkaian dari masing-masing

Pada perancangan deteksi tingkat kebisingan pada perpustakaan polbeng ini secara keseluruhan terdiri dari Mikrokontroler Arduino Uno, rangkaian LED, rangkaian Sensor Suara, rangkaian

Skema Rangkaian Keseluruhan Penjelasan skema rangkaian keseluruhan sebagai berikut : Rancangan pada alat ini adalah pengatur jarak pengunjung musem berbasis mokrokontroler AT89S51