Arduino ile ACS712 Akım Sensörü Kullanımı – Akım Gerilim Ölçme
Arduino Uno ve ACS712 Akım Sensörü Kullanımı yaparak akım ölçüm örneği gerçekleştireceğiz.
Akım Sensörü, güç hesaplama ve yönetim uygulamalarında önemli bir cihazdır. Akımı bir cihaz veya devre üzerinden ölçer ve ölçülen akımla orantılı olarak uygun bir sinyal üretir. Genellikle çıkış sinyali bir analog voltajdır.
Bu projemizde kullanacağımız malzemeler:
- Arduino Uno Dip (Klon)
- ACS712 Akım Sensörü Modülü 30A
- Jumper Kablo
- 2×16 LCD QAPASS Karakter LCD Ekran – I2C
ACS712 Akım Sensörü Nedir? Özellikleri Nelerdir?
ACS712 Akım Sensörü, AC ve DC akımlarının kesin ölçümü için kullanılabilen Allegro MicroSystems ürünüdür. Bu sensör Hall Effect’e dayanır ve IC entegre bir Hall Effect cihazına sahiptir.
ACS712 Akım Sensörünün çıkışına gelince, AC veya DC akımlarla orantılı bir analog voltaj üretir. Bu çıkış AC veya DC seçimine göre değişir.
ACS712 IC, 8 uçlu bir SOIC paketinde mevcuttur ve aşağıdaki görüntü, pin diyagramını göstermektedir.
ACS712 Sensörünün mevcut algılama alanına göre üç çeşidi vardır. Optimize edilen aralıklar +/- 5A, +/- 20A ve +/- 30A’dır. Varyanta bağlı olarak, çıkış hassasiyeti de aşağıdaki gibi değişir:
ACS712 Modeli | Optimize Akım Aralığı | Çıkış hassasiyeti |
ACS712 ELC-05 | +/- 5A | 185 mV / A |
ACS712 ELC-20 | +/- 20A | 100 mV / A |
ACS712 ELC-30 | +/- 30A | 66 mV / A |
ACS712 Akım Sensörü Nasıl Çalışır?
ASC712 Akım Sensörü Hall Etkisine dayanmaktadır. IP + ve IP – pinlerini dahili olarak bağlayan bir bakır şerit vardır. Bu bakır iletkenden bir miktar akım akarken, Hall Etkisi sensörü tarafından algılanan bir manyetik alan üretilir.
Hall Effect sensörü daha sonra bu manyetik alanı uygun voltaja dönüştürür. Bu yöntemde, giriş ve çıkış tamamen yalıtılmıştır.
Bağlantıları şemaya uygun yaptıktan sonra kodumuzu Arduino Uno kartımıza yükleyip test edebiliriz.
ACS712 Akım Sensörü Kullanımı: ACS712 Arduino Kodu
#include <LiquidCrystal.h> // LCD AYARLARI LiquidCrystal lcd(7, 6, 5, 4, 3, 2); const int analogIn = 0; //ACS712 SENSOR BAĞLANTI PINI int mVperAmp = 66; // 185 5A MODÜL İÇİN , 100 20A MODÜL İÇİN VE 66 30A MODÜL İÇİN int RawValue = 0; int ACSoffset = 2500; double Voltage = 0; //VOLT HESABI double Amps = 0;// AMPER HESABI void setup() { // LCD AYARI lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print("ACS 712"); lcd.setCursor(0, 1); lcd.print(" AKIM OLCUM "); delay(2000); } void loop() { RawValue = analogRead(analogIn);//MODUL ANALOG DEĞERI OKUNUYOR Voltage = (RawValue / 1024.0) * 5000; // VOLT HESABI YAPILIYOR Amps = ((Voltage - ACSoffset) / mVperAmp); // AKIM HESAPLA lcd.clear();//clears the display of LCD delay(1000);//delay of 1 sec lcd.display(); // VOLTAJI EKRANA YAZ lcd.setCursor(1, 0); lcd.print("Voltaj= "); lcd.setCursor(8, 0); lcd.print(Voltage, 3); lcd.setCursor(12, 0); lcd.print("mV"); // AKIMI EKRANA YAZ lcd.setCursor(1, 1); lcd.print("AMPER= "); lcd.setCursor(7, 2); lcd.print(Amps, 3); lcd.setCursor(11, 2); lcd.print("A"); delay(2500); }
Kullandığımız malzemeleri tekrar hatırlamak gerekirse:
- Arduino Uno Dip (Klon)
- ACS712 Akım Sensörü Modülü 30A
- Jumper Kablo
- 2×16 LCD QAPASS Karakter LCD Ekran – I2C
Direnc.net Blog sayfamızda sürekli olarak yeni içerikler paylaşmaya devam edeceğiz. Lütfen sormak istediğiniz soruları yorum olarak bize gönderin!
Elimde Acs712 var. Buradaki kodlari kullandim. Voltaj olcumude akim olcumude hatali. Sorun ne olabilir?
Merhaba Ahmet Kara,
Kod satırında yazım hatası olduğunu tespit ettik. En üst satırı #include şeklinde güncelleyebilirsin. Yazıdaki kodu da güncelledik. Direkt kopyalayıp alabilirsin. 🙂
merhaba kodu çalıştırdığımda neden akım ve gerilim değerleri sürekli değişiyorn yardımcı olabilir misiniz?
Merhaba Seçilya,
Yazımızda anlatılan şemaya uygun olarak pin numaralarına dikkat ederek kurulum yapılması halinde doğru sonuç alınabiliyor. Pinlerde hata yapmış olabilir misin? Adım adım tekrar kontrol edilmesinde fayda var. 🙂
Merhaba:
ACS712 sensörü ac gerilim ölçüyor mu ?
Wattmetre yapmak için kullanacağım.
Evet, AC ve DC ölçümler yapabilirsiniz.
Merhaba, elinize sağlık güzel bir çalışma olmuş.
3S Lipo bataryanın akım ve gerilim değerlerini okumak için bu sensör kullanılabilir mi?
Sensörün max çalışma gerilimi 5V yazıyor.
Merhaba, Reaktif güç kontrol rölesi yapıyoruz. Bunu kullanabilir miyiz gerilim ve akımı ölçmek için?
Merhaba,acs 712 ve I2C Dönüştürücü kullanarak bir wattmeter yapmak istersek arduino uno kullanabilir miyiz?
Merhaba,acs 712 ve I2C Dönüştürücü kullanarak bir wattmetre yapmak istersek arduino uno kullanabilir miyiz?