为什么有些别针的数字旁边有“~”符号?

电器工程 Arduino 引脚 脉宽调制 数字逻辑
2022-01-24 10:23:47

我正在看我的 Arduino Uno,我注意到数字引脚上的符号11, 10, 9, 6,53这些是什么意思?这会影响它的工作方式吗?我可以在某些情况下不使用这些引脚吗?

2个回答

放松。别担心。这些引脚被称为PWM并且与其他引脚相同,除了它们具有“额外奖励”。


Arduino网站的一些用途

  • 调光 LED
  • 模拟模拟输出。输出仍以数字方式从 0V 切换到 5V。然而,低通滤波器(电容器和电阻器)来模拟模拟电压。
  • 生成音频信号。
  • 为电机提供变速控制。
  • 生成调制信号,例如驱动红外 LED 用于遥控器。

这个怎么运作:

PWM 引脚由片上定时器控制,该定时器以大约 490Hz 的速率自动切换引脚。“脉冲宽度调制”(PWM)是引脚在该频率的单个周期内保持开启或关闭的时间。这可以使 LED 变暗,给人一种幻觉,它的亮度是以前的一半,实际上它闪烁得非常快。 不同占空比的图像。

当有 25% 的占空比时,它是四分之一的时间。如果您使用 LED,它会显示大约 1/4 的亮度 [给予或接受]。(注意:正如一些人指出的那样,这并不是真正的比例,但为了简单起见,让我们保持这种方式。例如:25% 并不总是亮度的 1/4。)

(如果您真的精通电气,您可以添加一个电容器使其也成为模拟输出。)


如何使用这些引脚输出:

首先,您需要将引脚定义为输出。然后,您使用 analogWrite(ledPin, 128); 它来启动它。ledPin是您要启动 PWM 的 PWM 引脚,128替换为 和 之间的0数字2550: 0% duty cycle(完全关闭引脚)和255: 100% duty cycle(完全打开引脚)

资料来源:http ://www.arduino-tutorials.com/arduino-pwm/


为什么我不能在我的代码中快速打开和关闭灯?:

从技术上讲,您可以,但是,有一些问题:

  • 它可能不如使用带有 Arduino 的硬接线电路精确
  • 只需键入指令而不是使用大量“if”语句就更简单了

如果 Arduino 的唯一目的是生成 PWM 信号,那并不会产生太大的影响。但是,如果您在主循环中放置任何超过 50 毫秒的延迟,则会打乱时序。使用软件方法,您可能希望消除任何“延迟”功能,因为 Arduino 只在一个线程上运行(它一次只能做一件事)。如果您知道自己在做什么,那么调暗灯光不会有太大的不同,但是如果您有一个带 PWM 的额外引脚,那么您只是在使用软件方法浪费时间。


正如其他人指出的那样:

您的电路仍然需要一个电阻器来限制电流和电压。你不能跳过这个。

关于 PWM 引脚的一个常见误解是,在使用 PWM 时,没有必要使用限流电阻(例如,使用 LED)。

这不是真的。PWM 引脚应该被认为是数字引脚,它们会自动打开和关闭。这意味着它们会达到与其他任何引脚相同的高电压。

使用带 PWM 的 LED 时,仍必须使用限流电阻。使用带 PWM 的电机时,您应该(几乎总是)使用晶体管。