2K+ 阅读量
在处理包含多个函数的大型文件时,行号通常是必要的。大多数开发人员都希望在其代码编辑软件中显示行号。默认情况下,Arduino IDE 中隐藏了行号。为了显示行号,请转到文件→首选项。在打开的对话框中,勾选“显示行号”复选框。行号现在将显示在草图中。或者,您始终可以从屏幕左下角获取光标的行号。这是 Arduino IDE 中鲜为人知的功能之一。
968 阅读量
RTOS 代表实时操作系统。它用于同时运行多个任务,根据需要安排它们,并使它们能够共享资源。现在,虽然深入了解 RTOS 超出了本文的范围,但我们将逐步完成一个示例,让您对 RTOS 有一个大致的了解。目前,您只需注意 RTOS 将帮助您在 Arduino 中执行多任务处理,就像您机器上的操作系统帮助您同时运行多个任务(如撰写邮件、收听音乐等)一样。现在,由于我们关注的是微控制器,我们... 阅读更多
4K+ 阅读量
如另一篇文章所述,定时器基本上是计数器。当它们达到计数结束时,它们会溢出。我们可以使用此事件来生成中断。现在,在 Arduino 中生成中断的传统方法涉及更改许多寄存器。幸运的是,我们有库可以简化我们的工作。我们将使用 TimerOne 库在 Timer1 上生成中断。类似地,TimerThree 库用于在 Timer3 上生成中断(不适用于 Arduino Uno)。转到工具 -> 管理库,搜索 TimerOne 和 TimerThree(可选),然后单击安装。接下来,在您的代码中导入库... 阅读更多
9K+ 阅读量
如前所述,Arduino Uno 有 3 个定时器:Timer0、Timer1 和 Timer2。Timer0 和 Timer2 是 8 位计数器(它们从 0 计数到 255),而 Timer1 是 16 位计数器(它从 0 计数到 65535)。在内部,Timer0 用于 millis() 函数,因此,建议不要对其进行修改。您可以将 Timer1 和 Timer2 用于您的自定义需求。请注意,Arduino Uno 的时钟频率为 16 MHz。因此,没有定时器的间隔短于 (1/16000000)。但是,对于大多数应用程序,您需要更长的间隔(更低的频率)。换句话说,您需要... 阅读更多
每个微控制器都具有一个或多个定时器,以帮助用户以精确的间隔执行任务。例如,Arduino Uno 有 3 个定时器:Timer0、Timer1 和 Timer2。其他板可能具有相同或不同数量的定时器,您可以从该板/微控制器的规格书中找到。什么是定时器?定时器本质上是计数器。让我举一个简单的例子。假设您想每 5 秒触发一次任务。现在,如果您有一个可以从 0 计数到 255 的计数器,那么如果您以某种方式调整计数速率使其恰好在... 阅读更多
1K+ 阅读量
什么是 PWM?PWM 指脉冲宽度调制。用非常简单的术语来说,我们可以从 Arduino 板的某些引脚输出方波,并且我们可以控制波形处于高电平状态的时间分数(称为占空比)。为什么需要 PWM?PWM 具有多种应用。一个重要的应用是运行电机。电机的转速可以通过 PWM 输出进行控制。PWM 也可用于一般生成高电平和低电平之间的电压。因此,如果您的高电平为 5V,低电平为 0V,... 阅读更多
6K+ 阅读量
浮点数使用 4 个字节(32 位)存储。它们的最大值可以是 3.4028235E+38,最小值可以是 -3.4028235E+38。它们的精度约为 6-7 位小数。双精度在某些平台上,double 的精度高于 float。但是,在大多数 Arduino 开发板(Uno 和许多其他 ATmega 开发板)上,double 与 float 的大小相同。Arduino Due 是一个例外,其中 double 的大小为 8 个字节(而 float 为 4 个字节)。在使用 8 个字节存储 double 的板上,最大值可以是 1.7*10^308,最小值可以是 -1.7*10^308。在... 阅读更多
当您定义一个整数时,它默认是有符号的。换句话说,它可以接受正值和负值。无符号整数顾名思义,只接受正值。因此,它们的范围更大。如果您使用的开发板使用两个字节(16 位)来表示一个整数,那么对于无符号整数,您将获得的最大范围是 0 到 65535(216-1)。但是,在表示有符号整数时,范围将是 -32767 到 +32767。请注意,32767 对应于 (215 -1)。如您所见,最高有效位似乎不起作用。... 阅读更多
5K+ 阅读量
声明数组要声明数组,您需要遵循以下语法:语法类型 数组名称[数组大小];示例char buf[500];int new_array[200];访问数组元素数组元素编号从 0 开始。可以通过在数组名称后面方括号中指定元素的索引来访问该元素。例如:int second_element = new_array[1];获取数组长度可以使用 sizeof() 函数访问数组的长度。例如,int buf_len = sizeof(buf);请注意,sizeof() 函数返回字节数,而不是元素数。如果您有一个 int 数组,并且 int 是... 阅读更多
27K+ 阅读量
通常,您需要测量微控制器执行特定任务所需的时间。您可以使用 Arduino 的 millis() 函数来测量时间。此函数返回自您的板开始运行当前程序以来的毫秒数。因此,要计算操作花费的时间,您可以在操作之前和之后调用 millis(),并取这两个值的差值。下面给出了一个示例实现:示例void setup() { // 在此处放置您的设置代码,以运行一次: Serial.begin(9600); long int t1 = millis(); task_whose_time_is_to_be_measured(); long int ... 阅读更多