PWM (Pulse Width Modulation) ve Arduino ile "RF Düşünüyorum"
Yücel Çetin // 9 Åžubat 2013 // 18 yorum // kategori: Arduino Projeleri, Devre Tasarımı ve Simülasyon, Temel Elektronik  Geçen gün yazdığımız  “Analog Devre Tasarımı Ve Arduino”  yazısında PWM hakkında verdiÄŸimiz bilgilerin eksik kaldığını hissettim ve tekrar PWM olayına dalış yapmak için bu yazıyı yazdım.
    Ömer Koman “ında dediÄŸi gibi: ” transient iÅŸlemin anlatıldğı (kodun üstündeki mavili kırmızılı -v -b baÅŸlıklı)grafikte çift fazlı pwm görüntüsü var arduinoda ise tek fazlı pwm oluÅŸturuyoruz. kafa karıştırıcı olmuÅŸ. dac dönüşümü için transient hesaplama linkinkindeki grafik ve r-c devresi de konsa daha anlaşılır olacak.” Â
  Yazıda  bir resimde çift fazlı bir PWM var.  Temsili olarak koyduğum resim kafaları karıştırmış olabilir. Bu yazı ile düzelteceğimi düşünüyorum.
 Daha  önce LTSpice programı ile Analog devre tasarladık, değişik  grafikler elde ederek bilgisayar ortamında gerçekten iyi sonuçlar elde edilebildiğini görmüş olduk.
 Şimdi düşünelim Arduino ile PWM kullanarak ürettiÄŸimiz sinyaller ile bir servoyu çalıştırdık. Bir analog veriyi bir Arduino”dan diÄŸerine yolladık. Fakat elimizde tek arduino var ve biz verici tarafta PWM”i kendimiz Arduino”dan bağımsız bir ÅŸekilde üretmek istiyoruz. Gelin bunu yapalım daha sonra kendimize açtığımız bu yolda istersek bunu bir RF haberleÅŸme sisteminde kullanırız istersek de bir DC motorun hızını veya konumunu ayarlarız.
“LTSpice eÄŸitimi-1” ve “Analog Devre Tasarımı Ve Arduino”  yazılarına bu linklerden ulaÅŸabilirsiniz. Evet bunlara baktıktan sonra iÅŸlemlerimize baÅŸlayalım.
 İki farklı devre yapalım. Birincisi Linear Technology”nin LTC6992 ile voltaj kontrollü bir modülatör olsun. Devre standart bir devre gördüğümüz gibi giriÅŸinde V1 kaynağının deÄŸeri deÄŸiÅŸtirilerek çıkıştaki PWM ayarlanabilir. V giriÅŸine koyduÄŸumuz kaynak 3.3 V “luk dolayısıyla çıkıştaki max. deÄŸer de 3.3 V olacaktır.
Burada (Şekil-2) ise çıkıştaki sinyali görebiliyoruz. Yaklaşık 0.5us aralıklarla 0-3.3V değerlerini almakta. Bunu istediğimiz değere göre girişteki V1 voltaj değerini değiştirerek aralıkları değiştirebiliriz.
Arduino 3.3V “luk deÄŸerlerde kullanılanları olduÄŸu gibi çoÄŸunlukla 5 Volt deÄŸerinde çalışanları olduÄŸundan onun içinde ayrı bir devre yapalım. Bunu LTSpice içerisindeki NE555 IC ile gerçekleÅŸtirebilirsiniz. Aslında bu IC bizim bildiÄŸimiz LM555 gibi çalışmaktadır. Gerekli belgeye ulaÅŸabilirsiniz.  LM555 datasheet. GiriÅŸe uyguladığımız 5 Volt deÄŸerini R1 ve R2 dirençlerini deÄŸiÅŸtirerek PWM aralıklarını ayarlayabiliriz. Bunlar çıkıştaki deÄŸeri deÄŸiÅŸtirmez. Çıkıştaki deÄŸer ancak giriÅŸteki kaynak deÄŸiÅŸtirilince artar veya azalır. (Åžekil-3)
Çıkıştaki sinyali görüntülediğimizde aşağıdaki gibi bir çıkış elde ettik.(Şekil-4)
Åžu an PWM olayını RF sistemler için nasıl ” kullanabiliriz  ” diye uÄŸraşıyorum. Vericide oluÅŸturduÄŸumuz PWM”i alıcıya gönderdikten sonra bir filtreye sokarak kullanabilecek miyiz? Yoksa kullanılıyor da biz mi beceremeyeceÄŸiz? Hazır  sistemler elbette vardır. Ama oturup teorisini de çıkartıp burada yazabiliriz…Hepsinin cevabını ileriki haftalarda göreceÄŸiz. Fikirlerinizi aÅŸağıdan ulaÅŸtırırsanız sevinirim.  Hatalarımız varsa aÅŸağıdan yorum ile çaldırıp kapatın. Herkese iyi çalışmalar.
Etiketler: analog devre tasarımı > arduino analog devre > arduino devre tasarım > arduino ltspice > arduino pulse > arduino Pulse Width Modulation > arduino pwm > arduino pwm circuit > arduino rf > LTSpice > ltspice analog devre > ltspice öğren > ltspice rf > Pulse Width Modulation
1 bit adc ve comparator ile yapabilirsin rf örneklemeleri.
Arduino Mega 2560 Kullanıyorum ve PWM çıkışlarımdaki pin 7, 8, 9, 10, 11, 12 Frekansı hassas bir ÅŸekilde deÄŸiÅŸtirmek istyorum nasıl yapabilirim…
TIMER 1 (Pin 11,12)
TIMER 2 (Pin 9, 10)
TIMER 4 (Pin 7, 8)
Bu timerlar ile frekansları değiştirmek istiyorum fakat NASIL?
TeÅŸekkürler…
şurada cevabını verdm http://forum.arduinoturkiye.com/discussion/1161/arduino-mega-2560-pwm-frekans-ayarlama#Item_2
TeÅŸekkürler…
öncelikle selamlar;
Birkaç gündür bende arduino meraklısı oldum çıktım. sizin bu yazınızla karşılaşınca da dedim ki; RF sistem nasıl çalışır. Küçük bir araştırma sonrası durumu az da olsa anladım ve uygulamaya geçtim.
ÅŸimdi sorunumuz ÅŸu;
ben bir arduino kartımla RF transmitter’den veri veya karakter göndericem ,ve karşı arduino ya baÄŸlı RF receiver’den de aldığım veriyi PWM olarak motor sürücüme uygulayacağım , ancak bu durumu bu kadar karmaşıklaÅŸtırmak yerine ben bir arduinodan digerine sayısal deÄŸer göndersem ve karşı arduinoda da aldığım bu sayısal deÄŸeri analogWrite(); koutu ile motor sürücüme uygularsam sanırım sizin dediÄŸinizle aynı iÅŸi yapmış olucak.
Ama illaki PWM sinyal göndermem gerekiyor derseniz, o kısımda pek bir bilgim yok.
motor pwm le çalışan servo ise pwm le süreüleblir sürücüye bile gerek yok. diğer dc motorlarda ise sürücüye ihtiyaç var. bazı endüstriye motorlar ise kendi sürücüsü ile gelir serial olarak da kontrol edilebilir. bence siz projenizi parçalara bölün önce motorunuzu kontrol etmeyi öğrenin buna göre ihtiyacınınz olan komut listesini oluşturun. daha sonra bunu serial ile pcden komutları yollayarak test edin en son ise bunu rf olur wifi olur ethenrnet olur sms olur neyle yönetecekseniz yönetin adımlar böyle olursa çok güzel bir proje çıkarmış olursunuz.
bana arduino pll frekans artımı yani 48mhz nasıl çalışır biri yardımcı olsun.
Arduino due ye baktinizmi onun calisma frekansi daha yuksek. Foruma gelin sorun birileri ugrasmis olabilir
elimde arduino leonardo var atmega 32u4 ve datasheet pll 48mhz diyor acaba arduino kodu nedir? 16 mhz 48mhz yapmak için
http://r6500.blogspot.de/2014/12/fast-pwm-on-arduino-leonardo.html ÅŸurada birileri biÅŸeyler denemiÅŸ bide ÅŸu http://harizanov.com/2013/04/crazy-high-frequency-pwm-with-atmega32u4/
hocam tşk ederim bu konuda bunu tam olarak deneyip acaba olumlu sonuç elde eden varmı? birde pwm frekansı bu şekilde değişirse motor sürücü vs çalışmasında neler olabilir.
servo motorun datasheetinde kontrol pwm frekansları için bilgi vardır gereğinden yuksek pwm frekansları servonun kontrol işlemcisi tarafında hatalı algılanabilir denemeden belli olmaz.
Merhabalar,arduino ile dc motor süreceğim ama potansiyometre kontrollü olacak nasıl yapabilirim.
motorun hızını ayarlamak için pwm çıkışını kullanacaksınız pwm çıkışına bir transistoru baÄŸlayın transistor collektorune de motoru baÄŸlayacaksınız. potansiyometreyi ise adc ye baÄŸlayıp elde ettiÄŸiniz deÄŸerin buyukluguna göre pwm sinyalini ayarlarsanız. butun bu anlattıkları sitedeki temel baÄŸlantılar yazımda resimlerle gösterilmiÅŸ durumda…
İyi günler ben 7 adet powerledi ( MAX 3,4V & 0,350A ) arduino ile sürmek ve PWM sayesinde paraklık kontrolu yapmak istiyorum 12V & 8,5A bir güç kaynağım var. Buna aşşağıdaki sürücüyü bağlasam sürebilir miyim ? Yoksa sürmek için sürücünün önüne bir voltaj yükseltici mi koymam gerekiyor ? Sürücüye kaç volt ile giriş yapmalıyım ?
https://www.roboshop.com.tr/led/led-driver/1w-led-driver-dc-dc-led-surucu
her led için linkteki sürücüden 1 adet kullanmanız lazım. her lediin parlaklığını ayrı ayrı pwm le mi süreceksiniz bilmiyorum programınızda ona göre düzenleme yapmanız lazım. hepsinin parlaklığını aynı anda değiştirecekseniz pwm uçlarını ortak bağlayın. ledlerin 12v ları ortak arduino ve ledlerin gnd ortak bağlanması gerekiyor.
Arduino ile aynı anda farklı frekan değerlerine sahip servolari nasıl surebilirim
pwm frekansı ayarı olan başka bir pwm ve servo kütüphane kullanın adafruite bakın