PWM, Dijital ve Analog Sinyal Nedir? Arduino ile Temel Sinyal Türleri
Arduino ile elektronik projelerine başlayanların karşılaştığı en önemli kavramlardan bazıları dijital sinyal, analog sinyal ve PWM sinyalidir. Sensörlerden veri okumak, LED yakmak, motor sürmek veya RGB LED kontrol etmek gibi birçok uygulamada bu sinyal türleri kullanılır.
Bu yazıda dijital, analog ve PWM sinyallerinin ne olduğunu, aralarındaki farkları ve Arduino’da nasıl kullanıldıklarını örneklerle inceleyeceğiz.
Sinyal Nedir?
Elektronikte sinyal, devre elemanları arasında bilgi taşıyan gerilim seviyeleridir. Arduino’nun pinlerinden çıkan veya sensörlerden gelen bilgiler belirli gerilim değerleriyle ifade edilir.
Bu gerilimler kullanım amacına göre dijital, analog veya PWM sinyali olabilir.
Dijital Sinyal Nedir?
Dijital sinyal yalnızca iki farklı duruma sahiptir:
- LOW: 0 Volt
- HIGH: 5 Volt veya 3.3 Volt
Başka bir ifadeyle dijital sinyal yalnızca açık veya kapalı bilgisini taşır. Arduino’da dijital sinyaller genellikle LED, buton, röle ve dijital sensörlerin kontrolünde kullanılır.
Örneğin aşağıdaki kod Arduino’nun 13. pinine bağlı LED’i yakar:
digitalWrite(13, HIGH);
Aşağıdaki kod ise LED’i söndürür:
digitalWrite(13, LOW);
Dijital sinyalde ara değerler bulunmaz. Bir pin ya HIGH seviyesindedir ya da LOW seviyesindedir.
Analog Sinyal Nedir?
Analog sinyal, belirli bir aralıkta sürekli değişebilen gerilim değerlerinden oluşur. Arduino Uno’da analog girişler varsayılan olarak 0 ile 5 Volt arasındaki gerilimi okuyabilir.
Arduino Uno, analog girişlerden gelen gerilimleri 10 bit çözünürlükle sayısal değere dönüştürür. Bu nedenle okunan değerler 0 ile 1023 arasında olur.
| Gerilim | Arduino Okuma Değeri |
|---|---|
| 0 Volt | 0 |
| 2.5 Volt | Yaklaşık 512 |
| 5 Volt | 1023 |
Arduino’da analog veriler analogRead() fonksiyonu ile okunur. Örneğin A0 pinine bağlı bir potansiyometrenin değerini okumak için aşağıdaki kod kullanılabilir:
int deger = analogRead(A0);
Bu kod A0 pinindeki gerilim değerini okuyarak 0 ile 1023 arasında bir sayı döndürür.
Analog sinyaller genellikle aşağıdaki sensör ve devre elemanlarında kullanılır:
- Potansiyometre
- LDR ışık sensörü
- Sıcaklık sensörü
- Gaz sensörü
- Basınç sensörü
PWM Sinyali Nedir?
PWM, İngilizce Pulse Width Modulation ifadesinin kısaltmasıdır. Türkçede Darbe Genişlik Modülasyonu olarak adlandırılır.
PWM, dijital pinler kullanılarak analog benzeri çıkış elde etmeyi sağlayan bir tekniktir. Arduino Uno’da gerçek analog çıkış bulunmaz. Bunun yerine PWM yöntemi kullanılarak LED parlaklığı, RGB LED renkleri veya DC motor hızı kontrol edilebilir.
PWM sinyali çok hızlı şekilde HIGH ve LOW seviyeleri arasında geçiş yapar. Bu geçişlerde sinyalin açık kalma süresi değiştirilerek ortalama gerilim etkisi değiştirilmiş olur.
| PWM Oranı | Etkisi |
|---|---|
| %0 PWM | Sürekli LOW, LED sönük |
| %25 PWM | Düşük parlaklık |
| %50 PWM | Orta parlaklık |
| %75 PWM | Yüksek parlaklık |
| %100 PWM | Sürekli HIGH, tam parlaklık |
İnsan gözü bu hızlı anahtarlamayı algılayamaz. Bu nedenle LED’in çok hızlı yanıp sönmesi yerine parlaklığı değişiyormuş gibi görünür.
Duty Cycle Nedir?
PWM sinyalinde en önemli kavramlardan biri Duty Cycle, yani görev döngüsüdür. Duty Cycle, sinyalin bir periyot boyunca ne kadar süre HIGH seviyesinde kaldığını ifade eder.
%25 Duty Cycle
■■□□□□□□
Sinyal zamanın %25’inde HIGH seviyesindedir.
%50 Duty Cycle
■■■■□□□□
Sinyal zamanın yarısında HIGH seviyesindedir.
%75 Duty Cycle
■■■■■■□□
Sinyal zamanın %75’inde HIGH seviyesindedir.
Duty Cycle arttıkça LED daha parlak yanar veya motor daha hızlı döner.
Arduino’da PWM Nasıl Kullanılır?
Arduino’da PWM çıkışı analogWrite() fonksiyonu ile oluşturulur. Arduino Uno’da PWM değeri 0 ile 255 arasında ayarlanabilir.
Örneğin aşağıdaki kod LED’i tamamen söndürür:
analogWrite(9, 0);
Aşağıdaki kod LED’i yaklaşık %50 parlaklıkta yakar:
analogWrite(9, 128);
Aşağıdaki kod LED’i tam parlaklıkta yakar:
analogWrite(9, 255);
Arduino Uno’da PWM Destekleyen Pinler
Arduino Uno üzerinde PWM destekleyen pinlerin yanında genellikle ~ işareti bulunur. PWM destekli pinler şunlardır:
- D3
- D5
- D6
- D9
- D10
- D11
Bu pinlerde analogWrite() fonksiyonu ile PWM çıkışı alınabilir.
Dijital, Analog ve PWM Arasındaki Farklar
Dijital, analog ve PWM sinyalleri benzer projelerde kullanılabilse de çalışma mantıkları birbirinden farklıdır.
| Özellik | Dijital Sinyal | Analog Sinyal | PWM Sinyali |
|---|---|---|---|
| Değer Aralığı | LOW / HIGH | Sürekli değişir | 0 - 255 |
| Gerçek Analog mu? | Hayır | Evet | Hayır, analog benzeri çıkış etkisi oluşturur |
| Arduino Fonksiyonu | digitalWrite() / digitalRead() | analogRead() | analogWrite() |
| Kullanım Alanı | LED, buton, röle | Sensör okuma | LED parlaklığı, motor hızı, RGB LED |
Hangi Durumda Hangisi Kullanılır?
Dijital Sinyal Nerede Kullanılır?
- LED yakma ve söndürme
- Buton okuma
- Röle kontrolü
- Dijital sensörler
Analog Sinyal Nerede Kullanılır?
- Potansiyometre okuma
- LDR ışık sensörü okuma
- Gaz sensörü okuma
- Basınç sensörü okuma
- Sıcaklık sensörü okuma
PWM Sinyali Nerede Kullanılır?
- RGB LED kontrolü
- LED parlaklığı ayarlama
- DC motor hız kontrolü
- Fan hız kontrolü
Sık Yapılan Hatalar
Arduino’ya yeni başlayanların en sık yaptığı hatalardan biri, analogWrite() fonksiyonunun gerçek analog çıkış ürettiğini düşünmektir.
Aslında Arduino Uno üzerinde gerçek analog çıkış bulunmaz. analogWrite() fonksiyonu PWM sinyali üretir.
Bir diğer yaygın hata ise PWM desteklemeyen pinlerde analogWrite() kullanmaya çalışmaktır. Arduino Uno’da PWM etkisi almak için D3, D5, D6, D9, D10 ve D11 pinleri tercih edilmelidir.
Sık Sorulan Sorular
Arduino Uno’da gerçek analog çıkış var mı?
Arduino Uno’da gerçek analog çıkış yoktur. Analog çıkışa benzer etki elde etmek için PWM sinyali kullanılır.
analogRead() ile analogWrite() aynı şey mi?
Hayır. analogRead() analog girişlerden veri okumak için kullanılır. analogWrite() ise PWM çıkışı oluşturmak için kullanılır.
PWM sinyali LED parlaklığını nasıl değiştirir?
PWM sinyali LED’i çok hızlı şekilde açıp kapatır. HIGH kalma süresi arttıkça LED daha parlak, azaldıkça daha düşük parlaklıkta görünür.
Her Arduino pininde PWM kullanılabilir mi?
Hayır. Arduino Uno’da PWM için D3, D5, D6, D9, D10 ve D11 pinleri kullanılmalıdır.
Sonuç
Dijital, analog ve PWM sinyalleri Arduino projelerinin temel yapı taşlarıdır. Dijital sinyaller yalnızca açık ve kapalı bilgisi taşırken, analog sinyaller sürekli değişen değerleri ifade eder. PWM ise dijital pinler kullanılarak analog benzeri çıkış elde edilmesini sağlayan bir tekniktir.
Bu kavramları doğru öğrenmek; LED kontrolü, motor sürme, sensör okuma ve robotik projeler gibi birçok uygulamayı daha kolay anlamanızı sağlar. Arduino ile geliştireceğiniz projelerde hangi sinyal türünü kullanmanız gerektiğini bilmek, daha doğru ve verimli devreler tasarlamanıza yardımcı olur.
Arduino Projeleri İçin Gerekli Ürünleri İnceleyin
Arduino Uno, sensör modülleri, RGB LED, motor sürücü, jumper kablo, breadboard ve direnç çeşitleriyle kendi elektronik projelerinize kolayca başlayabilirsiniz.
Robomer Ürünlerini İncele