Metehan Emlik | Arduino ile PWM sinyalini dijitalle çevirme
790
single,single-post,postid-790,single-format-standard,ajax_fade,page_not_loaded,smooth_scroll,

Blog

Posted by Metehan EMLIK in Donanım, Elektronik, Genel, Projeler, Yazılım

Arduino ile PWM sinyalini dijitalle çevirme

PWM nedir?

 

PWM (Pulse Width Modulation), darbe genişlik modülasyonu anlamına gelir. Temel olarak çıkışta elde edilmek istenilen sinyalin bant genişliğini (frekans düzenlemesi olarak da düşünülebilir) ve dalga biçimini belirlemek amacıyla kullanılan bir yöntemdir. Genellikle SMPS (Switched Mode Power Supply) lerde yüksek akımla düşük voltajlı sinyal elde etmek için güç elektroniği teknolojisinde sıkça kullanılan bir yöntemdirpwm Günümüzde PWM yönteminin en çok duyulduğu yer; dc motorların hızlarının ayarlanması ve güç kaynaklarıdır.

PWM Sinyal Yazma:

 

Arduino ile PWM sinyali oluşturmak çok basittir. PWM  sinyali oluşturmak için “analogWrite( pwm pin ,0-255 arası değer)” komutunu kullanarak istediğim genlikte kare dalga oluşturabiliriz. Kare dalganın mantığı örnek vermek gerekirse bir düğme gibidir “on” konumunda 5V , gönderirken “off” konumunda 0V gönderir. İşte bu “on” kısmının aktif olduğu genişliğe “Pulse Width” yani “Sinyal Genişliği” adı verlilir.

arduino pwm

 

Örnek kod:

[iconbox type=”success” w=”100%” float=”left”]
int ledPin = 9;      // LED connected to digital pin 9
int analogPin = 3;   // potentiometer connected to analog pin 3
int val = 0;         // variable to store the read valuevoid setup()
{
pinMode(ledPin, OUTPUT);   // sets the pin as output
}void loop()
{
val = analogRead(analogPin);   // read the input pin
analogWrite(ledPin, val / 4);  // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
}
[/iconbox]

PWM Sinyal Okuma:

 

    PWM okuma işlemini yazmaya göre çok daha az ihtiyarınız olacağını düşünüyorum çünkü okuma işlemini sadece bazı sistemleri amacının dışında kullanırsanız işinize yarar. Örneğin arduino ile çalışan bir RC araç yapmak istiyorsunuz. Fakat siz sadece kontrol kartını yapmak istiyorsun ve alıcı verici ile zaman kaybetmek istemiyorsanız. Ayrıca complex bir şey yapmak istiyorsanız RC kontol kumandalarını kullanmalısınız.

turnigy

 

 

Resimde gördüğünüz ve RC araçlar için yapılmış bir çok kumanın alıcısından sadece PWM  sinyali alabilirsiniz. Eğer özel bir kontrol katı yapmak istiyorsanız PWM sinyalini işlmek zorundasınız. Bu işlemi Arduino’da “pulseIn(pin, value, timeout)” komutu ile yapıyoruz.

Örnek bağlanmtı:

RC_Rec_bb

Örnek Kod:

[iconbox type=”success” w=”100%” float=”left”]
int ch1; // Here's where we'll keep our channel values
int ch2;
int ch3;
void setup() {
  pinMode(5, INPUT); // Set our input pins as such
  pinMode(6, INPUT);
  pinMode(7, INPUT);
  Serial.begin(9600); // Pour a bowl of Serial
}
void loop() {
  ch1 = pulseIn(5, HIGH, 25000); // Read the pulse width of 
  ch2 = pulseIn(6, HIGH, 25000); // each channel
  ch3 = pulseIn(7, HIGH, 25000);
  Serial.print("Channel 1:"); // Print the value of 
  Serial.println(ch1);        // each channel
  Serial.print("Channel 2:");
  Serial.println(ch2);
  Serial.print("Channel 3:");
  Serial.println(ch3);
  delay(100); // I put this here just to make the terminal 
              // window happier
}
[/iconbox]


 

Kaynakça:

 

  1. PWM nedir ?, http://pwm.nedir.com/
  2. RC Hobby Controllers and Arduino, https://www.sparkfun.com/tutorials/348
  3. analogWrite(), http://www.arduino.cc/en/Reference/AnalogWrite

 

 

Post A Comment

Watch Dragon ball super