Arduino ile Frekanslı PWM Üretme

Gokrtl

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

Kod:
#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.
 

Çevrimiçi üyeler

Çevrimiçi üye yok.

Forum istatistikleri

Konular
7,650
Mesajlar
127,619
Üyeler
3,093
Son üye
temelreis

Son kaynaklar

Son profil mesajları

Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
az bilgili çok meraklı
Back
Top