D17 - 「脉冲×宽度×调变」:PWM 功能

先从 Firmata 找到类比相关功能。

PWM

Supported Modes 中,可以看到所有支援功能:

DIGITAL_INPUT      (0x00)
DIGITAL_OUTPUT     (0x01)
ANALOG_INPUT       (0x02)
PWM                (0x03)
SERVO              (0x04)
SHIFT              (0x05)
I2C                (0x06)
ONEWIRE            (0x07)
STEPPER            (0x08)
ENCODER            (0x09)
SERIAL             (0x0A)
INPUT_PULLUP       (0x0B)

SPI                (0x0C)
SONAR              (0x0D)
TONE               (0x0E)
DHT                (0x0F)

其中与 PWM 相关功能只有一个:

PWM                (0x03)

所以说 PWM 具体来说到底输出甚麽讯号呢?这就要依据「占空比(Duty Ratio)」而定。

D16 - PWM 输出讯号.png

硬体实作

这里预期使用 PWM 建立 LED 调光器,需要准备以下设备与零件:

  • 三用电表 * 1

  • 面包板 * 1

  • LED * 1

    准备甚麽颜色都可以。

    2021-09-12 17.51.28.jpg

    D11 - LED 原理.png

  • 电阻 220 欧姆 * 1

    用来分配电路中的电压、电流。

    2021-09-12 17.51.04.jpg

    D11 - 电阻原理.png

    检查硬体

    老样子要检查小夥伴们是否正常,检查步骤基本上与数位功能章节相同。

    LED

    利用三用电表确认 LED 是否能够正常发光。

    D11 - 确认 LED 正常.png

    LED 没有亮的话,可以试试看:

    • 探棒交换连结长短脚
    • 确保金属接触良好
    • 换一个 LED

    电阻

    利用三用电表确电阻选用是否正确且功能正常。

    D11 - 确认电阻正常.png

    如果数值都一直显示 1,可以试试看:

    • 确认量测档位正确
    • 确保金属接触良好
    • 换一个电阻

    连接电路

    以下为参考接线方式,可以不用完全相同,只要效果相同即可。

    使用 Uno 板子上的 5V 为 +、GND 为 -。

    与数位输出电路一模一样!

    D16 - PWM 输出电路.png

    电子助教:「哪有一样,我还特别换装捏 ლ(・´ェ`・ლ)」

    鳕鱼:「你甚麽时候产生有人注意你的错觉 ( ˊ__>ˋ )」

    电子助教:( ´•̥̥̥ ω •̥̥̥` )

    总结

    • 了解 Firmata 支援的 PWM 功能
    • 完成 PWM 输出电路

<<:  day16 coroutine job 的那些状态,job state

>>:  DAY 17 制作 Nav Bar - Header

Microsoft MS-100 Dumps PDF with Actual MS-100 Exam Questions

IT business is one of the most famous in the busin...

第 12 集:Sass 编译环境

此篇会介绍三种免费的 sass 编译方法。 Live Sass Compiler 这是一款免费 V...

《Day29》Oracle Database 实体档案

今天我们来介绍关於Oracle的实体档案 Control File Control File是以二进...

Vaadin login with Facebook - day28

目的 使用 Facebook 登入 本日重点 : 本篇使用 Facebook Graph API 登...

Day20:状态参数判读

在 WebSocket 中,对於是否处於连线状态,或是连线有无成功,预设有提供参数供开发者判断,因此...