ACS712-kapak-resmi

ACS712 Akım Sensörü – MikroC Kütüphanesi

This post is also available in: English



ACS712 Akım Sensörü

  • ACS712 sensörü “hall-effect” sistemi ile üzerinden geçen akımı hassas bir şekilde ölçebilir.
  • “Hall-efekt” sistemi bir nüve içerisinden akım geçen tel geçirildiğinde oluşan manyetik alandan yola çıkarak akımı ölçer.
  • ACS712 hem AC hem DC akımı ölçebilir
  • ACS712 bu konuda oldukça başarılıdır. Ancak bu entegreyi satın alırken akım değerini dikkate almalıyız. Buna göre ACS712  üç tipte üretilmiştir
    • En fazla 5A ölçeni
    • En fazla 20A ölçeni
    • En fazla 30A ölçeni
  • Eğer yukarıdaki değerlerden yüksek akım değerine maruz kalırsa ölçüm bacakları yanacaktır.
  • ACS712 nin diğer bir özelliği akım uçlarına yüksek akım veya voltaj gelse dahi bunu PIC veya MCU ya iletmez yani içerisinde bir izolasyon mevcuttur bu şekilde kendisi bozulsa da daha ileriye bu yüksek voltaj ve akımı iletmez.
  • Her ne kadar manyetik alan ile ölçüm yapsa da mıknatıs veya benzer manyetik alanlardan etkilenmez.
  • Belki bence tek kötü yanı analog çıkış vermesidir bu sebeple ADC işlemi yapılması gerekecektir.

ACS712  ile Akım Nasıl Hesaplanır

  • Bunun anahtarı elbette ACS712 kullanma kılavuzunda saklıdır(datasheet).
  • Aşağıdaki resim kılavuzdan alınmıştır. Her akım için farklı bir değer verildiğine dikkat edin.
acs712-katsayi-degerleri
ACS712 Akım Hesap Katsayıları
  • Yukarıdaki tabloya göre
    • 5 Amperlik entegre için  – > 1 ampere karlşılık 185 mV
    • 20 Amperlik entegre için – > 1 ampere karşılık 100 mV
    • 30 Amperlik entegre için – > 1 ampere karşılık 66 mV değer verilmiştir.
  • PIC ler için hesaplayacak olursak . Genel olarak PIClerde 10 bit ADC bulunur.(210=1024)
  • Besleme voltajı yani aynı zamanda referans voltajı 5 volttur
  • Ayrıca yine kılavuzdan öğrendiğimize göre ACS712 “0”(sıfır) amperde iken 2,5 volt çıkış vermektedir.
  • Bu veriler ışığında temel mantığı özetlemek gerekirse
    • Yapılan ölçümden 2.5 voltu çıkardığımızda her 185mV 1 amper anlamına gelir ( 5 Amperlik ACS712 için)
  • Hesaplama Yapacak Olursak
    • Örneğin PIC ile ADC den 550 değerini okuyoruz
    • (5/1024)=0,0048828125 değeri elde ederiz bu her voltaj için ADC değerimizdir
    • (5/1024)*550 = 2,685546875 değeri elde ederiz. Bu aslında voltaj değeridir.
    • Daha önce dediğimiz gibi 2.5 voltu çıkarmamız gerekir
    • 2,6855468752,5= 0,185546875 değer elde ettik.
    • 0,185546875/0,185 =1,002 değeri elde ettik yani ADC den 550 değeri okunduğunda ACS712 den geçen akım 1,002 Amperdir.( 1 amper 2mA)
    • Yukarıda neden 185 değilde 0,185 e böldük. Çünkü 185 mV olduğuna dikkat edin burada volt olarak işlem yaptığımızdan mV u 1000 e bölerek Volt değerine çevirdik.

 

ACS712 Pin İşlevleri

acs712-pinler-1
ACS712 Pinleri
Numara Adı Açıklama
 1 – 2  IP+ DC akımda + kutup bağlanıyor – AC akımda fark yoktur
 3 – 4  IP- DC akımda – kutup bağlanıyor – AC akımda fark yoktur
 5  GND Topraklama ucu
 6 FILTER Harici kondansatör bağlanarak çıkışı düzenler
 7 VIOUT Analog çıkış ucu MCU yada PIC e bağlanır
 8 VCC  Besleme ucu +5 volt bağlanır

 

ACS712 Devre Şeması

acs712-devre-semasi
ACS712  Devre Şeması
  • Devrede 5 amperlik ACS712 kullandığım için 4 Amperlik cam sigorta kullandım 4 amperden fazla akım çekilirse sigorta yanarak entegreyi koruyabilir
  • ACS712 nin ölçüm uçları birleştirildi. Ancak isternirse ileride yaşanacak bir yanma olayına karşı tek uç bağlanıp diğer uç yedek olarak bırakılabilir.
  • Akım ölçümü volt ölçümü aksine seri olarak yapılır bu sebepler güç kaynağı ve buna bağlanacak yük ( motor-led-vs.) seri olarak bağlanıp devre tamamlanmalıdır.

Gerekli Malzemeler

  1. ACS712 entegresi
  2. 0.1uf-63v elektrolit kondansatör
  3. 1nf polyester kondansatör
  4. 4A cam sigorta ve sigorta yuvası
  5. SOIC – DIP çevirici

Devrenin Yapılışı

acs712-akim-kontrol-devresi-3
ACS712 Test Devresi
  • Devre test amacı ile yapıldığından delikli pertinaksa kuruldu
  • Sağda bulunan 2 adet çıkış akım ölçüm uçlarıdır
  • Parçayı korumak için 4A cam sigorta takıldı

 

acs712-akim-kontrol-devresi-1
ACS712 Test Devresi
  • Soldan çıkan uçlar mavi analog çıkış kırmızı ve siyah besleme uçlarıdır. (+5v)

 

acs712-akim-kontrol-devresi-2
ACS712 Test Devre
  • Entegre SOIC tip olduğundan çevirici yardımı ile pinler lehimlendi.
  • Bu tarz çeviriciler hazır olarak satılmaktadır.

 

acs712-dip-cevirici
SOIC ten DIP tipine çevirici
  • Yukarıdaki çevirici birçok çalışmada test devreleri için özellikle çok işe yaramaktadır.
  • SOIC ten DIP e çevrim yaparken arka yüzü de  daha dar tip entegrelere uygundur.
  • Boyutunu anlamak için aşağıdaki fotoğrafa bakabilirsiniz.

 

acs712-dip-cevirici-2
SOIC ten DIP tipine çevirici
  • Görüldüğü gibi oldukça küçük boyutlu ve hayat kurtaran bir parça.

 

ACS712 MikroC Kütüphanesi

  • ACS712 ile akım ölçmek amacı ile MikroC de bir kütüphane yazdım aslında kütüphane bile denemez sadece tek fonksiyondan oluşmaktadır.
  • ADC işlemleri yapılacağından MikroC nin standart ADC kütüphanesi projeye eklenmelidir.
  • Fonksiyon mA olarak değer geri döndürür.
  • Akım ölçümlerinde dalgalanma olması normal bir durumdur.Bu entegrenin hassasiyetinden kaynaklanmaktadır.
  • 10 Amperden yukarısının tehlikeli olduğunu asla unutmayın.

Fonksiyonlar

  • Tek fonksiyon bulunur bu fonksiyon ACS712 den geçen akımı bize int tipinde mA( miliamperl) olarak bildirir.

ACS712_AKIM_OLCME Fonksiyonu

Fonksiyon : unsigned int ACS712_AKIM_OLCME(unsigned char SENSOR_TIPI,unsigned char ANALOG_KANAL)

Amacı : ACS712 den geçen akımı hesaplar

Parametreler :

  • SENOSOR_TIP : Kullanılan ACS712 nin kaç amperlik olduğu belirtilir . Sadece aşağıdaki değerleri alabilir aksi halde hata kodu olan “0” değeri döndürecektir.
    • 5 = 5 amperlik sensör
    • 20 = 20 amperlik sensör
    • 30 = 30 amperlik sensör
  • ANALOG_KANAL : PIC in hangi adc kanalından ölçüm yapacağı belirtilir.

Kullanım Şekli :

ACS712_AKIM_OLCME(5,4) ;//5 amperlik sensör AN4 ten okuma yapılacak

Geri Bildirim :

  • int tipinde veriyi mA(miliamper) olarak geri döndürür

 

Fonksiyonların Uygulanması

Pin Tanımlaması

sbit ACS712_VERI_PIN at RA5_bit ;               //ACS712 çıkış ucu bağlantı pini
sbit ACS712_VERI_PIN_Direction  at TRISA5_bit; //ACS712 çıkış ucu bağlantı pini
  • Pin tanımlamaları yapılarak kod yazılmaya başlanır aksi halde program hata verecektir.

 

Akım Okuma

void  main()
{
    char deger[15];
    unsigned char i=0,j=1;
    unsigned int ercan=0;


    ADCON1=0b00000001;
    CMCON=7;

   ADC_Init();//PIC adc işlemleri başlatılmalıdır
   delay_ms(100);
   SAP1024_INIT(240,128,6);//SAP1024B GLCD ekran tanımlama
   delay_ms(100);
   
while(1)
 {
   ercan = ACS712_AKIM_OLCME(5,4) ;

   inttostr(ercan,deger);
   SAP1024_YAZI_YAZMA(10,10,deger);//okunan değerler GLCD de yazdırılır

   delay_ms(500);// 1/2 saniyede bir okuma yaoar
 }
}
  • PIC e uygun ADC ayarlaması yapıldı
  • ADC_Inıt ile analog sinyal girişi olduğunu belirttik
  • ACS712_AKIM_OLCME(5,4)” fonksiyonu ile 5 amperlik sensör olduğunu , AN4 portundan okuma yapılması gerektiğini bildirdik
  • GLCD değerleri 1/2 saniye aralıkla yazmasını söyledik.

 

acs712-test
ACS712 test denemesinden bir görünüm

Çalışma Video


Sonuç

  • ACS712 çalışması hakkında hesaplama teorik bilgisini öğrenmiş oldunuz.
  • Bu bilgi ile kendi kütüphanenizi yazabilir yada benim yazdığım açık kaynak kodları inceleyebilirsiniz.
  • Ölçüm sırasında dalgalanma olması normaldir çünkü akım gerçekte düz çizgi şeklinde akmaz anlık yükselme ve düşüşler olacaktır. Bunun ekrana yansıması ACS712 nin hassasiyetinden kaynaklanmaktadır.
  • Videoda görülen değer mA dir. ( 1 A = 1000mA) – Ölçü aleti ise amper bölümüne ayarlıdır
  • Sorularınızı “Soru-Cevap” forumuna sorabilirsiniz.

Kütüphane Dosyaları

 

 


Yararlanılan Belgeler


 

 

ERCAN KOÇLAR Hakkında

Çalışmalarım çocukken başladı kolonyalı kağıtları yakmak, ilaçları birbirine katmak gibi değişik deneylerim vardı. Kimya kitabında elektroliz ile suyun hidrojen ve oksijene ayrıldığı ve hidrojenin yandığını yazıyordu, o zamanlarda aklım almıyordu sudan nasıl yanan....Devamını okumak için tıklayınız ;)