我问这个问题主要是为了学习。
我了解到Hz是一秒钟内的周期数。
考虑到这一点,我尝试了以下示例。
示例 1
void loop() {
digitalWrite(3,HIGH); // make pin 3 have a voltage of ~ 5V
delay(500); // wait 0.5 seconds
digitalWrite(3,LOW); // make pin 3 have a voltage of ~ 0V
delay(500); // wait 0.5 seconds
}
该代码的频率为 1 Hz,因为电压上升 0.5 秒,下降 0.5 秒。我的电压表显示 .99999 Hz
占空比为 50%,因为电压是上升时间的一半和下降时间的一半。
示例 2
void loop() {
digitalWrite(3,HIGH); // make pin 3 have a voltage of ~ 5V
delay(90); // wait 0.09 seconds
digitalWrite(3,LOW); // make pin 3 have a voltage of ~ 0V
delay(10); // wait 0.01 seconds
}
该代码的频率为 10 Hz,因为每个周期为 0.1 秒(90 ms + 10 ms)。在 10 个周期内,您将达到 1 秒。此代码的占空比为 10%。
以下示例基本上是问题:
示例 3
void loop() {
digitalWrite(3,HIGH); // make pin 3 have a voltage of ~ 5V
// Do not delay
digitalWrite(3,LOW); // make pin 3 have a voltage of ~ 0V
// Do not delay
}
如果我运行此代码,我的电压表显示的频率为 112,000 Hz 或 112 kHz:
我相信这是我能得到的最高频率。我不会在周期之间拖延。为什么当我用谷歌搜索 Arduino Uno 的频率时,它会说:
示例 4
谷歌可能是正确的,Arduino 的频率是 16 MHz。如果这是真的,那么 Arduino 怎么能发送 433 MHz 的频率呢?我想要买这个东西:
当我现在将延迟设置为 时Example 3
,我可以获得的最高频率是 112 kHz(使用 ak)。如何发送 433 MHz 频率(带有 M)?