PWM (Pulse Width Modulation) ve Arduino ile "RF Düşünüyorum"
Yücel Çetin // 9 Şubat 2013 // 16 yorum // kategori: Arduino Projeleri, Devre Tasarımı ve Simülasyon, Temel ElektronikGeç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.