30 Kasım 2014 Pazar

Analog Kontrol

Arduino ile Analog Input Output Uygulamaları

Elektronik dünyası analog ve dijital olarak iki kısımdan oluşur.Dijital veriler binary sayıların temeli olan 0 ve 1 sayılarının farklı kombinasyonlarından oluşurken, analog verilerin böyle keskin bir farkı yoktur.Dijital verilerde 0 ve 1’in teoride karşılığı 0V ve 5V iken, pratikte 0V ‘a yakın değerler ve 5V’a yakın değerlerden oluşur.Analog verileri ise 0V ve 5V arasında aklınıza gelebilecek bütün değerler olabilirler.(Genelde çoğu entegre işlemlerini 0-5V aralığında yapar, ististai durumlarda bu sınır değerleri değişebilir.)
Yapacağınız projeye göre kullanıcağınız devre elemanları analog veya dijital olabilirler, bunun için hem dijital hem de analog verilerin nasıl kontrol edildiğini bilmeniz gerekmektedir.

Analog Output

Arduinonun bir nevi analog output görevi gören pwm özelliğine sahip bacaklarını kullanacağız.
1
Arduino kartınızın üzerine bakarsanız, bazı pinlerin yanında “~” işareti bulunmaktadır bu pinler pwm özelliğine sahiptir.
PWM Nedir?
PWM (Pulse Width Modulation) ,darbe-sinyal genişliği modulü olarak çevirebiliriz. Mikrodenetleyiciler dış dünyayı genel yapısı itibari ile yaklaşık 0V ve 5V gibi ara seçeneği olmayan gerilim değerleriyle kontrol etmektedir. Bu durum Pic kullanıcısının ara değerlere ulaşamamasına sebep olur. PWM sayesinde istenen ara değerler elde edilebilir. DC motor uygulamalarında da PWM sıkça kullanılır. Örneğin DC motora 0V veya 5V uygulanması durması ya da çalışması içindir. DC motoru 5 farklı hızda kontrol etmek için pwm’i kullanarak 0 ve 5V arasında istediğiniz gerilim değerin ile elde edebilirsiniz.
Arduino Uno’da pwm 8 bit çözünürlüğe sahiptir, yani 0 ve 5V aralığındaki değerleri 2parçaya bölebilirsiniz.
Pwm’e 0 verdiğinizde 0V, 255 (28-1) verdiğinizde 5V verecektir.Farklı pwm değerleri için çıktıları aşağıdaki şekilde görebilirsiniz.
arduino_pwm

Analog Output Devresi

 Analog Output Akış Diagramı
flowch_analog_out
Analog Output Kodu

#define LED 11  // LED 11. pinde
int i=0;       // parlaklık değişkeni 
void setup(){  
  pinMode(LED, OUTPUT);  // LED output
}

void loop(){
  
  for(i=0;i<256;i++){       // pwm 0 ile 225 değerinde
     analogWrite(LED,i);   // parlaklık değişkeni i ile
                          // Analog olarak outputa gönderiliyor
     delay(7);           // parlaklığın değiştiğini 
                        //rahatlıkla görebilmek için
 
     if(i==255){       // pwm değeri maksimum olduğunda
          for(;i>0;i--){  // bu kez parlaklık değişkeni azaltılıyor
            
     if(i==255){       // pwm değeri maksimum olduğunda
          for(;i>0;i--){  // bu kez parlaklık değişkeni azaltılıyor
            analogWrite(LED,i);  // analog olarak outputa gönderiliyor
              delay(7);         // parlaklığın değiştiğini 
                               //rahatlıkla görebilmek için
              if(i==1)        // parlaklık değişkeni minimum olduğunda
              break;          // parlaklığı yeniden arttırılabilmek için
               }        // break komutu ile ikinci for döngüsünden çıkıp
     }                // ilk for döngüsüne gidiyoruz.
  
   }
}

Analog Input

Mikrodenetleyiciler dijital devre elemanlarıdır. Analog olarak bilgi alışverişi sağlayabilmek için dönüşüm yapmak zorundadır.PWM modülü dijital verileri analoga çevirirken ADC modülü analog veriyi dijital veriye dönüştürür.ADC modülünün çözünürlüğü 10 bittir yani verinin 1/210 (1024)’luk katları halinde işleyebilmeyi sağlar.
0V için 0, 5V için 1024 değeri döndürürken, ara değerleri 1/210 ‘luk adımlarla ilerler.

Analog Input Uygulaması
Bu uygulamada bir adet potansiyometre kullanıp arduinonun
A0( Analog giriş) pinine el ile analog değerler göndereceğiz. Bu değerlerin farklılığını 11. Pindeki Led’in parlaklığını değiştirerek gözlemleyeceğiz.
Analog Input-Output Devresi
IMAG0610
 Analog Input-Output Akış Diagramı
flow analog in out
 Analog Input-Output Kodu
#define LED 11  // LED 11. pinde
int i=0;       // parlaklık değişkeni
int analog_in=0;
void setup(){  
  pinMode(LED, OUTPUT);  // LED output
}

void loop(){
  analog_in=analogRead(0); // Analog veri okunuyor
   analogWrite(LED,analog_in/4); // Analog input 10 bit 1024
                                // Analog output 8 bit 256
                                // olduğu için yaklaşık olarak
                                // değerlere doğru ulaşmak için
                                // input 4'e bölünerek outputa
                                // gönderiliyor...
}




1 yorum:

  1. I truly like this is most certainly extraordinary for everybody uniquely for me. I had many issues about download videos from Facebook and YouTube. Online video downloader Facebook video downloader is an awesome key and these are totally free which would all have the choice to use with practically no issue.
    facebook downloader net

    YanıtlaSil