LAMPIRAN A RANGKAIAN LENGKAP

+ 5V + 5V

10 uF 9

(ADC7)PA7 (ADC6)PA6 (ADC5)PA5 (ADC4)PA4 (ADC3)PA3 (ADC2)PA2 (ADC1)PA1 (ADC0)PA0

33 34 35 36 37 38 39 40

(SCK)PB7 (MISO)PB6 (MOSI)PB5 (SS)PB4 (AIN1/INT2)PB3 (AIN1/OC0)PB2 (T1)PB1 (T0/XCK)PB0

8 7 6 5 4 3 2 1

(TOSC2)PC7 (TOSC1)PC6 PC5 PC4 PC3 PC2 (SDA)PC1 (SCL)PC0

29 28 27 26 25 24 23 22

(OC2)PD7 (ICP)PD6 (OC1A)PD5 (OC1B)PD4 (INT1)PD3 (INT2)PD2 (TXD)PD1 (RXD)PD0

21 20 19 18 17 16 15 14

RESET

GND 12

XTAL2

13 + 5V 32 30 31

XTAL1

30 pF

GND

30 pF 330 Ohm

10 11 LED

AREFF AVCC GND VCC GND

GND

R1 + 5V

R2 15

2

3

LCD 2 x 16 7 8 9 10 11 12 13 14

4 5 6

1 16

GND

GND

3,5 to 20 Volt sensor Vcc

V out

Gnd + 12 V

10 K

M Kapasitor

Dioda

MEGA8535-P

GND

TIP 122

GND 12 Volt AC

+ 12 V

Dioda 220 Volt AC

CT

Saklar

Dioda

Regulator + 5V

7805

Dioda

300 Ohm 1K 2200 uF

100 uF

1 uF

LED

LED

12 Volt AC

GND

Universitas Sumatera Utara

LAMPIRAN B PROGRAM DI MIKROKONTROLER ATMEGA 8535 /***************************************************** This program was produced by the CodeWizardAVR V1.25.8 Standard Automatic Program Generator © Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 20/07/2012 Author : Roni Sinaga Company : Comments:

Chip type : ATmega8535 Program type : Application Clock frequency : 11,059200 MHz Memory model : Small External SRAM size : 0 Data Stack size : 128 *****************************************************/ #include #ifndef __SLEEP_DEFINED__ #define __SLEEP_DEFINED__ .EQU __se_bit=0x40 .EQU __sm_mask=0xB0 .EQU __sm_powerdown=0x20 .EQU __sm_powersave=0x30 .EQU __sm_standby=0xA0 .EQU __sm_ext_standby=0xB0 .EQU __sm_adc_noise_red=0x10 .SET power_ctrl_reg=mcucr #endif int frekuensi=0; int a, pwm, nilai, temp, pulsa; char data[16]; // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x15 ;PORTC #endasm #include #include // External Interrupt 0 service routine interrupt [EXT_INT0] void ext_int0_isr(void)

Universitas Sumatera Utara

{ // Place your code here frekuensi++; } // Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) { // Place your code here a++; if (a==900) {a=0;} if(a> 8; TCNT1L=0xD5D0 & 0xff; pulsa=frekuensi; pulsa=pulsa*60/100; if(pulsa (LAST_ADC_INPUT-FIRST_ADC_INPUT)) input_index=0; ADMUX=(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff))+input_index; // Delay needed for the stabilization of the ADC input voltage

Universitas Sumatera Utara

delay_us(10); // Start the AD conversion ADCSRA|=0x40; } // Declare your global variables here 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 PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=Out Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=0 State1=T State0=T PORTB=0x00; DDRB=0x08; // 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: 11059,200 kHz // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x01;

Universitas Sumatera Utara

TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 10,800 kHz // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: On // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x05; TCNT1H=0xD5; TCNT1L=0xD0; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: On // INT0 Mode: Falling Edge // INT1: Off // INT2: Off GICR|=0x40; MCUCR=0x02; MCUCSR=0x00; GIFR=0x40; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x05; // Analog Comparator initialization

Universitas Sumatera Utara

// Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC Clock frequency: 691,200 kHz // ADC Voltage Reference: AVCC pin // ADC High Speed Mode: Off // ADC Auto Trigger Source: None ADMUX=FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff); ADCSRA=0xCC; SFIOR&=0xEF; // LCD module initialization lcd_init(16); // Global enable interrupts #asm("sei") lcd_gotoxy(0,0); lcd_putsf("My Project"); lcd_gotoxy(0,1); lcd_putsf("Ready"); delay_ms(1000); lcd_clear(); pwm=0; while (1) { // Place your code here nilai=adc_data[0]; sprintf(data,"ADC = %d",nilai); lcd_gotoxy(0,0); lcd_puts(data); sprintf(data,"Put = %d Rpm",pulsa); lcd_gotoxy(0,1); lcd_puts(data); if(pulsa=100) {pwm=pwm+30;} if(temp=50) {pwm=pwm+10;} if(temp=2) {pwm=pwm+1;} } else { temp=pulsa-nilai; if(temp>=100) {pwm=pwm-30;} if(temp=50) {pwm=pwm-10;}

Universitas Sumatera Utara

if(temp=2) {pwm=pwm-1;} } sprintf(data,"%d",pwm); lcd_gotoxy(12,0); lcd_puts(data); delay_ms(500); lcd_clear(); }; }

Universitas Sumatera Utara

LAMPIRAN FOTO ALAT

Foto alat : Putaran 150 rpm tanpa beban

Universitas Sumatera Utara

Foto alat : Putaran 150 rpm dengan beban

Universitas Sumatera Utara

Universitas Sumatera Utara

Universitas Sumatera Utara

Universitas Sumatera Utara

Universitas Sumatera Utara