Pada postingan kali ini, kami mencoba untuk menuliskan sebuah postingan yang berkaitan dengan ukur mengukur. hehe :)
Sensor Arus ACS7xx merupakan sebuah sensor arus yang sering digunakan untuk mengukur arus listrik AC maupun DC. Keluaran dari sensor arus ini berupa sinyal analog yang proporsional terhadap arus listrik yang mengalir di antara pin pendeteksi-nya.
Untuk info lebih lanjut, silahkan kunjungi situs resmi nya ya . .
Gambar: Ouput tegangan terhadap arus yang diukur
Sumber : ACS712 datasheet
Berdasarkan pada datasheet nya, tegangan keluar sebesar 2.5 volt dengan nilai arus yang diukur sebesar 0 Amper.
Simulasi menggunakan proteus 8.0: hasil simulasi sudah memenuhi syarat :)
Note. Simulasi menggunakan sensor arus dengan range 20A
Nah, bagaimana jika tegangan yang diukur kurang dari 2,5 V?
ne gambar penampakannya .
bagi yang mau coba - coba, silahkan unduh file simulasi proteus beserta file .hex
bagi yang tidak suka dowload, silahkan copi pastekan skrip di bawah pada CV AVR anda.
Semoga membantu.
Sekian,
/*****************************************************
Project : Sensor Arus ACS7xx
Version : -
Date : 30/03/2015
Author : -
Company : UM
Comments: :)
Chip type : ATmega32
Program type : Application
AVR Core Clock frequency: 12,000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 512
*****************************************************/
#include <mega32.h>
#include <stdlib.h>
#include <lcd.h>
#include <delay.h>
int ARUS;
char nilai[8];
float arus_c;
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#define ADC_VREF_TYPE 0x40
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
void main(void)
{
ACSR=0x80;
SFIOR=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
SFIOR&=0xEF;
lcd_init(16);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("SENSOR ARUS");
lcd_gotoxy(0,1);
lcd_putsf("SENSOR SUHU LM35?");
delay_ms(100);
while (1)
{
lcd_clear( );
ARUS = read_adc(0);
arus_c = ARUS;
arus_c = arus_c / 1024;
arus_c = arus_c * 5;
arus_c = arus_c - 2.5;
arus_c = arus_c * 10;
lcd_gotoxy(0,0);
lcd_putsf("SENSOR ARUS");
ftoa(arus_c,3,nilai);
lcd_gotoxy(0,1) ;
lcd_puts(nilai);
lcd_putsf(" A");
delay_ms(500);
};
}