ADC etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
ADC 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

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

13 Aralık 2016 Salı

analogWrite Komutu



Analog işlemin ne olduğunu Mikrodenetleyicide Analog Bacakla İşlem Yapma makalem de temel olarak bahsetmiştim. Ama yine de kısa olarak bahsetmek isterim. Günümüzde bir çok alanda analog olarak işlem yapan cihaz görürüz aslında. Ama bunun farkında olmayabiliriz. Açılır kapanır kapılar nasıl olurda hızlı bir şekilde kapanırken bir anda yavaşlayarak kapanır da hızla kapının iki parçasının çarpışması önlenir. Bir ledin parlaklığını nasıl kontrol ederiz. Asansörler yavaşça kalkıp hızlanırken nasıl olurda yavaşlayarak dururlar. İşte bu soruların cevabı. Bu sistemlerde ki aktüatörlerin çalışma gerilimlerini değiştirerek sistemlerin hareket hızlarıyla oynanır.5V la çalışan bir lede 2,5 V verilirse toplamda ki led parlaklığını yarısını lede ederiz. Matematiksel olarak da açıklamalar mevcut.Ama şuan temel olarak derslerimizi işleyeceğimizden matematiksel kısma girmiyoruz.

Şimdi arduinoda bu işin nasıl yapılacağını öğreneceğiz. İlk olarak  analogWrite komutu ile analog bilgi gönderme işlemini gerçekleştirelim. Hangi pinden analog bilgi gönderebileceğimizi pinin yanındaki dalga şeklinden anlarız. Aşağıdaki şekilde belirtildiği gibi.



           analogWrite(pinnumarasi,deger); hangi pinle işlem yapılacağı belirlendikten sonra pinde ne kadar analog değer derilmesi işlemi için değer kısmına 0-255 arası değer girlir.Yazının başında belirttiğim makalemde oran orantı kurulma işlemiyle 0-5 volt arası değeri seçtiğiniz pinden elde edebilirsiniz. Unutmadan şunu da belirteyim. Bu amaçla kullanacağınız bacağı pinMode komutuyla çıkış olarak tanımlamanız gerekir.

Örnek:

5 nolu pinden 4V çıkış almak için

                 5V             255
                 4V               x
                ______________
                x = (4*255) /5 = 204

analogWrite( 5 , 204 );


Devamını Oku

7 Aralık 2016 Çarşamba

Mikrodenetleyici ile Analog Bacakla İşlem Yapma


Herhangidir kontrolörün analog bacağının da veri alıp işlemek isteyen öncelikle analog ve dijital bilginin ne olduğunu iyi bilmeli ve birazda matematikten anlamalı. Analog bilgi dediğimiz şey 5 V, 10 A, 47 ohm gibi değerlerdir. Mikro işlemcilerin dünyasına bunu anlatmak için mikro işlemcinin dilinden konuşmak gerek. Onların temel dili bir ve sıfırlardan oluşur. Taban aritmetiğiyle bu bir ve sıfırlar ara yüzler sayesinde onluk sekizlik onaltılık vs. tabanlarda kullanımı sağlanır. Bu birler ve sıfırlardan oluşan ortama dijital ortam denir ve bizim entegre veya kontrolörümüzün bacağına gelen analog bilgiyi dijitale çevirerek işleyebiliriz. Bu çevirme işlemini gerçekleştiren devreler değil konumuz. Konumuz bu ikisi arasında bağlantı kurup yorumlamak.

Program kısmına aslında direk olarak dijital bilgi gelmekte sadece analog bacağa hangi aralıkta bilgi geliyor onu bilmemiz yeterli. Örneğin bir pic veya Arduinonun bacağına 0-5 V aralığında bilgi gelir. Siz bu gerilimi ister sensor üzerinde ister ayarlı güç kaynağıyla isterseniz de potansiyometre ile verin. Program için bir şey değişmez.

İşlemciler bu gelen analog bilgiyi farklı çözünürlüklerle okurlar ve bunlar çoğu zaman program içerisinde belirlenir.8 bitlik çözünürlükte 0-255 arası dijital bilgi gelirken 10 bitlik çözünürlükte 0-1024 arası bilgi okunur. Bu kısımda öğrenildikten sonra basit bir oran orantı ile gelen bilgi yorumlanır ve isteğe göre çıkış verilir.




Yukarıda verilen orantı 0—5V luk analog bili 10 bitlik veriye dönüştürülmüş ve görüldüğü gibi doğru orantı kurularak rahatlıkla işlem yapılabilmektedir.0-1024 bilgisini Volt olarak okumak istersek eğer oluşturacağımız formül işinize yarayacaktır.

Şeklinde kurulacak bağıntı sonucunda şu formül elde ederiz.


X=((Gelen değer)*5)/104



X i eğer ekrana yansıtıp okuma imkânı bulursanız analog bacağınıza gelen voltajı gösterir. Kısa bir voltmetre yapmanın temel mantığı da budur. Her türlü işlemci ve programlama dilinde bu bilgiyi yorumlayarak kullanabilirsiniz. Vermiş olduğum bilgi genel bir adc mantığıdır. Kolay gelsin.
Devamını Oku