Kamis, 08 Mei 2014

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



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 Smart AVR System yang adalah sistem mikrokontroler yang berbasis ATmega8535(L). Dan untuk menampilkan hasil dari perhitungan kecepatan digunakan 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 (Seri Pemantauan Kecepatan [I]) – Pengukur Keceptan Putaran Motor ini adalah dalam satuan meter per detik.

Modul-Modul Depok Instruments yang Mendukung:
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 REV1.
  3. Hubungkan data keluaran modul sensor REV1 pada terminal D0 Smart Extension Board.
  4. Hubungkan modul Smart Extension Board pada Port-B Smart AVR System (PORTB.0 = Data Sensor).
  5. Hubungkan modul Smart LCD16X2 Board pada Port-D Smart AVR System.
  6. Hubungkan sumber tegangan 9-12 VDC pada terminal power 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 <mega8535.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0×12 ;PORTA
#endasm
#include <lcd.h>
#include <delay.h>
#include <stdlib.h>
unsigned char sbuff[16];
#define r 2.2
#define n 56
#define dua_pi 6.28
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”);

};
}

0 komentar:

Posting Komentar