13 Haziran 2018 Çarşamba

PIC LED'li akü seviye ölçer voltmetre

Devre akü gerilimini ölçmek için tasarlandı fakat programdaki kod değerlerini değiştirerek farklı amaçlar için voltmetre yapılabilir.12voltl'a çalışır ve 7805 regüle entegresiyle gerilim 5volt'a düşürülerek pıc16F877 entegresini besler. Devre aküdeki gerilimi ölçer ve 100k'lık trimpot kalibrasyon ayarı için kullanılır. 

MALΖEME LİSTESİ:

1-7805
2-4MHz kristal
3-2adet 22pf
4-100nf
5-4k7
6-8adet 330hom
7-8adet kırmızı LED
8-16F877
9-100k
10-100k trimpot


DEVRE ŞEMASI:











CCSC KODU:
#include <16f877.h>
#device ADC=10
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(d)
#use fast_io(c)

unsigned long int bilgi;

float volt,voltaj;

void main()

{
set_tris_c(0x00);
set_tris_d(0x00);
set_tris_a(0xFF);
output_d(0x00);
output_c(0x00);
setup_adc(adc_clock_div_32);
setup_adc_ports(AN0);
set_adc_channel(0);
delay_us(20);

while(1)

{
bilgi=read_adc();
volt=(0.0048828125*bilgi)*1000;
voltaj=(volt/10)+2;

if(voltaj>140)

{output_high(pin_b7);}
else 
output_low(pin_b7);

if(voltaj>135)

{output_high(pin_b6);}
else 
output_low(pin_b6);

if(voltaj>130)

{output_high(pin_b5);}
else 
output_low(pin_b5);

if(voltaj>125)

{output_high(pin_b4);}
else 
output_low(pin_b4);

if(voltaj>120)

{output_high(pin_b3);}
else 
output_low(pin_b3);

if(voltaj>115)

{output_high(pin_b2);}
else 
output_low(pin_b2);

if(voltaj>110)

{output_high(pin_b1);}
else 
output_low(pin_b1);

if(voltaj>105)

{output_high(pin_b0);}
else 
output_low(pin_b0);
delay_ms(100);
 }

}

Hiç yorum yok:

Yorum Gönder