Soru:
Arduino 433 MHz'de nasıl RF sinyali gönderebilir?
Tono Nam
2020-04-17 01:06:50 UTC
view on stackexchange narkive permalink

Bu soruyu öncelikle öğrenmek için soruyorum.

Hz'nin bir saniyedeki döngü sayısı olduğunu öğrendim.

Bunu göz önünde bulundurarak aşağıdaki örnekleri denedim.

Örnek 1

  geçersiz döngü () {
  digitalWrite (3, YÜKSEK); // 3. pinin ~ 5V voltajı olmasını sağlayın
  gecikme (500); // 0,5 saniye bekleyin
  digitalWrite (3, DÜŞÜK); // 3. pinin ~ 0V voltajı olmasını sağlayın
  gecikme (500); // 0,5 saniye bekleyin
}
 

Bu kodun frekansı 1 Hz'dir çünkü voltaj 0,5 saniye yukarı ve 0,5 saniye düşüktür. Voltmetrem 0,99999 Hz gösteriyor

enter image description here

Görev döngüsü% 50'dir çünkü voltaj, zamanın yarısı yukarı ve yarısı aşağıdadır.

Örnek 2

  geçersiz döngü () {
  digitalWrite (3, YÜKSEK); // 3. pinin ~ 5V voltajı olmasını sağlayın
  gecikme (90); // 0,09 saniye bekleyin
  digitalWrite (3, DÜŞÜK); // 3. pinin ~ 0V voltajı olmasını sağlayın
  gecikme (10); // 0.01 saniye bekleyin
}
 

Bu kodun frekansı 10 Hz'dir çünkü her döngü 0,1 saniyedir (90 ms + 10 ms). 10 döngüde 1 saniyeye ulaşacaksınız. Bu kodun görev döngüsü% 10'dur.


Aşağıdaki örnekler temelde sorudur:


Örnek 3

  geçersiz döngü () {
  digitalWrite (3, YÜKSEK); // 3. pinin ~ 5V voltajı olmasını sağlayın
  // Gecikme
  digitalWrite (3, DÜŞÜK); // 3. pinin ~ 0V voltajı olmasını sağlayın
  // Gecikme
}
 

Bu kodu çalıştırırsam, voltmetrem 112.000 Hz veya 112 kHz'lik bir frekans gösteriyor:

enter image description here

Alabileceğim en yüksek frekansın bu olduğuna inanıyorum. Döngüler arasında gecikmiyorum. W Neden Arduino Uno'nun frekansını google'da aradığımda şöyle diyor:

enter image description here

Örnek 4

Google muhtemelen haklıdır ve frekans Arduino için 16 MHz'dir. Bu doğruysa, bir Arduino nasıl 433 MHz frekans gönderebilir? Bunu satın almak istiyorum:

enter image description here

W Örnek 3 'te olduğu gibi gecikmeyi ayarladığımda, elde edebileceğim en yüksek frekans 112 kHz idi (k ile).433 MHz frekansı (M ile) nasıl gönderilebilir?

Çünkü Arduino 433MHz göndermiyor.Bu modül bunu kendisi yapar.
https://en.wikipedia.org/wiki/Modulation
BTW, örnek 3'te "112kHz" den daha yüksek bir frekans elde etmek istiyorsanız, doğrudan bağlantı noktası manipülasyonları ("PORTx") kullanmalısınız.
Kısa cevap: radyo kiti arduino değil 433MHz oluşturur.
Yukarıda yayınladığınız Google sonuçlarını YANLIŞ OKUYORSUNUZ."490.196 Hz" diyor MHz değil!Burada 1.000.000 öndesiniz.
Örneğin 3 gibi assembly dili kullanırsanız daha hızlı gidebilirsiniz.
Eğer arabam Japonya'da yapılmışsa, sürücü nasıl rusça konuşabilir?Bir şeyin diğeriyle ilgisi yok.
Altı yanıtlar:
Edin Fifić
2020-04-17 01:21:35 UTC
view on stackexchange narkive permalink

Kısa cevap: Değil.
Arduino bu kadar yükseğe hiçbir şey göndermez. Radyo dalgaları aracılığıyla iletişim kurmak için çok yüksek bir frekans (radyo frekansı) üreten başka bir cihaz / modül kullanarak 433MHz CARRIER frekansı (veya bu konuda başka bir frekans) üzerinden yalnızca daha düşük bir frekans (daha düşük bit hızı) sinyal gönderebilir.
Bu durumda 433MHz, NOT THE RATE OF DATA / BITS'dir, ancak verilerin iletildiği / alındığı radyo sinyalinin bir frekansıdır.
Sorunuz, işlemci saat frekansları, işlem hızı, veri hızı ve radyo iletişim aracı olarak "taşıyıcı" frekanslarının anlamı ve arasındaki fark hakkında bilgi eksikliğini gösteriyor, bu nedenle Temel bilgisayar işleme ve ilgili terimler hakkında ve radyo dalgaları üzerinden bilgi aktarmanın araçları ve yolları hakkında daha fazla bilgi edinin ve okuyun.
Temel olarak, taşıyıcı / radyo frekansı, iletmek istediğiniz bilgi / veriler tarafından modüle edilir / değiştirilir, bu nedenle bilgiyi temsil eden bu değişikliklerdir.
Değişikliğin türüne bağlı olarak, 3 temel modülasyon türü vardır.
Genlik Modülasyonu (AM), Frekans Modülasyonu (FM), Faz Modülasyonu (PM).
AM ile, taşıyıcı frekansı sabit / aynı tutulurken, taşıyıcı frekansın genliği / gücü bilgi iletmek için değiştirilir.
FM taşıyıcı genliğini aynı (maksimumda) tutarken, frekans belirli bir miktar yukarı ve aşağı değişirken bilgiyi temsil eder.
PM, FM'e benzer ve taşıyıcı frekansını faz değiştirerek bilgi taşır.

Uç bir örnek olarak: Arduino'yu kırmızı bir LED'i yakmak için kullanırsanız, bu LED elektromanyetik dalgaları yaklaşık 430 THz frekansta iletiyor olacaktır.Ancak bunun Arduino ile hiçbir ilgisi yok, LED bunu doğrudan bir bataryadan çalıştırırsanız da yapardı.
@ Åsmund - güzel benzetme
Ve LED'i 1 Hz'de yanıp sönecek şekilde programlarsanız, etkin sinyal 430 Thz, 1 Hz blok dalgası ile çarpılır.
Başka bir örnek, ışığınız şebeke frekansı nedeniyle 120Hz frekansında titriyor, ışığı bazılarıyla iletişim kurmak için yine de sadece kapatıp veya saniyede bir açarak kullanabilirsiniz, taşıyıcı frekansı 120Hz'dir, ancak 1Hz'de veri gönderiyorsunuz
@MSalters, bir LED'in monokromatik bir dalgaya benzeyen hiçbir şey yaymadığı düşünüldüğünde, aslında bir sinyal karmaşası olurdu ...
@Ferrybig, bu durumda taşıyıcı frekansı değil, daha ziyade yüksek frekanslı gürültüdür (1 Hz sinyal bant genişliğimiz göz önüne alındığında kolayca filtreleyebiliriz).Gerçek taşıyıcı frekansları yaklaşık 400 THz ila 700 THz arasındadır ve bu aralıktaki frekansların her biri yedekli olarak aynı bilgiyi taşır (120Hz gürültü dahil).
user1850479
2020-04-17 01:15:43 UTC
view on stackexchange narkive permalink

Neden arduino uno sıklığını google'da aradığımda şöyle diyor:

16 MHz, işlemcinin saat frekansıdır, temelde CPU çekirdeğinin ne kadar hızlı çalıştığıdır.

Bu doğruysa, bir Arduino nasıl 433 MHz frekans gönderebilir?

433 MHz merkez frekansında yayın yapan bir radyo satın alırdınız. CPU'nun hızının, telsizin hangi frekansta ilettiği ile hiçbir ilişkisi yoktur. Örneğin, aşırı bir fiber optik durumunda, optik frekans 300.000 GHz, ancak CPU'nuz yine de 16 MHz olacaktır.

Şimdi Örnek 3'e gecikme ayarladığımda elde edebileceğim en yüksek frekans 112 kHz (k ile) idi. 433 MHz frekansı (M ile) göndermek nasıl mümkün olabilir?

Radyo veri sayfası size ona nasıl bağlanacağınız konusunda bir fikir vermelidir, ancak temelde bir veri yoluna (ör. USB) bağlanır veya size okuyacağınız bazı veri sinyallerini sağlar. Radyonun veri sayfası size ne diyor yapmak?

Justme
2020-04-17 01:27:20 UTC
view on stackexchange narkive permalink

Bu "örnekler" yanıtlanabilecek sorular gibi görünüyor:

3) DigitalWrite işleviyle döngüdeki bir pinin değiştirilmesi yavaştır.Bu yüzden sadece 112 kHz alıyorsunuz.Mikrodenetleyici hala 16 MHz saat ile çalışıyor.

4) Verici kendi RF taşıyıcı dalgasını oluşturur.Modülün iletmesi için yavaş veri gönderebilirsiniz.

analogsystemsrf
2020-04-17 01:43:05 UTC
view on stackexchange narkive permalink

Radyo modülü, basit bir açma / kapama anahtarı uygulayabilir.433 MHz için veri hızının düşük olması gerekir, bu nedenle yan bantlar 1 MHz tahsisine sığar.

Garaj kapısı açıcıları bu türdendir.

Pratik Kunkolienkar
2020-04-18 22:41:21 UTC
view on stackexchange narkive permalink

Arduino, 16MHz'de çalışır. Bu, eğer onu derlemede programladıysanız, her komutun \ $ \ frac {1} {16 \ times10 ^ {6}} = 62.5 \ mathrm {nS} \ $ . Muhtemelen montaj yapmak istemiyorsunuz. Derleyici, kodunuzu derleme ve sonra hex'e dönüştürecek kadar etkilidir.

Alabileceğim en yüksek frekansın bu olduğuna inanıyorum

8 MHz'den daha düşük bir frekans almanızın nedeni (16/2; 1 pini açma talimatı, kapatma talimatı) Arduino'nun yeni başlayanlar için çok fazla ek yüke sahip olması ve kodlamaya başlayın, ancak programı nispeten yavaşlatır.

loop () işlevinizi değiştirmek için aşağıdaki kodu kopyalayıp yapıştırın:

  döngü ()
{
    PORTD ^ = (1<<PD3);
}
 

Gecikme yok, sadece bu 1 satır. En son denediğimde bana 3MHz kare dalga verdi. Bu hala tahmin edilen 8MHz değil. Şimdi loop () işlevini, içine sonsuz bir while döngüsü ekleyerek atlamayı deneyelim.

  döngü ()
{
    süre (1)
    {
      PORTD ^ = (1<<PD3);
    }
}
 

Tadaa !!! Şimdi 8 MHz sinyali almalısınız.

Pek çok insan 433MHz sorusunu zaten açıklamış durumda. Sadece konuşmamı frekansa eklemem gerektiğini düşündüm. İsterseniz kodda neler olduğunu açıklamaktan memnuniyet duyarım

Hala muhtemelen 8 MHz sinyal almayacaksınız çünkü PORTS ^ = (1 << PD3) muhtemelen 1'den fazla döngü sürüyor.
Ya muhtemelen haklısın.Ama yakın
Schultzie
2020-04-18 05:58:43 UTC
view on stackexchange narkive permalink

433 MHz, radyo tarafından üretilen frekanstır.

Telsizin yan bandı üzerinden aktarılan veriler hiçbir zaman taşıyıcı sinyal kadar hızlı olmayacak.

Radyoya bir osiloskop takarsanız, 433 MHz sinyali alırsınız.



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 4.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...