analogRead() etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
analogRead() etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

29 Mayıs 2017 Pazartesi

Arduino'da Akım Sensörü

 ACS712 Akım Sensörü -30 / +30A



30 Ampere kadar ölçüm yapabilen güzel bir sensör. Akım ölçmek istediğinizde size çok rahat bir kullanım sunan pratik bir de yapısı var. Tek kusuru manyetik alandan fazlaca etkilenmesi. Montaj yaparken role gurubuna veya elektromanyetik alanla çalışan herhangi bir cihaza yakın bir montaj yapmayın. Göstergenizde çok fazla sapma görürsünüz. Tersinden yaklaşacak olursak eğer montaj yaptınız ve değerlerde fazlaca sapma varsa sensörü manyetik alanın içine koymuş olma ihtimaliniz yüksek. Aşağıda vermiş olduğum kod bloğunu arduino mega da deneyip  uyguladım. Hatta sekiz tanesini birden denedim. Gayet güzel sonuç aldım. Devrenizde uygulamak isterseniz içiniz rahat bir şekilde kodları kullanabilirsiniz. Devreye bağlantısı ise kolay. Out kısmını analog okuma bacağına yaparak beslemelerini veriniz. Daha sonra klemensi akımını ölçeceğiniz cihaza seri bir şekilde bağlayınız. Kolay gelsin.

#define akim1 2//istediğiniz analog giriş bacağının adresini verebilirsiniz.

int mVperAmp = 66;
int value= 0;
int ofset = 2500;
double voltaj = 0;
double Amps = 0;

  void akim(){
   
    value = analogRead(akim1);
 voltaj = (value / 1024.0) * 5000; // Gets you mV
 Amps = ((voltaj - ofset) / mVperAmp);
       Serial.print("Akım: ");
       Serial.println(Amps);
    }
  
void setup() {
 Serial.begin(9600);
}

void loop() {
 akim();
 delay(500);


}
Devamını Oku

27 Aralık 2016 Salı

Arduino, LM35 ve LCD Ekran ile Sıcaklık Ölçümü



Şimdiki projemizde lm35 i kullanarak lcd ekrana sıcaklı değerini yazdıracağız.Daha önceki derslerimizde LCd ekrana yazı yazdırmayı öğrenmiştik o konuyu geçtiğimiz varsayıyorum.Eğer bakmadıysanız buradan bakabilirsiniz.Bizim için önemli olan LM35 sensorunden gelen analog değeri okuyarak sıcaklık ile orantılamak olacak.Bir sensorden veri okuyup yorumlayacaksanız öne sensorun katalog bilgilerini gözden geçirmeniz gerekecek. Lm35 in datasheetinden sensorun sıcaklık ile çıkışını şu şekilde vermişler.




Görüldüğü gibi 1500 mV ta 150°C olduğunu söylüyor.Buradan oran orantı kurarak işlem yapacağız.Bizim analogRead komutu ile okuduğunuz değer 0-5V arasını 0-1023 arası olarak okuyor.
1500 mV hangi değere denk geldiğini bulmalıyız ki derce ile analog okunan değer arasında bağıntı kuralım.

                 5000mV            1023
                 1500mV               x
                ______________
                x = (1500*1023) /5 000= 306,9

Yani 306,9 değeri olarak verilmiş ama biz bunu integer olarak okuyacağımız için 307 değeri alalım ve diyelim ki 307 değeri geldiğinde ortam 150°C ye gelmiş demektir.Şimdi bir orantı daha kurarak işlemi tamamlıyoruz.

                 150°C           307
                 Sıcaklık         analogRead
                ______________
    *            Sıcaklık = (150*analogRead) /307

İşte yıldızlı orantı ile artık sıcaklık değerimiz bulabiliriz.
Şimdi devreyi kurup programı yükleyip çalıştırması kaldı.Bu arada unutmadan LM35 in bacak bağlantılarına datasheetten bakmak gerekir ki pin bağlantısını doğru yapalım.




Program:
#include <LiquidCrystal.h>
// LiquidCrystal(rs, enable, d4, d5, d6, d7) ilk komutu kullanarak pin bağlantılarını belirliyoruz.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 float sicaklik;
  int analogdeger;
void setup() {
  lcd.begin(16, 2); /* Kullandigimiz LCDnin sutun ve satir sayisini belirtmeliyiz */
  lcd.clear();
 }
void loop() {

  analogdeger=analogRead(A0);//Ao dan okuduğumuz LM35 değeri
  sicaklik = (150*analogdeger)/306;//formülümüzü yazdık
 
  lcd.setCursor(3, 0); /* Imlecin yeri 1. satir 3. sutun olarak ayarlandi */
  lcd.print("Sicaklik:"); /* Ekrana yazi yazalim */
  lcd.setCursor(5, 1); /* Imlecin yeri 2. satir 5. sutun olarak ayarlandi */
  lcd.print(sicaklik);//sicaklik değeri yazdırıldı.
}


Devre Şeması:


İşlem gayet basit kolay gelsin.





Devamını Oku

15 Aralık 2016 Perşembe

analogRead(); Komutu



Analog olarak pinlerden okuma işlemi gerçekleştirir.A0,A1 gibi sıralanarak isimlendiren pi bacaklarından gelen analog değeri digital değere dönüştürerek program içeresinde yorumlamanızı sağlar.10 bitlik çözünürlüğü vardır. Yani pine gelen 0-5 V arası değeri 1024 parçaya ayırarak okur ve 0-1023 arası değer verir. Mikrodenetleyici ile Analog Bacakla İşlem Yapma kısmında ayrıntılı olarak ADC işleminin temel mantığını anlatmıştım isteyen birde oraya göz atabilir.

 

Örnek:Potansiyoetreden gelen analog değeri ekrana yazdırma.

 

int analog_veri;//okunan verinin saklanması için integer tipinde değişken tanımladık

void setup() {

Serial.begin(9600);//seri haberleşme için gerekli baud ayarı

}

void loop() {

analog_veri = analogRead(A0);//A0 pininden analog veriyi okuyarak değişkenin içeresine aktarıyoruz
Serial.print("ADC Degeri: ");//Ekranda ADC değeri yazdırıyoruz.
Serial.print(analog_veri);//ADC den okunan veri değişken vasıtasıyla ekrana yazdırılıyor.
delay(250);

}


Devamını Oku