找到 203 篇文章 关于 Arduino 的

使用 Arduino 控制步进电机

Yash Sanghvi
更新于 2021-05-31 14:39:12

582 次浏览

步进电机将全旋转分成多个离散的步长,步长范围从低至 12 步到高至每转 200 步(对应于每步 30 度到 1.8 度的角度)。直流电机连续旋转,而步进电机则以离散的方式、按步长角度旋转。电路图单极性和双极性步进电机的电路图和所需组件可以在这里找到 - https://www.arduino.cc/en/Tutorial/LibraryExamples/StepperOneRevolution请注意,步进电机通过达林顿阵列(对于单极性步进电机)或 H 桥(对于双极性步进电机)连接到 Arduino Uno 的 8-11 引脚。步进... 阅读更多

使用 Arduino 控制直流电机

Yash Sanghvi
更新于 2021-05-31 14:41:28

473 次浏览

直流电机是最简单的电机类型。它有两个端子或引线。当连接电池时,电机将旋转,如果反转连接,电机将反向旋转。如果端子上的电压降低,电机速度将相应降低。在本文中,我们将了解如何将直流电机与 Arduino 接口并控制其速度。我们不会研究反转电机方向,因为这需要额外的 IC(H 桥)。在本文末尾,我将提供一些... 阅读更多

在 Arduino 中从源分离中断

Yash Sanghvi
更新于 2021-05-31 14:42:30

1K+ 次浏览

我们已经看到,为了将中断连接到源,我们使用 .attachInterrupt() 函数,并使用所需的参数。例如,为了将中断连接到特定引脚,我们使用attachInterrupt(digitalPinToInterrupt(pin), ISR, mode);同样,要从源分离中断,我们可以调用 detachInterrupt() 函数。这将简单地禁用该特定中断。禁用引脚中断的推荐语法为 -detachInterrupt(digitalPinToInterrupt(pin))其中 pin 是您希望禁用中断的引脚号。

在 Arduino 中启用和禁用中断

Yash Sanghvi
更新于 2021-05-31 14:42:53

7K+ 次浏览

如果您希望禁用中断(在执行某些关键代码时,尤其是在必须在给定时间段内完成的代码时),您可以使用 noInterrupts() 函数来实现。一旦您的关键代码执行完毕,并且您希望重新启用中断,您可以使用 interrupts() 函数来实现。请注意,Arduino 中默认情况下启用了中断,因此,在没有初始调用 noInterrupts() 的情况下调用 interrupts() 是不必要的。示例包含 noInterrupts() 和 interrupts() 的代码的一般结构如下所示 -void setup() {    // 在此处放置您的设置代码,仅运行一次: } ... 阅读更多

检查 Arduino 中的字符是否可打印

Yash Sanghvi
更新于 2021-05-31 14:43:23

380 次浏览

通过各种操作,您可能会遇到不可打印的字符。毕竟,char 是一个 8 位数字,如果您查看 ASCII 表(https://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html),只有 32 到 127 的值,或者总共 96 个值中的 127 个是可打印的(参见 http://facweb.cs.depaul.edu/~sjost/it212/documents/ascii-pr.htm)。ASCII 只使用 7 位数字,而不是 8 位。因此,如果您从函数获得 char 输出,并希望检查它是否可打印,则可以使用 Arduino 的 isPrintable() 函数。语法isPrintable(myChar)其中 myChar 是要检查的字符。如果字符可打印,则此函数返回 true。示例void setup() { ... 阅读更多

将 10 位数字映射到 Arduino 中的 8 位

Yash Sanghvi
更新于 2021-05-31 14:45:03

1K+ 次浏览

出于各种原因,通常需要在 Arduino 中执行映射。一个例子是将 10 位 ADC 输出映射到 8 位以节省存储空间。10 位数字将占用 2 字节的存储空间,而 8 位数字将仅占用 1 字节,并且仍然保留 10 位数字的大部分信息。Arduino 具有一个现成的 map() 函数来实现此目的。语法map(value, fromLow, fromHigh, toLow, toHigh)其中,value 是要映射的值;fromLow 和 fromHigh 是当前值的范围边界;toHigh 和 toLow 是新值的范围边界... 阅读更多

清除/设置 Arduino 中数字的特定位

Yash Sanghvi
更新于 2021-05-31 14:38:36

1K+ 次浏览

当您深入研究高级固件时,您会处理大量寄存器,其特定位需要根据您的用例进行设置或清除。Arduino 有内置函数可以做到这一点。语法bitSet(x, index)和,bitClear(x, index)其中 x 是其位需要设置/清除的数字,index 是位的位数(0 表示最低有效位或最右边的位)。此函数会就地更改数字 x,并返回 x 的更新值。请注意,设置位表示将其值设置为 1,清除位表示将其值设置为 0。示例... 阅读更多

在 Arduino 中将数字限制在给定范围内

Yash Sanghvi
更新于 2021-05-31 14:18:08

4K+ 次浏览

Arduino 中的 constrain() 函数有助于(顾名思义)将数字限制在上限和下限之间。语法constrain(val, min, max)其中,val 是要限制的数字,min 是下限值,max 是上限值如果 val 小于 min,则此函数将返回 min。如果 val 大于 max,则此函数将返回 max。只要 val 在 min 和 max 之间,此函数将返回 val。示例以下示例说明了此函数的使用 -void setup() {    // 在此处放置您的设置代码,仅运行一次: ... 阅读更多

在 Arduino 中对数字进行按位右/左移位

Yash Sanghvi
更新于 2021-05-31 14:17:17

2K+ 次浏览

如果您是固件开发人员,那么将数字或寄存器移位一定数量的位可能非常常见。在 Arduino 中,也可以使用与 C 语言中相同的位移运算符,即 >> 用于右移。语法x >> n 或 x > 1);    Serial.println(x

Arduino 中的取模/余数

Yash Sanghvi
更新于 2021-05-31 14:16:04

7K+ 次浏览

Arduino 中的取模运算符与 C 语言或大多数其他语言中的完全相同。运算符为 %。语法为:a % b,它返回 a 除以 b 时的余数。示例以下示例说明了此运算符的使用 -void setup() {    // 在此处放置您的设置代码,仅运行一次:    Serial.begin(9600);    Serial.println();    Serial.println(10%3);    Serial.println(4%2);    Serial.println(50%9); } void loop() {    // 在此处放置您的主代码,反复运行: }输出串口监视器输出如下所示。您可以自己计算余数并验证输出是否正确。

广告