PİC üzerinden akım okuma

immortall

Üye
Katılım
10 Eki 2018
Mesajlar
56
Puanları
3
Yaş
24
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

  • 53.4 KB Görüntüleme: 18
  • 138.2 KB Görüntüleme: 17

silvestir

Profesyonel Üye
Katılım
10 Ağu 2011
Mesajlar
1,873
Puanları
283
Proteus akımı gostermiyor mu. Yani oradaki voltajı.
 
Son düzenleme:
Konu Sah
I

immortall

Üye
Katılım
10 Eki 2018
Mesajlar
56
Puanları
3
Yaş
24
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

  • 128.3 KB Görüntüleme: 10

silvestir

Profesyonel Üye
Katılım
10 Ağu 2011
Mesajlar
1,873
Puanları
283
%.3f yaz mesela
 
Katılım
18 Haz 2018
Mesajlar
51
Puanları
3
Konum
Selçuklu
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.
 
Konu Sah
I

immortall

Üye
Katılım
10 Eki 2018
Mesajlar
56
Puanları
3
Yaş
24
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); )
 

ISMAILY

Üye
Katılım
9 Nis 2010
Mesajlar
403
Puanları
18
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ı.
 

ISMAILY

Üye
Katılım
9 Nis 2010
Mesajlar
403
Puanları
18
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ı.
 

Sponsor Bağlantı

Forum istatistikleri

Konular
113,112
Mesajlar
796,026
Kullanıcılar
415,225
Son üye
legimir12

Yeni konular

Üst