Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

30 Nisan 2021 Cuma

Acs712 Akım Sensörü ve Arduino kullanarak AC akım ölçümü

 

Acs712 Akım Sensörü ve Arduino kullanarak AC akım ölçümü


Acs712 hall etkili akım sensörü ve Arduino kullanarak ac akım ölçümü. Bu eğitimde, acs712 hall etkili akım sensörü ve Arduino Uno R3 kullanarak alternatif akım ölçüm sisteminin nasıl tasarlanacağını öğreneceksiniz Ancak aynı konsepti Arduino mega, pic  mikrodenetleyici , 8051 mikrodenetleyici veya avr mikrodenetleyiciye uygulayabilirsiniz sadece kodda değişiklik yapmanız gerekir, ancak konseptin geri kalanı aynı kalacaktır. Son eğitimimde acs712 akım sensörünü kullanarak DC akımını nasıl ölçeceğimi gösterdim.Bu eğitimde, acs712 salon etkili akım sensörüne giriş, akım sensörünün çalışması ve salon efekt sensöründen akımın nasıl ölçüleceğini de açıkladım. Acs712 hall etkili akım sensörü ile ac akımı ölçmek için bu makaledeki aynı kavramları uygulayacağım. Arduino kullanarak ac voltajını nasıl ölçeceğinizi de okuyabilirsiniz .








ACS712 Hall Etkili Akım Sensörü ile AC Akımı Nasıl Ölçülür ?

Son makalemde tartıştığım gibi acs712 akım sensörü, giriş akımının doğasına bağlı olarak giriş akımını orantılı gerilime çevirir. Giriş akımı dc ise, akım sensörünün çıkış voltajı da dc olacaktır. Akım sensörüne giriş akımı ac ise, akım sensörünün çıkış voltajı da alternatif voltaj olacaktır. Çıkış voltajının şekli, giriş akımının şekline bağlıdır. giriş akımının şekli sinüs dalgası ise, o zaman çıkış voltajının şekli de genellikle ac akım durumunda meydana gelen sinüs dalgası olacaktır. Hall etkisi dışı pim akımı sensörü aşağıda verilmiştir. acs712 akım sensörünün pin çıkışı

bu yüzden salon efekt sensörünün çıkışında sinüs dalgası alacağız. Bu yüzden sinüs dalgasının tepe noktasını ölçmek için bir yönteme ihtiyacımız var ve sonra bu tepe gerilimini, gerilimin tepe değeri ile rms değeri arasındaki ilişki olan 2'nin karekökü ile çarparak tekrar rms gerilimine dönüştürebiliriz. Acs712 hall etkili akım sensörünün Arduino ile arayüzlenmesi hakkındaki son makalemde daha fazla ayrıntı açıkladım. Bu çıkış voltajının nasıl ölçüleceğini ve bu çıkış voltajını Arduino kullanarak tekrar akıma nasıl dönüştürebileceğinizi anlamak istiyorsanız öncelikle okumanızı tavsiye ederim.

ACS712 Hall Etkili Akım Sensörü ile Ac Yük BağlantısıACS712 Hall Etkili Akım Sensörü ile AC Yük Arayüzü

 

 

Acs712 akım sensörü ve Arduino kullanarak ac akım ölçümü

Acs712 akımı ve Arduino kullanarak ac akım ölçümü için devre şeması aşağıda verilmiştir:

ARDUINO KULLANILARAK ac akım ölçümü ve salon etkisi sensörü acs712

Acs712 akım sensörü kullanılarak ac akım ölçümü için kod

// include the library code:
#include <LiquidCrystal.h> //library for LCD
 
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
 
//Measuring Current Using ACS712
 
const int analogchannel = 0; //Connect current sensor with A0 of Arduino
int sensitivity = 185; // use 100 for 20A Module and 66 for 30A Module
float adcvalue= 0;
int offsetvoltage = 2500; 
double Voltage = 0; //voltage measuring
double ecurrent = 0;// Current measuring
 
void setup() {
 //baud rate
 Serial.begin(9600);//baud rate at which arduino communicates with Laptop/PC
 // set up the LCD's number of columns and rows:
 lcd.begin(20, 4); //LCD order
 // Print a message to the LCD.
 lcd.setCursor(1,1);//Setting cursor on LCD
 lcd.print("MICROCONTROLLERSLAB");//Prints on the LCD
 lcd.setCursor(4,2);
 lcd.print(".com");
 delay(3000);//time delay for 3 sec
 lcd.clear();//clearing the LCD display
 lcd.display();//Turning on the display again
 lcd.setCursor(1,0);//setting LCD cursor
 lcd.print("Reading Values from");//prints on LCD
 lcd.setCursor(1,1);
 lcd.print("DC Current Sensor");
 lcd.setCursor(5,2);
 lcd.print("ACS 712");
 delay(2000);//delay for 2 sec
}
 
void loop() //method to run the source code repeatedly
{
 unsigned int temp=0;
 float maxpoint = 0;
 int i=0;
 for(i=0;i<500;i++)
 {
 if(temp = analogRead(analogchannel),temp>maxpoint)
 {
 maxpoint = temp;
 }
 }
 adcvalue = maxpoint; 
 Voltage = (adcvalue / 1024.0) * 5000; // Gets you mV
 ecurrent = ((Voltage - offsetvoltage) / sensitivity);
 ecurrent = ( ecurrent ) / ( sqrt(2) );
//Prints on the serial port
 Serial.print("Raw Value = " ); // prints on the serial monitor
 Serial.print(adcvalue); //prints the results on the serial monitor
 
 lcd.clear();//clears the display of LCD
 delay(1000);//delay of 1 sec
 lcd.display();
 lcd.setCursor(1,0);
 lcd.print("adc Value = ");
 lcd.setCursor(13,0);
 lcd.print(adcvalue);
 
 Serial.print("\t mV = "); // shows the voltage measured 
 Serial.print(Voltage,3); // the '3' after voltage allows you to display 3 digits after decimal point
 
 lcd.setCursor(1,1);
 lcd.print("Voltage = ");
 lcd.setCursor(11,1);
 lcd.print(Voltage,3);
 lcd.setCursor(17,1);
 lcd.print("mV");//Unit for the voltages to be measured
 
 Serial.print("\t ecurrent = "); // shows the voltage measured 
 Serial.println(ecurrent,3);// the '3' after voltage allows you to display 3 digits after decimal point
 
 lcd.setCursor(1,2);
 lcd.print("ac Current = ");
 lcd.setCursor(11,2);
 lcd.print(ecurrent,3);
 lcd.setCursor(16,2);
 lcd.print("A"); //unit for the current to be measured
 delay(2500); //delay of 2.5 sec
}

Yukarıdaki kodda, akım sensörünün çıkış voltajından 500 örnek aldım ve sinüs dalgasının tepe değerini tespit ettim. Gerilimin tepe değeri tespit edildikten sonra kodda verilen hassasiyet formülü kullanılarak tekrar akıma dönüştürülür.


ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.

ARDUINO ETHERNET SHIELD W5100 MODÜL

 

ARDUINO ETHERNET SHIELD

Geliştirme kartlarının seçimine geldiğimizde Arduino, uygun maliyetli, açık kaynak kodlu donanım ve yazılım olduğu ve en önemli özelliği genişletilebilir olduğu için aklımızda beliriyor. Arduino'yu bağımsız bir proje olarak kullanabiliriz, ancak internete bağlantı (kablosuz veya kablolu) veya motorlarla arayüz vb. Gibi bazı spesifik özellikler söz konusu olduğunda, kalkan olarak bilinen nispeten pahalı bir adaptör işe yarar. Bu yazıda, Arduino kartına internet bağlantısı sağlayan ETHERNET shield olarak bilinen belirli bir Arduino kalkanını tartışacağız. Arduino ile pin yapılandırması, gereksinimleri, bilgilendirici LED'ler, adreslerin nasıl atanacağı ve son olarak bu kalkanın kullanıldığı bazı projeleri listeleyeceğiz.








ARDUINO ETHERNET SHIELD'A GİRİŞ

Ethernet Shield, Ethernet kütüphanesini kullanarak Arduino kartına internet bağlantısı sağlar. Bu kalkanı internete bağlanmak üzere yapılandırmamıza yardımcı olacak skeçler (IDE'de yazılmış Arduino programı) yazmak için bu Ethernet kütüphanesini kullanabiliriz. Bu shield, Arduino kartlarının hemen hemen tüm versiyonları ile uyumludur. Panomuzun internet bağlantısı sağlayarak dünya çapında veri almasını ve göndermesini sağlar. SD kart seçeneği de mevcuttur ve bu kartı SD kütüphanesini kullanarak yazıp okuyabiliyoruz. Sadece projenizin internete bağlanmasına izin vererek sonsuz sayıda olasılık sağlanır.

Bu kalkan, 16 KB dahili tampon alanına sahip Wiznet W5100 çip Ethernet'e dayanır. Aynı anda 4 soket bağlantısını destekleyebilir. Bu çip, hem internetin taşıma katmanı protokolünü, yani TCP (iletim kontrol protokolü) ve UDP (kullanıcı datagram protokolü) kapasitesine sahip bir ağ IP yığını sağlar. TCP, UDP'ye kıyasla mesajların taşınması için daha güvenilir bir hizmet sağlar ve bu 2 protokolün çok daha fazla özelliği vardır, ancak şu anda bu makaledeki endişemiz bu değil. Sadece bu kalkan aracılığıyla pano internet bağlantımızı sağlamaya odaklandık.

Bu kalkanın yeni sürümü, 32 KB arabellek boyutuna sahip W5500 Ethernet yongasına dayanır, otomatik anlaşmayı destekler ve I2C, UART arayüzünü destekler. Ethernet kalkanını Arduino kartına bağlamak için uzun tel çözgü başlıklarını kullanarak pin düzenini sağlam tutar ve diğer kalkanlar bunun üzerine istiflenebilir.


Arduino Ethernet Shield'i Arduino kartımıza takmamız gerekiyor, ancak aşağıda bazı zorunlu gereksinimler var:

  • Ağa bağlantı için RJ45 kablosu
  • Arduino kartı (elbette. Çünkü bu shield bağımsız bir proje olarak kullanılamaz)
  • 5 V'luk çalışma voltajı Arduino kartı ile sağlanmalıdır.
  • SPI portunda Arduino kartı ile bağlantı kurun
  • Ethernet üzerinden Güç modülü gereklidir (bu modül, aşağıdaki gereksinimleri karşılaması gereken geleneksel çift bükümlü Ethernet kablosundan güç çıkarmak için tasarlanmıştır):
  • Düşük çıkış gürültüsü ve dalgalanma
  • Giriş voltajı: 36 V - 57 V
  • Aşırı yükleme koruması
  • Çıkış voltajı: 9V
  • Çıkış izolasyonuna giriş 1500 V olmalıdır
  • Yüksek verimli DC / DC dönüştürücü
  • 3af uyumlu

Burada dikkat edilmesi gereken önemli bir nokta, Arduino'nun SPI portu üzerinden iletişim kurması nedeniyle hem SD kart hem de W5100'ün SPI veriyolunu paylaşmasıdır, böylece bunlardan yalnızca birini kullanabiliriz. İkisini de kullanmak istiyorsak, karşılık gelen kitaplıklarını kontrol etmeliyiz.











ARDUINO ETHERNET SHIELD üzerindeki BİLGİ LED'leri

Bu kalkan, çok sayıda bilgilendirici LED ile birlikte gelir. Bunlardan bazıları aşağıda listelenmiştir:

  • PWR: Kalkan ve kart gücünün gösterilmesi için.
  • LINK: Ağ bağlantısı varlığının göstergesi için ve veri alındığında veya iletildiğinde yanıp söner.
  • FULLD: Tam çift yönlü ağ bağlantısının göstergesi için
  • 100M: 100 MB / s ağ bağlantısı varlığı için
  • RX: Kalkan veri aldığında yanıp sönmeye başlar
  • TX: Shield veri gönderdiğinde yanıp sönmeye başlar
  • COLL: Ağ çakışmaları tespit edildiğinde yanıp söner

ARDUINO ETHERNET SHIELD ARDUINO BAĞLANTISI

Arduino Uno ile Arduino Ethernet Shield bağlantısı

Ethernet Arduino bağlantısı iki şekilde kullanılabilir:

  • SUNUCU: Arduino'muzun sunucu olarak çalışmasını sağlayabiliriz yani internetten erişilebilir ve Arduino kartımızdan komutlar göndereceğiz. Bu sunucu, örneğin evdeki şeyleri kontrol etmek için birçok şekilde kullanılabilir ve aynı zamanda sensör okumaları gibi bilgileri ve çok daha fazlasını görüntüleyebilir.
  • İSTEMCİ: İstemci temelde sunucuya veri gönderir. Arduino'muzun bir istemci gibi davranması durumunda, verileri sunucuda depolanan veritabanına gönderebilir. Bu tür Arduino istemci modeli, büyük miktarda veriyi işlemenin yanı sıra veri kaydı amacıyla kullanılır.

ARDUINO VE ETHERNET KALKANI BAĞLANTISIArduino Ethernet Shield pin çıkışı

Arduino ve Ethernet shield'ın genel pin konfigürasyonu aşağıda verilmiştir. Bununla birlikte, modelden modele değişebilir, bu nedenle karışıklığı önlemek için bir açıklama da verilir.

  • Arduino iletişimi, ICSP başlığı üzerinden SPI veri yolu kullanılarak yapılır, bu nedenle klasik Arduino modellerinde bu amaçla kullanılan D11, D12, D13 pinleri kullanılır ve Arduino Mega üzerindeki D 50 ve D 52 pinleri aynı amaca hizmet eder.
  • W5100 D için 10 pin kullanılır ve genel amaçlı bir giriş çıkış pinidir. Yani W5100'e gidersek bu pin giriş-çıkış pini olarak kullanılamaz.
  • D 4 pin yine genel amaçlı giriş çıkış pinidir ancak SD kart için kullanılır. SD kart kullanmıyorsak bu pin genel amaçlı giriş çıkış pini olarak kullanılabilir.
  • D 2 pini Arduino kartında INT olarak adlandırılır ve W5100'ün INT pini ile bağlanır.

Donanım SS pini yani pin D 53'ün SPI pini olmasına rağmen W5100 veya SD kartı seçmek için kullanılamadığına, ancak bir çıkış olarak saklanması gerektiğine veya SPI arayüzümüzün çalışmayacağına dair bir ihtiyati tedbir vardır.

Tüm bu noktaları aklımızda tutarak kalkanımızı Arduino kartımızın üzerine monte edebilir ve ardından USB kablosu ile bilgisayarımıza bağlayabiliriz. Eskizimiz (IDE'de yapılan Arduino programı) yüklendiğinde, kartımızı bilgisayardan ayırabilir ve ardından harici bir güç kaynağı kullanarak çalıştırabiliriz.

ARDUINO ETHERNET SHIELD'E ADRES ATAMA

İnternete bağlı her cihaz, ev adreslerimize benzer IP / MAC adresi olarak bilinen bir adrese sahiptir. Tam ev adreslerimiz küresel olarak benzersiz olduğundan, MAC adreslerimiz de benzersizdir. Ağımızı nasıl yapılandıracağımıza bağlı olarak IP adresleri sabitlenebilir veya değiştirilebilir. Bu IP / MAC adreslerinin ayrıntılarına girmeyeceğiz, çünkü endişemiz sadece Arduino'muzun internet bağlantısına sahip olduğunda nasıl bir IP adresi alacağıyla sınırlı. Bu adresler, verilerin başka cihazlardan alınabilmesi veya gönderilebilmesi için ağdaki cihazları tanımlamamıza yardımcı olur.

Cihazları tanımlamak için kullanılan adresler iki türdendir:

  • IP adresi:
  • Mac Adresi

MAC adresi her zaman benzersizdir ve üretim sürecinde her cihaza atanır. Yani cihazımız zaten bir MAC adresine sahip olacak ve bu, panomuza yapıştırılan etikete yazılacaktır. IP adresi ataması için Arduino kartımızı yönlendiricimize bağlayacağız ve yönlendiricimiz otomatik olarak cihazımıza bir IP adresi atayacak ve cihazımız kapatılmadıkça ve kapanana kadar sabitlenecektir. Cihazımız kapatıldıktan sonra aynı IP adresi atama prosedürünü tekrar edeceğimizde farklı bir IP adresi alabilir veya alamayabiliriz. Yönlendiricinin temel amacı, o bölgedeki tüm IP adreslerini yönetmek ve iletişim kurmalarına izin vermektir.

Cihazınıza atanan IP adresini kontrol etmek istiyorsanız, önceden yüklenmiş "DHCP Adres Yazıcısı" taslağını kullanın ve ardından seri monitörü açın. IP adresiniz bunun üzerine yazdırılacaktır.

ARDUINO ETHERNET SHIELD ile yapabilecekleriniz

Ethernet shield kullanılarak yapılan projelerden bazıları aşağıda listelenmiştir:

  • Arduino Ethernet shield kullanan Ethernet tabanlı ev otomasyon sistemi 
  • Sohbet sunucusu
  • Homeotic (Ev otomasyon sistemi)
  • Web istemcisi
  • Otomatik Bahçe
  • Web sunucusu
  • Barometrik basınç web sunucusu
  • Web istemcisi tekrar ediyor
  • UDP gönder dizeyi alır
  • UDP NTP istemcisi
  • DHCP adres yazıcısı
  • Telnet istemcisi
  • DHCP sohbet sunucusu

Umarım bu makaleyi beğenirsiniz. 


ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.