我一直在寻找我的Arduino UNO和我通过数字引脚注意到,符号11
,10
,9
,6
,5
,和3
。这些是什么意思?这会影响其工作方式吗?在某些情况下,我可以不使用这些引脚吗?
我一直在寻找我的Arduino UNO和我通过数字引脚注意到,符号11
,10
,9
,6
,5
,和3
。这些是什么意思?这会影响其工作方式吗?在某些情况下,我可以不使用这些引脚吗?
Answers:
放松。不用担心 这些引脚被称为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
和255
; 0
:(0% duty cycle
将针脚完全关闭)和255
:100% duty cycle
。(将针脚完全打开)
资料来源:http : //www.arduino-tutorials.com/arduino-pwm/
为什么我不能在我的代码中快速打开和关闭灯?:
从技术上讲,您可以遇到一些问题:
如果Arduino的唯一目的是生成PWM信号,那并没有太大的不同。但是,如果您在主循环中放置的延迟超过50 MS,则会浪费时间。使用这种软件方法,您将想要消除任何“延迟”功能,因为Arduino仅在一个线程上运行(一次只能做一件事)。如果您知道自己在做什么,那么调光不会有太大的区别,但是如果您有一个额外的PWM引脚,那么您只是在浪费软件时间。
正如其他人指出的那样:
您的电路仍然需要电阻来限制电流和电压。您不能跳过此操作。
关于PWM引脚的一个常见误解是,使用PWM时,不必使用限流电阻(例如,带LED)。
这不是真的。PWM引脚应被视为数字引脚,它们会自动打开和关闭。这意味着它们与其他任何引脚都具有相同的高电压。
当使用带PWM的LED时,您仍必须使用限流电阻。当使用带PWM的电机时,(几乎总是)应使用晶体管。