Elektronik / Mikrodenetleyici Projeleri/

PIC18F242 ile dijital voltaj probu

Sponsorlu Bağlantılar

Merhaba 320volt okurları.

Bu yazıda Voltaj Probu Yapımından bahsedeceğiz. Öncelikle Voltaj Probunun ne olduğunu anlatalım.

Voltaj Probu , bir noktadaki voltaj miktarını görüntüler. Ek olarak dijital değeri , lojik durumu gibi özellikleri içerebilir.

Bizim yapacağımız voltaj probu ise PIC18F242 ile yapılmış dijital bir Voltaj Probu. Gerilimi ölçmek için PIC’in Dahili 10-Bit ADC’sini kullanacağız.Ancak ben 10-Bit olarak değil 8-Bit olarak kullandım.

voltaj-probu-olculecek-deger-proteus-isis

LCD’de voltajın dijital ve analog değeri görüntüleniyor.Ledler ise değerin lojik karşılığını gösteriyor.

Devre simülasyon olduğu için kristal osilatör kullanmadım. Devre yapıldığında OSCIN ve OSCOUT uçları arasına genel bir osilatör bağlantısı kurulabilir.

ISIS simülasyonu ve kaynak kodları ektedir.

Başka bir yazıda görüşmek üzere…

Uygulamaya ait proteus isis simülasyon ve C kod dosyaları: PIC18F242 ile dijital voltaj probu

Dosya indirme LINK listesi (HTML formatında) link-13533.zip şifre-pass: 320volt.com

voltage probe.c içeriği;


#include <18f242.h>
#device ADC=8
#use delay(clock = 4000000)

#define param 19.6079
#define use_portb_lcd TRUE
#include <lcd.c>

int8 adc_data;
float adc_voltage;

void main()
{
   set_tris_c(0x00);
   output_c(0x00);
   lcd_init();
   lcd_gotoxy(1,1);
   printf(lcd_putc , "PIC18 Voltage Probe");
   setup_adc(ADC_CLocK_DIV_32);
   setup_adc_ports(ALL_ANALOG);
   set_adc_channel(0);
   delay_ms(20);
   while(1)
   {
      adc_data=read_adc();
      if(adc_data >= 230)
      {
         output_high(pin_c0);
      }
      if(adc_data <= 25)
      {
         output_high(pin_c2);
      }
      if(adc_data >= 25 & adc_data <=230)
      {
         output_high(pin_c1);
      }
      adc_voltage = adc_data * param /1000;
      lcd_gotoxy(1,2);
      printf(lcd_putc , "Voltage = %f , Digital = %3u" , adc_voltage , adc_data);
      delay_us(50);
      output_c(0x00);
   }
}
  • Seyfettin

    #device ADC=8

    bu kısmı 10 yaptığınızda 10 bit oluyor zaten fakat ayrıca

    int adc_data kısmı
    double olarak değiştirmek gerekiyor sanırım.

  • Fatih

    Seyfettin arkadaşım dediğin gibi #device ADC=10 yaparsan 10-bit olur ama analog voltaj değeri için çarpanları değiştirmen gerekir.
    #define param=19.6079 kısmını #define param=4,8876 olarak değiştirmen gerekir.(Kendi yazdığım programla hesapladım.)
    İstersen değişiklik yapabilirsin orası sana kalmış. :)

  • اسددوله بني حمدان الحمداني

    Merhaba size “proteus programında böyle bir elektronik devreleri uygulamak teşekkür