This post is also available in: English (İngilizce)
- ACS712 Akım Sensörü
- ACS712 MikroC Kütüphanesi
- Çalışma Video
- Sonuç
- Kütüphane Dosyaları
- Yararlanılan Belgeler
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.
- 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,685546875–2,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
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ı
- 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
- ACS712 entegresi
- 0.1uf-63v elektrolit kondansatör
- 1nf polyester kondansatör
- 4A cam sigorta ve sigorta yuvası
- SOIC – DIP çevirici
Devrenin Yapılışı
- 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ı
- Soldan çıkan uçlar mavi analog çıkış kırmızı ve siyah besleme uçlarıdır. (+5v)
- Entegre SOIC tip olduğundan çevirici yardımı ile pinler lehimlendi.
- Bu tarz çeviriciler hazır olarak satılmaktadır.
- 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.
- 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.
Ç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ı
- ACS712 Akım Sensörü MikroC Kütüphanesi- .mcl – (ÜCRETSİZ)
Bağlantıyı Görmek İçin Giriş Yapın ya da Ücretsiz Üye Olun
Yararlanılan Belgeler
This post is also available in: English (İngilizce)