1K+ 次浏览
生成随机数是微控制器的一个关键需求。随机数有许多应用。我们先不谈这个。你一定心中有一个应用,这把你带到了这个页面。在 Arduino 中生成随机数非常容易,这要归功于内置的 random() 函数。语法random(min, max)或者random(max)其中 min 默认值为 0。Min 是包含的,而 max 是不包含的。因此, random(10, 50) 将返回 10 到 49 之间的整数(包括 10 和 49)。random(100) 将返回 0 到 99 之间的随机数,两者都包含在内。请注意,random 函数的返回值类型为 long。示例void setup() { // 添加你的初始化代码,仅运行一次: ... 阅读更多
2K+ 次浏览
Arduino 提供 3 个基本的三角函数:sin()、cos() 和 tan()。所有其他三角函数表达式都可以从这三个函数推导出来。所有三个函数都以弧度(类型为 float)作为输入。它们返回一个 double 类型的值。对于 sin() 和 cos(),值在 -1 和 1 之间。tan() 的值没有这样的界限。示例下面的示例代码演示了这些函数的使用 -void setup() { // 添加你的初始化代码,仅运行一次: Serial.begin(9600); Serial.println(); float pi = 3.14159; float angle_deg = 30; float angle_rad = angle_deg*pi/180; Serial.println(sin(angle_rad)); ... 阅读更多
4K+ 次浏览
Arduino 支持几个流行的数学函数,平方和平方根就在其中。让我们先看看平方根。语法sqrt(x)其中 x 是任何数据类型的数字。它返回一个 double 类型的值。对于平方,你理想情况下不需要单独的函数。你可以直接将数字乘以自身。x_squared = x*x;但是,Arduino 确实有一个单独的函数用于计算平方。语法为 -sq(x),其中 x 是任何数据类型的数字。这再次返回一个 double 类型的值。示例以下示例演示了这些函数的使用 -void setup() { // 添加你的初始化代码,仅运行一次: ... 阅读更多
5K+ 次浏览
在之前的文章中,我们使用了 TimerOne 库来为 Arduino 添加定时器中断。但是,如果我们希望在没有第三方库的情况下生成定时器中断怎么办?在这种情况下,你将需要直接处理 Arduino 中的定时器寄存器。在本文中,我们将介绍与定时器操作相关的寄存器并解释其重要性。我们还将提供 ATmega328(用于 Arduino Uno)数据手册的页码,你可以在其中找到有关这些寄存器的详细信息。你可以在此处找到数据手册 -https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdfTCCRxA 和 TCCRxB这些是定时器控制寄存器。x 代表 ... 阅读更多
Arduino 中 do-while 循环的语法与 C 中的语法类似。如下所示 -do{ //代码 } while (condition);请注意末尾的分号。示例void setup() { // 添加你的初始化代码,仅运行一次: Serial.begin(9600); Serial.println(); int i = 5; do{ Serial.println(i); i--; } while(i > 0); } void loop() { // 添加你的主代码,循环运行: }输出串口监视器输出如下所示 -
7K+ 次浏览
在之前的文章中,我们已经了解了如何使用 analogWrite() 函数在 Arduino Uno 上设置 PWM。Arduino Uno 的 3、5、6、9、10 和 11 引脚可以支持 PWM。除了 5 和 6 引脚外,所有引脚上的方波频率均为 490 Hz(约 2 毫秒周期),在 5 和 6 引脚上,频率为 980 Hz(约 1 秒周期)。使用 analogWrite() 你可以控制占空比,但不能控制生成的方波的频率。在本文中,我们将介绍另一种在 Arduino Uno 中设置 PWM 的方法,特定于 Timer1。优势 ... 阅读更多
顾名思义,在本教程中,我们将列出连接到 Arduino 的 SD 卡中存储的文件。电路图电路图如下所示 -如你所见,你需要进行以下连接 -SD 卡座Arduino UnoVcc5VGNDGNDMISO12MOSI11SCK13CS10仅对于 Vcc,请确保你的 SD 卡座接受 5V 作为输入。如果它接受 3.3V,则将其连接到 Arduino Uno 上的 3.3V 引脚。代码演练我们将逐步介绍内置 SD 库附带的示例代码。你可以从 文件 → 示例 → SD → listfiles 中访问它或者,代码 ... 阅读更多
在本教程中,我们将像标题所示的那样,了解如何追加到连接到 Arduino 的 SD 卡中的文件。实际上,这非常简单。如果你已经阅读了任何关于 SD 卡的先前文章,那么你只需要知道myFile = SD.open("example.txt", FILE_WRITE);仅以追加模式打开 example.txt。此后,myFile.println(dataString);追加到现有文件中,并且不会覆盖现有内容。如果你还没有阅读任何其他关于 SD 卡的文章,我建议你阅读“将新文件存储到连接到 Arduino 的 SD 卡中”这篇文章。这是一篇包含电路的详细文章 ... 阅读更多
顾名思义,在本教程中,我们将从连接到 Arduino 的 SD 卡中读取文件。电路图电路图如下所示 -如你所见,你需要进行以下连接 -SD 卡座Arduino UnoVcc5VGNDGNDMISO12MOSI11SCK13CS10仅对于 Vcc,请确保你的 SD 卡座接受 5V 作为输入。如果它接受 3.3V,则将其连接到 Arduino Uno 上的 3.3V 引脚。代码演练我们将逐步介绍内置 SD 库附带的示例代码。你可以从 文件 → 示例 → SD → ReadWrite 中访问它或者,你可以找到 ... 阅读更多
609 次浏览
在本教程中,我们将创建一个连接到 Arduino Uno 的 SD 卡中的新文件。电路图电路图如下所示 -如你所见,你需要进行以下连接 -SD 卡座Arduino UnoVcc5VGNDGNDMISO12MOSI11SCK13CS10仅对于 Vcc,请确保你的 SD 卡座接受 5V 作为输入。如果它接受 3.3V,则将其连接到 Arduino Uno 上的 3.3V 引脚。代码演练我们将逐步介绍内置 SD 库附带的示例代码。你可以从 文件 → 示例 → SD → Datalogger 中访问它或者,你可以在 ... 阅读更多