Thursday, May 12, 2011

Aplikasi-002. Pengukur Kecepatan Putaran Motor (Seri Pemantauan Kecepatan [I])

http://depokinstruments.com/2010/08/10/aplikasi-002-pengukur-kecepatan-putaran-motor-seri-pemantauan-kecepatan-i-masih-dalam-pengembangan/


Aplikasi-002. Pengukur Kecepatan Putaran Motor (Seri Pemantauan Kecepatan [I])

Abstrak:

Ada banyak metode dalam mengukur kecepatan putaran motor, salah satunya adalah yang digunakan pada Aplikasi ini, yaitu dengan menggunakan optocoupler tipe slot dan sebuah piringan derajat yang diintegrasikan pada mekanik motor. Piringan derajat yang telah diberi lubang-lubang berjarak sama persis akan ikut berputar saat motor berputar, dan lubang-lubang tersebut akan membuat optocoupler menghasilkan pulsa-pulsa akibat dari terbuka-tertutup-nya slot di antara LED-IR dan phototransistor pada optocoupler. DI-REV1 (DI-Rotary Encoder Versi #1) adalah modul produksi DEPOK INSTRUMENTS yang terdiri atas dua bagian: Piringan derajat, dan rangkaian optocoupler tipe slot. Modul ini sangat cocok digunakan untuk menghitung putaran motor. Modul inilah yang menjadi sensor utama yang digunakan dalam Aplikasi ini. Untuk CPU (Central Processing Unit) –nya digunakan DI-Smart AVR System yang adalah sistem mikrokontroler yang berbasis ATmega8535(L). Dan untuk menampilkan hasil dari perhitungan kecepatan digunakan DI-Smart LCD16X2 Board, yaitu modul LCD yang dapat menampilkan karakter ASCII sebanyak 16 kolom x 2 baris. Hasil dari perhitungan kecepatan putaran motor dalam Aplikasi 002 (Seri Pemantauan Kecepatan [I]) – Pengukur Keceptan Putaran Motor ini adalah dalam satuan meter per detik.

Modul-Modul Depok Instruments yang Mendukung:

* DI-Smart AVR System (Sistem Minimum Mikrokontroler AVR ATMEGA8535)
* DI-Smart Extension Board
* DI-Smart LCD16X2 Board
* DI-REV1 (DI-Rotary Encoder Versi #1)

Blok Diagram:

Flowchart:

Instalasi:

1. Pasangkan Piringan Derajat pada motor yang akan diukur kecepatan putarannya.
2. Posisikan Piringan Derajat pada slot sensor optocoupler rangkaian sensor DI-REV1.
3. Hubungkan data keluaran modul sensor DI-REV1 pada terminal D0 DI-Smart Extension Board.
4. Hubungkan modul DI-Smart Extension Board pada Port-B DI-Smart AVR System (PORTB.0 = Data Sensor).
5. Hubungkan modul DI-Smart LCD16X2 Board pada Port-D DI-Smart AVR System.
6. Hubungkan sumber tegangan 9-12 VDC pada terminal power DI-Smart AVR System.
7. Unduh skrip program di bawah ini.
8. Selamat mencoba.

Skrip Program:

I. BASCOM AVR:

$regfile = “m8535.dat”
$crystal = 8000000
Config Lcd = 16 * 2 $lib “lcd4busy.Lbx”
Const _lcdport = Portd
Const _lcdddr = Ddrd
Const _lcdin = Pind
Const _lcd_e = 2 Const _lcd_rw = 1
Const _lcd_rs = 0

Cursor Off

Cls Const

N = 56
Const R = 2.2
Const Dua_pi = 6.28

Dim Rps As Single
Dim V As Single
Dim Buffs As String * 16

Config Timer1 = Counter , Edge = Falling , Prescale = 1
Stop Timer1

Do

Timer1 = 0
Start Timer1
Wait 1
Stop Timer1

Rps = Timer1 / N
V = Rps * Dua_pi
V = V * R
Buffs = Fusing(rps , “#.##”)

Cls
Lcd Buffs ; ” rps”
Buffs = Fusing(v , “#.##”)
Lowerline
Lcd Buffs ; ” cm/s”

Loop

II. Code Vision AVR:

/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project :
Version :
Date : 8/12/2010
Author :
Company :
Comments:

Chip type : ATmega8535
Program type : Application
Clock frequency : 8.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 128
*****************************************************/

#include

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×12 ;PORTA
#endasm
#include
#include
#include

unsigned char sbuff[16];
#define r 2.2f
#define n 56
#define dua_pi 6.28f

float v,rps;

void main(void)
{

TCCR1A=0×00;
TCCR1B=0×00;
TCNT1H=0×00;
TCNT1L=0×00;

ACSR=0×80;

// LCD module initialization
lcd_init(16);
lcd_clear();
lcd_putsf(“Jml Pulsa/detik”);

while (1)
{
TCNT1H=0×00;
TCNT1L=0×00;
TCCR1B=0×06;
delay_ms(1000);
TCCR1B=0;

rps=(float) TCNT1/n;
v=rps*dua_pi*r;

ftoa(rps,2,sbuff);
lcd_clear();
lcd_puts(sbuff);
lcd_putsf(” rps”);

ftoa(v,2,sbuff);
lcd_gotoxy(0,1);
lcd_puts(sbuff);
lcd_putsf(” cm/s”);

};
}

No comments:

Post a Comment