13 Haziran 2018 Çarşamba

PIC Mono vumetre

Mono vumetre devresi PIC 16F877 ile yapılmış ve 12voltla çalışır 7805 entegresiyle gerilim PIC'in çalışa bileceği  5volt'a düşürülmüştür. PIC'in A0 ucunu ses sinyali geldiğinde ses sinyalin büyüklüğüne göre ledlerin seviyesi artar veya azalır. Devredeki pot ise hassasiyet ararını ayarlar. Devre sadece B pordu kullanılmıştır. fakat yazılımla diğer portlarıda kullanılarak vumetrenın LED ralığı genişletilebilir. 

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-10k 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