Arduino ile Frekanslı PWM Üretme

Gokrtl

Gökhan Kartal (TeknoDay)
Staff member
Katılım
27 Şubat 2019
Mesajlar
11,212
Youtube da bir video izleyip adımları uyguladım. ama 1000Hz gönderince benim osiloskop 62.000Hz okuyor.

C++:
#include "PWM.h"
int pwm_pin=9;
int32_t frekans=1000;

void setup() {
InitTimersSafe();
SetPinFrequencySafe(pwm_pin, frekans);
}

void loop() {
 pwmWrite(pwm_pin,107);
}

pwm.png


 
Osiloskobun kendi Sinyal jeneratöründen 36kHz ürettiriyorum o da yanlış. Bir anormallik var.
İnşalla programı düzeltiyim derken başka yerleri patlatmamışlardır.


osifreq.png
 
Fixed sample rate seçmişsin, onu kaldır. Ne zaman böyle düz çizgili bir sinyal görüyorsan, sample rate yetersizliği var demektir.
 
Fixed sample rate seçmişsin, onu kaldır. Ne zaman böyle düz çizgili bir sinyal görüyorsan, sample rate yetersizliği var demektir.
Evet fix'i kaldırınca düzeldi. Hiç de fena değil.
Bunu Verici IRLed e gönderceğim ama grafikten okuduğum kadarıyla 5v çıkıyor.
Bu durumda direnç mi takmalıyım verici IRLed'e ?

pwm.png
 
Aslında kütüphane kullanmaya pek gerek yok WGM13 registeri ile biraz uğraşarak istediğin frekansta pwm üretebilirdin.

Bende kütüphane fobisi var ondan
 
Datasheet'e göre gitmek lazım, ama datasheet yoktur herhalde onun. O zaman standart LED lerde olduğu gibi ortalama akımın 20 mA diye varsaymak lazım işi garantiye almak için. Eğer %50 duty cycle olan kare dalga veriyorsan (senin kare dalga aşağı yukarı %50) maksimum akım 40 mA olursa, ortalama akım 20 mA olur. 5V veriyorsan, maksimum da 40 mA istiyorsan, direnç ne olmalı? Direncin watı ne olmalı?
 
IR alıcının çıkışı, vericiden gelen XX kHz sinyali görünce çıkışı lojik 1 olacak, sinyal yoksa çıkışı lojik 0 olacak. Sadece açma kapama işi yapılacaksa başka birşeye gerek yok. Ama uzaktan kumandalarda olduğu gibi 40 tane buton varsa ve bunların bilgisi gidecekse o zaman bir IR protokolünü uygulaman lazım.
 
IR alıcının çıkışı, vericiden gelen XX kHz sinyali görünce çıkışı lojik 1 olacak, sinyal yoksa çıkışı lojik 0 olacak. Sadece açma kapama işi yapılacaksa başka birşeye gerek yok. Ama uzaktan kumandalarda olduğu gibi 40 tane buton varsa ve bunların bilgisi gidecekse o zaman bir IR protokolünü uygulaman lazım.
Aslında panasonic IR sistem kullanmak lazım.
Benim nezlimde en güvenilir IR protokol panasonic.

Atıyorum panasonic televizyonların on/off sinyalini baz alarak oluşturacağız
 
Datasheet'e göre gitmek lazım, ama datasheet yoktur herhalde onun. O zaman standart LED lerde olduğu gibi ortalama akımın 20 mA diye varsaymak lazım işi garantiye almak için. Eğer %50 duty cycle olan kare dalga veriyorsan (senin kare dalga aşağı yukarı %50) maksimum akım 40 mA olursa, ortalama akım 20 mA olur. 5V veriyorsan, maksimum da 40 mA istiyorsan, direnç ne olmalı? Direncin watı ne olmalı?
Koskoca mühendis oldun bir ohm kanunu öğrenemedin. :katil2:

P= Power, I= Akım, V= Volt, R= Direnç

P=VxI

5x0.040= 0.2 watt (1/4 çeyrek watt direnç yeter)

R=V/I

5/0.040=125 Ohm
 
Gücü ortalama akıma göre hesaplayacaksın, maksimuma göre değil.
 
Soldaki Verici IRLed, Sağdaki Alıcı.
Sağdaki alıcı kodlarında bir yanlışlık var mı?
Her halukarda 0 okuyorda.
36-37-38kHz denedim.

pwm_duino.png
 
Belki invert çalışıyordur yav :) Sinyali kesince 1 oluyor mu?
 
Dur dur onu çözdüm. Alıcının VCC sini takmamışım.
Şimdi şöyle karmaşık bir durum var.
IRLedin +bacağındaki jumper'ı söküp takarak On-Off yapıyorum.
Alıcı tarafda okuma 1 ise jumper'ı sökünce 2-3sn 0 oluyor sonra yine 1 oluyor. Jumper'ı takınca da 2-3sn konum değiştirip tekrar eski haline dönüyor. Yani sökünce 0, takınca 1 durumu yok. Değişken hareket ediyor.
Bu arada bir zararı var mı bilmiyorum Verici IRLed Alıcıya değdi değecek kadar yakın.

20220708_202417.jpg


20220708_202413.jpg
 
Şöyle daha açıklayıcı olacak;
Alıcı okuması her halukarda 1
Verici ile araya engel koyunca Alıcı hala 1
Engeli çekince 1-2 saniyeliğine Alıcı 0 ve sonra yine 1
 
Sanırım Bu üç bacaklı alıcıların farklı bir amacı var. Herhalde protokolü çözücü filan bir özelliği var.
Konuyu araştırmaya devam edince ihtiyacımı iki bacaklı bir photo transistörün karşılayacağını anladım.


FB_IMG_1657343952817.jpg
 
Protokol çözme falan yapmıyor onlar. Verici sinyal, genlik modülasyonlu bir taşıyıcı. Alıcı adece demodülasyon yapıyor. Protokol işleme işini MCU nun yapması gerekiyor.
 
Alıcının çıkışını osiloskopla inceler misin? Vericinin uzaklığına göre farklı ofsette ve genlikte bir sinyal vermesi lazım çıkıştan. Belki benim km saatindeki hall sensörlü cıvata dedektörü(!) gibi Tek bir opampla mesafeden bağımsız 0-1 şeklinde bir çıkış elde edip frekansı okuyabilirsin.
 
Alıcının çıkışını osiloskopla inceler misin? Vericinin uzaklığına göre farklı ofsette ve genlikte bir sinyal vermesi lazım çıkıştan. Belki benim km saatindeki hall sensörlü cıvata dedektörü(!) gibi Tek bir opampla mesafeden bağımsız 0-1 şeklinde bir çıkış elde edip frekansı okuyabilirsin.

Tamamen lojik çıkış veriyor o alıcılar. 0 ile Vcc ye yakın bir değer arasında değişiyor ve mesafeye bağımlı değil.
 

Forum istatistikleri

Konular
5,833
Mesajlar
99,481
Üyeler
2,477
Son üye
krmz

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top