PİC üzerinden akım okuma

immortall

Üye
Katılım
10 Eki 2018
Mesajlar
72
Puanları
1
Yaş
28
Arkadaşlar merhaba,
Bir proje üzerinde çalışıyorum. Orijinal devre 1 numaradaki gibi. 1 numaradaki devrenin üzerinde birkaç oynama yaparak 2 numaralı devreyi oluşturdum proteusta. Fakat bir türlü akım okuyamadım. Ekranda 0 mA gözükmekte. Yardımcı olursanız sevinirim.
2) Ayrıca akım RA1 üzerinden okunmakta. RA1 önüne 100k gibi bir direnç eklemek gerekli mi(Pini yüksek akımdan korumak için) ?

CCS C kodu aşağıdaki gibi;
Kod:
#include <bitirme_projesi.h>
#define GLCD_CS1     PIN_B0   
// Chip Selection 1
#define GLCD_CS2     PIN_B1   
// Chip Selection 2
#define GLCD_DI      PIN_B2   
// Data or Instruction input
#define GLCD_RW      PIN_B3   
// Read/Write
#define GLCD_E       PIN_B4   
// Enable
#define GLCD_RST     PIN_B5   
// Reset
#include <HDM64GS12.c>
#include <graphics.c>
#use delay(clock=4000000)

unsigned int16  adc2;
float sarj_akimi;
unsigned char akim_sarj[15];




void akim_okuma(void)
{
   set_adc_channel(1);
   delay_us(20);
   adc2=read_adc();
   sarj_akimi=(adc2*4.89)/(5.0);
   sprintf(akim_sarj, "Isarj= %f mA",sarj_akimi);
   glcd_text57(1,10,akim_sarj,1,ON);
   delay_ms(100);
}

   
void main()
{
   setup_adc(ADC_CLOCK_INTERNAL);   
   setup_adc_ports(AN0_AN1_AN2_AN3_AN4);
   glcd_init(ON);
   set_tris_a(0x17);
   set_tris_d(0x00);
   
  
   while(TRUE)
   {
      akim_okuma();
  
   }

}
 

Ekli dosyalar

  • 1.jpg
    1.jpg
    53.4 KB · Görüntüleme: 26
  • 2.PNG
    2.PNG
    138.2 KB · Görüntüleme: 24
Proteus akımı gostermiyor mu. Yani oradaki voltajı.
 
Son düzenleme:
Arkadaşlar merhaba,
Bir proje üzerinde çalışıyorum. Orijinal devre 1 numaradaki gibi. 1 numaradaki devrenin üzerinde birkaç oynama yaparak 2 numaralı devreyi oluşturdum proteusta. Fakat bir türlü akım okuyamadım. Ekranda 0 mA gözükmekte. Yardımcı olursanız sevinirim.
2) Ayrıca akım RA1 üzerinden okunmakta. RA1 önüne 100k gibi bir direnç eklemek gerekli mi(Pini yüksek akımdan korumak için) ?

CCS C kodu aşağıdaki gibi;
Kod:
#include <bitirme_projesi.h>
#define GLCD_CS1     PIN_B0  
// Chip Selection 1
#define GLCD_CS2     PIN_B1  
// Chip Selection 2
#define GLCD_DI      PIN_B2  
// Data or Instruction input
#define GLCD_RW      PIN_B3  
// Read/Write
#define GLCD_E       PIN_B4  
// Enable
#define GLCD_RST     PIN_B5  
// Reset
#include <HDM64GS12.c>
#include <graphics.c>
#use delay(clock=4000000)

unsigned int16  adc2;
float sarj_akimi;
unsigned char akim_sarj[15];




void akim_okuma(void)
{
   set_adc_channel(1);
   delay_us(20);
   adc2=read_adc();
   sarj_akimi=(adc2*4.89)/(5.0);
   sprintf(akim_sarj, "Isarj= %f mA",sarj_akimi);
   glcd_text57(1,10,akim_sarj,1,ON);
   delay_ms(100);
}

  
void main()
{
   setup_adc(ADC_CLOCK_INTERNAL);  
   setup_adc_ports(AN0_AN1_AN2_AN3_AN4);
   glcd_init(ON);
   set_tris_a(0x17);
   set_tris_d(0x00);
  
 
   while(TRUE)
   {
      akim_okuma();
 
   }

}

Not: 2 numaralı devrede batarya 12V tur.
Proteus akımı gostermiyor mu. Yani oradaki voltajı.
Resimdeki gibi 50 mA okuyor mesela ama grafik LCD de 0 mA yazıyor. Bir de yazdığım kod doğru acaba o yüzden sormuştum (Hesap kısmı).
 

Ekli dosyalar

  • akim.PNG
    akim.PNG
    128.3 KB · Görüntüleme: 15
%.3f yaz mesela
 
Akım okuyamazsın.Gerilim değeri okuyabilirsin pic içinde.Okuduğun gerilimi klasik v=ı.r den hesaplarsın fakat bilmen gerek direnç değeri gerekli o değeride ilgili bacağa bağladığın direnç ile hesaplayabilirsin.
 
Akım okuyamazsın.Gerilim değeri okuyabilirsin pic içinde.Okuduğun gerilimi klasik v=ı.r den hesaplarsın fakat bilmen gerek direnç değeri gerekli o değeride ilgili bacağa bağladığın direnç ile hesaplayabilirsin.
5 ohm luk direnç üzerinden bir hesaplama yaptım fakat olmadı. (
(adc2*4.89)/(5.0); )
 
Akımın sıfırdan farklı görünmesi için bataryayı şarj etmen gerekli.
Şarj olması için Röleyi çekmen gerekli.
Kodunda röleyi çalıştıran bir şey yok.
RA3 high olmalı.
 
Ayrıca Rölenin çalışabilmesi, RA3 'ün digital çıkış olması için;
setup_adc_ports(AN0_AN1_AN2_AN3_AN4);
satırında AN3 olmamalı.
 

Forum istatistikleri

Konular
127,947
Mesajlar
913,820
Kullanıcılar
449,593
Son üye
purplelake

Yeni konular

Geri
Üst