Arduino Due是基于ARM控制器的开发板,专为电子工程师和业余爱好者设计。ARM体系结构在现代电子领域具有很大的影响力,我们在移动设备,iPod和计算机等设备中广泛使用它们。如果有人要设计工业系统,则必须在ARM控制器上进行设计。ARM控制器因其敏捷性而非常重要。
我们已经在Arduino Due入门中介绍了Arduino Due的基础知识。现在,在本教程中,我们将使用DUE生成的PWM信号来调整LED的亮度。DUE PWM(脉冲宽度调制)信号在恒定电源上提供可变电压。
脉冲宽度调制:
在上图中,如果开关在一段时间内连续闭合,则在此期间LED会连续亮起。如果开关闭合半秒,然后断开半秒,则LED仅在前半秒亮起。现在,LED在整个时间内点亮的比例称为“占空比”,可以按以下公式计算:
占空比=打开时间/(打开时间+关闭时间)
占空比=(0.5 /(0.5 + 0.5))= 50%
因此,平均输出电压将为电池电压的50%。
这是一秒钟的情况,我们可以看到LED熄灭半秒钟,而LED亮起另一半秒钟。如果ON和OFF时间的频率从“每秒1”增加到“每秒50”。人眼无法捕获此开和关频率。对于正常的眼睛,将看到LED发光,亮度只有一半。因此,随着开启时间的进一步减少,LED显得更轻。
我们将对DUE进行编程以获取PWM,并连接一个LED来显示其工作情况。
DUE中有12个PWM通道(引脚2至引脚13),我们可以使用其中任何一个或全部。在这种情况下,我们将在PIN2处保持一个PWM信号。
组件:
- Arduino到期
- 电源(5v)
- LED
- 按钮(两片),
- 1KΩ电阻(两个),220Ω电阻
和Arduino IDE-Arduino Nightly软件(https://www.arduino.cc/zh/Main/Software)。
电路图及工作说明:
该电路按照电路图连接在试验板上。但是,在连接LED端子时必须注意。尽管按钮可以显示弹跳效果,但是在这种情况下,它不会引起可观的错误,因此我们这次不必担心。
从DUE获取PWM信号很容易。Arduino IDE提供了有用的功能,减轻了程序员的难度。如果要进行裸芯片编程,则需要为PWM信号设置一个ATMEGA控制器,这并不容易。我们必须定义许多寄存器和设置以获得准确的信号,但是在Arduino中,我们不必处理所有这些事情。我们已经使用ATmega32,Arduino Uno和555定时器IC讨论了脉宽调制。
默认情况下,所有头文件和寄存器都是由Arduino IDE预先定义的,我们只需要调用它们即可,就是这样,我们将在适当的引脚上提供PWM输出。我们还需要调用某些命令来获取PWM信号,下面将讨论这些命令:
pinMode(2,OUTPUT)AnalogWrite(引脚,值)
首先,我们需要选择PWM输出通道或从DUE的12个引脚中选择一个引脚,之后我们需要将该引脚设置为输出。由于我们将PIN2用作输出,因此我们将其设置为OUTPUT,如第一行所示。
接下来,我们需要通过调用函数“ AnalogWrite(pin,value) ”来启用DUE的PWM功能。此处的“引脚”代表需要PWM输出的引脚号。我们将其设置为“ 2”,因此在PIN2处获得PWM输出。“值”是打开值,在0(始终关闭)和255(始终打开)之间变化。我们可以在此空间中为LED所需的亮度写入适当的值。
我们在DUE板上连接了几个按钮,以更改此值。一个按钮用于增加亮度值,另一按钮用于减小亮度值。完成Due的编程后,我们可以通过按这些按钮来调整亮度。