tag 标签: arduino

相关帖子
相关博文
  • 2022-7-27 10:29
    116 次阅读|
    0 个评论
    Arduino基础: 读取电压 这篇文章来源于DevicePlus.com英语网站的翻译稿。 本文最初发布在deviceplus.jp网站上,而后被翻译成英语。 目录 前言 将模拟值转换为数字值 Arduino的模拟输入 可以调节电压的电位器 通过电位器实现模拟输入 总结 前言 使用数字输入,可以将5V读取为“HIGH”,将0V读取为“LOW”。可以通过状态来判断开关是否已导通。但是,实际上电压不只是5V和0V,而是各种各样。例如,一节AA电池的电压为1.5V,日本家用插座的电压为100V。 Arduino支持模拟输入,以能够读取这些不同的电压。利用模拟输入功能,能够读取逐渐变化的电子元器件的状态。例如,使用“电位器”可以调节亮度或音量,也可以从温度传感器获取当前温度。 本文是本系列文章的最后一篇,将介绍使用“电位器”进行模拟输入的方法。 将模拟值转换为数字值 实际的电压不是像1V或5V这样的精确值,而是像5.01342…V这样的无理数,其小数点后的数字是无限不循环的。这样的值是无法通过计算机直接处理的。因此,在电子电路中,会使用一种称为“AD转换器”的机制将模拟值转换为数字值,以便它们可以由计算机处理。Arduino作为标配搭载了AD转换器,可以读取模拟电压值并将其转换为数字值。 AD转换器会将对象电压等分。对于Arduino Uno而言,可以读取0-5V范围内的电压,并会将这些0-5V的电压值分成1023等份。AD转换器会将读取到的模拟电压值转换为最接近等分值的值。例如,如果电压为3V,则“614”是最接近的值。这个值将发送给Arduino使用。 读取到的多达1023个的整数值将会用于程序处理。但是,输入值不是电压值。如果想知道电压值,可以进行如下计算: 例如,如果来自AD转换器的值为“614”,则除以1023再乘以5即可得到约3V。 Arduino的模拟输入 要使用Arduino Uno的数字输入功能时,有从A0到A5的6个引脚可用。通过将电子元器件连接到这些引脚上,即可读取施加了多少电压。但是,引脚A4和A5也用于称为“I2C”的数字通信。请注意,在连接传感器或显示器等使用I2C数字通信的电子元器件时,这些引脚不能用于模拟输入。 可以调节电压的电位器 “电位器”是一个可以用来调节音量或照明亮度的电子部件。在电位器内部配有电阻元件,并有在电阻元件上移动的引脚。通过移动引脚可以改变电阻。 电位器通常会配有三个引脚。左右两侧的引脚安装在电阻器的两端。中间的引脚可以在电阻元件上移动。如果将中间引脚向右移动,则左侧和中间引脚之间的电阻会增加。反之,如果将中间引脚向左移动,则左侧和中间引脚之间的电阻会减小。 在上图中,电阻元件是线性的,但在旋转式的电位器中,内部电阻元件是圆形的。尽管形状不同,但它们的工作原理基本相同。 Arduino的模拟输入使用电压的变化进行输入。但是,由于电位器的电阻会发生变化,因此无法通过将其直接连接到Arduino来读取电位器的变化情况。因此,需要将电阻的变化转换为电压的变化。将电源和GND分别连接到电阻的左右引脚。这样,中间引脚的电压将根据引脚的位置发生变化。例如,假设将GND连接到左侧引脚,将电源(5V)连接到右侧引脚,当中间引脚向右移动,电压会升高,向左移动时,电压会降低。此外,由于左端为0V,右端为5V,因此可以使电压值在0V到5V的范围内变化。 只要将这个中间引脚与Arduino的模拟输入引脚相连接,就可以通过操作电位器来更改输入。 通过电位器实现模拟输入 现在,我们尝试使用电位器进行模拟输入。需要准备好以下电子部件: 电位器 电位器会记录可调范围内的电阻值。作为Arduino输入使用时,最好使用10kΩ的电位器。另外,如果电位器的旋转轴配有旋钮会更容易操作。 鳄鱼夹线 用于连接电位器,使用时用鳄鱼夹夹住电位器的引脚。点击链接可以看到我们使用的是2条红线和2条黑线配套销售的产品。 所需部件准备好以后,按如下方式连接。由于电位器无法插入面包板,因此需要使用鳄鱼夹线将其直接连接到Arduino。此时需要注意的是,要确保鳄鱼夹的金属部分不要接触相邻的夹子部分。 编写以下程序: 要确认模拟输入引脚的连接状态时,请在第11行的“analogRead()”中指定对象引脚。这样,即可使用0到1023的值输入引脚电压值。如果想知道电压,请按第13行所示进行计算并将计算值转换为电压值。 将程序发送给Arduino并显示串行监视器。 您可以看到,经AD转换器转换为数字的值显示在“Value:”之后,经计算并转换为电压的值显示在“Volt:”之后,当转动电位器时,值也随之变化。 来源:techclass.rohm
  • 2022-7-27 10:27
    141 次阅读|
    0 个评论
    Arduino基础: 读取开关状态 这篇文章来源于DevicePlus.com英语网站的翻译稿。 本文最初发布在deviceplus.jp.网站上,而后被翻译成英语。 目录 前言 Arduino的数字输入 使用轻触开关切换输入 使用轻触开关输入数据 使用Arduino上拉功能 按下开关时点亮LED 相关文章 前言 在本文中,您可以了解如何在您的Arduino项目中使用轻触开关以及其实际工作原理。 我们已经利用数字输出使数字输出引脚在HIGH (5V) 和LOW (0V) 两种状态之间切换,从而实现了对LED和电机的控制。 另外,您还可以使用数字输出来确认电子部件的状态。数字输出引脚还可以切换为数字输入引脚。通过这样切换,可以确认引脚上的电压,并通过“LOW”和“HIGH”两种状态输入。这些输入值可用于控制其他电子部件。比如您可能希望在数字输入为HIGH时使电机运转,在输入为LOW时使电机停止。 实际上,利用开关等电子器件,可以使数字输入引脚的状态切换为0V或5V。 在本文中,我们将介绍如何使用开关实现数字输入。 Arduino的数字输入 使用Arduino Uno,您可以将最初用于数字输出的引脚D0到D13作为数字输入引脚使用。可以通过程序切换为数字输入模式,来确认引脚状态。 0V输入为“LOW”,5V输入为“HIGH”。在程序中,LOW会被读取为“0”,HIGH会被读取为“1”。通过确认这些输入值并执行条件分支等处理,即可控制工作状态。 下面我们来实际尝试一下用Arduino进行数字输入。在这里,我们使用跳线连接引脚5,并确认连接到5V电源和GND时的变化。创建以下程序并将其发送给Arduino: 在第4行中,通过pinMode()指定“INPUT”,以将本次使用的引脚7切换为输入模式。现在,您可以通过程序确认引脚状态了。 获取第11行由digitalRead()指定的引脚的状态,并将其存储在value变量中。如果是0V,则存储为“0”,如果是5V,则存储为“1”。 当您想确认获取的状态时,请使用“串行监视器”。对于Arduino而言,您可以使用用来从电脑传输程序的USB数据线将数据从Arduino发送到电脑。使用串行通信可以收发数据。您可以使用串行通信将通过数字输入获取的状态发送到电脑进行确认。 如果您想在程序中使用串行通信,请通过第5行的Serial.begin()进行初始化。此时需要指定通信速度。然后,通过第12行的Serial.println()指定一个值,即可将数据发送到电脑。在本文中,我们使之发送存储着数字输入状态的value变量的内容。 要确认Arduino通过串行通信发送过来的数据时,请使用Arduino IDE中内置的“串行监视器”。要使用串口监视器,请单击Arduino IDE右上角的“串口监视器图标”(放大镜图标),即可显示串行监视器画面。将右下角的通信速度设置为与程序的Serial.begin()中指定的通信速度(本文为9600)相同的值。然后,屏幕上将会显示0或1。 接下来,将跳线插入引脚7。将另一端连接到 GND,串行监视器上显示“0”。也就是说,如果数字引脚为0V,您可以看到“0”(LOW)。同样,当引脚7与5V电源连接时,您可以看到显示内容变为“1”(HIGH)。 现在我们已经确认,输入会根据引脚的状态发生变化。 使用轻触开关切换输入 下面,我们尝试用一个开关使数字输入引脚在HIGH和LOW状态之间切换。在本文中,我们使用的是按钮型“轻触开关”。 对于轻触开关而言,当按下上方按钮时,内部电路接通,进入通电状态。当松开按钮时,电路断开,没有电流流过。通常,在开关的四个角会配有引脚。如上图所示配置时,左右引脚之间的间隙起到开关的作用。右侧的上下引脚和左侧的上下引脚是始终连接的。 如果将轻触开关的一个引脚与数字引脚相连接,另一引脚连接到GND,则按下开关时内部电路会接通,引脚将直连GND。通过这样做,您可以判断只要按下开关,数字输入就会变为“HIGH”。 但是,当没有按下开关时,数字引脚将会处于没有任何连接的状态。在这种状态下,施加在引脚上的电压会变得不稳定。在不稳定状态下,当用手触碰引脚或有电池等靠近时,输入可能会发生变化。 因此,我们在使用开关时会连接一种称为“上拉电路”或“下拉电路”的电路。这种方法是借助电阻器将数字引脚连接到电源或GND,可以起到稳定输入状态的作用。该电路连接到电源端时称为“上拉电路”,连接到GND端时称为“下拉电路”。在本文中将以上拉电路为例进行说明,但下拉电路的原理也是一样的。 使用上拉电路时,在未按下开关的状态下,开关通过一个电阻器连接到电源。这样,就与数字引脚连接电源时的状态相同,输入会稳定在5V(HIGH)。当按下开关后,数字引脚处于直接连接GND的状态,因此输入切换为0V(LOW)。 虽然处于电源与GND连接的状态,但它们之间夹着一个电阻器(通常为10kΩ左右),因此只会流过少量电流,不存在短路风险。 使用轻触开关输入数据 现在,让我们使用轻触开关实际输入数据看看。需要准备好以下电子元器件: ・ 轻触开关 轻触开关有很多种颜色可供选择。您可以选择任何您喜欢的颜色。 ・ 10kΩ (1/4W)电阻器 用于上拉电路的电阻器。在10kΩ电阻器上印有“棕黑橙金”颜色代码。 准备好所需组件后,如下图所示连接它们。将轻触开关跨越面包板中心的凹槽插入。 接下来,将前述的程序发送给Arduino,以通过串行监视器确认数字引脚7的输入。可以看到,在未按下开关的状态下,显示“1”(HIGH),在按下开关时变为“0”(LOW)。 使用Arduino上拉功能 在Arduino Uno中,数字引脚内置有“上拉”功能,可以通过程序激活该功能。如果使用内部的上拉功能,就不再需要外接电阻器了。您只需连接开关即可,省时省力。 激活上拉功能的程序如下: 您只需在第4行的数字引脚模式设置中指定“INPUT_PULLUP”即可。这样就能激活内置的上拉功能,从而能够在未按下按钮的状态下稳定HIGH输入。请注意,Arduino Uno中未内置下拉功能。 按下开关时点亮LED 开关的输入还可用来控制其他电子元器件。在这里,让我们利用Arduino中安装的LED(引脚13),尝试实现在按下开关时点亮LED,并在松开开关时熄灭LED。所用的电路与前述的仅将开关连接到数字引脚时的电路相同。编写程序如下: 确认第14行的数字输入值是否为“1”。在Arduino程序中,您也可以将“1”写为“HIGH”,将“0”写为“LOW”。为了便于理解,我们在这里使用“HIGH”和“LOW”。 如果输入为HIGH(未按下按钮),则执行第15行,使引脚13切换到LOW,LED熄灭。如果输入不是HIGH(按下按钮),则执行第17行,使引脚13切换到HIGH,LED点亮。将程序发送到Arduino并按下轻触开关,即可确认LED点亮。 我们成功了!现在,您可以在您的Arduino项目中使用开关来执行输入了。 来源:techclass.rohm
  • 2022-7-27 10:21
    100 次阅读|
    0 个评论
    Arduino基础: 调节LED的亮度 这篇文章来源于DevicePlus.com英语网站的翻译稿。 Originally published by Feb 5, 2020 目录 前言 数字不能调节亮度 使用数字输出改变LED亮度 通过PWM调节亮度 让LED逐渐闪烁 相关文章 前言 本文最初发布在deviceplus.jp网站上,而后被翻译成英语。 Device Plus网站中介绍了有关Arduino的各种应用和作品示例,但无论创作任何作品,基础知识都很重要! 在本文中,我们将通过使Arduino能够调节LED亮度,为您带来“关键”的Arduino基础知识。 ◆ 我们曾介绍过,通过将LED连接到Arduino的数字输出引脚,并设置HIGH (5V) 和LOW (0V) ,可以轻松地切换LED的开和关。但是,由于数字输出只能输出两种状态,因此无法进行亮度调节等控制。 要想解决这个问题,您可以使用“PWM”输出。PWM可在HIGH和LOW状态之间反复切换输出,所以可以用来调节LED的亮度。 在本文中,我们将学习如何使用PWM来调节LED的亮度。我们还将学习如何编写使用PWM输出逐渐点亮LED的程序。 数字不能调节亮度 正如我们上次介绍过的,LED的亮度会随电流的变化而变化。比如,分别通过330Ω的电阻和10kΩ的电阻来调节连接到LED的电流量,并对它们的结果进行比较时,会发现连接330Ω小电阻时电流量更大,这会使LED更亮。或者,改变连接到LED的电源电压,也会使流过的电流量发生变化。 如果分别施加5V和3.3V的电压,施加5V电压时LED灯更亮。根据上一次介绍过的电阻和流过LED的电流之间的关系式,要想让LED更亮,要么“降低电阻”,要么“提高电压”。 然而,Arduino的数字输出只有HIGH (5V)或 LOW (0V)两种状态,这意味着直接连接并不能改变电压和电阻值,也就是说,无法调节LED的亮度。但是,虽然只有HIGH和LOW两种输出状态,通过一些努力还是可以改变LED亮度的。 使用数字输出改变LED亮度 让我们尝试一下只用数字输出来改变LED的亮度吧。亮度可以通过让LED闪烁来调节。我们按照步骤一步一步来实际操作,看看LED的亮度是如何变化的。将LED连接到Arduino的数字引脚5,如下图所示: 接下来,创建如下所示的程序并将其传送给Arduino。此时,LED应该会每隔1秒闪烁1次。 在程序中,通过第11行的“digitalWrite( LED_PIN, HIGH )”输出HIGH,使LED亮起,然后通过第12行的“delay (ON_TIME)”在指定的时间内保持亮灯。持续时间以毫秒为单位,如果指定1000,则LED将保持点亮1秒钟。 接下来,通过第14行的“digitalWrite( LED_PIN, LOW )”输出LOW,使LED熄灭,然后通过第15行的“delay( OFF_TIME )”在指定的时间内保持熄灭状态。通过反复执行该程序即可实现LED的闪烁。 下面,让我们尝试一下缩短点亮和熄灭的持续时间。可以使用第3行的“const int ON_TIME”来更改点亮状态的持续时间,使用第4行的“const int OFF_TIME”来更改熄灭状态的持续时间。将这两个值都更改为“500”并发送程序,然后确认LED的状态。可以看到闪烁速度增加。接着,当将值逐渐减小到“250”、“100”、“75”、“50”等数字时,闪烁速度变得更快。当值为“10”左右时,LED看起来像在保持点亮状态。这是因为如果它闪烁得太快,人眼就跟不上它的速度,从而使灯看起来就像一直亮着。 接下来,我们试着改变点亮和熄灭的持续时间。将“ON_TIME”和“OFF_TIME”都设置为“10”。然后,依次将“ON_TIME”的值更改为“9”、“8”、“7”……“1”,并确认LED的点亮状态。可以看到当减小该值时,LED会逐渐变暗。 这是因为持续亮灯时间缩短,发光量减少,从而使LED看起来变暗。也就是说,通过改变“点亮持续时间”也可以调节LED的亮度。使用该方法,可以实现用仅能控制开/关的Arduino数字输出功能来控制LED的亮度。 通过PWM调节亮度 如上所述,通过调整HIGH和LOW的比例,使LED以较短的周期闪烁,即可调节LED的亮度。但是,自己创建程序来控制闪烁持续时间并不现实。因为处理其他程序需要时间,而这会使闪烁间隔出现偏差,从而会使亮度发生变化。 Arduino可以使用PWM(Pulse Width Modulation,脉冲宽度调制)功能来周期性地输出HIGH和LOW。PWM是以指定的速率周期性地在HIGH和LOW之间切换的一种功能,可用于上述的LED亮度调节。 但是,需要注意的是,可用于PWM功能的引脚在Arduino中是固定的。只有数字旁边带有“〜”标记的引脚(即引脚3、5、6、9、10和11)可使用PWM功能,其他引脚不支持PWM输出。 另外,由于PWM是通过Arduino的微控制器产生的功能,因此具有输出稳定、不影响程序运行的优点。 在这里,我们将LED连接到引脚5来试一下。用与前述电路相同的方式连接LED。 接下来,创建如下所示的程序并将其发送给Arduino,LED将会亮起,但是较暗。 通过PWM功能输出时,需要通过第6行的“pinMode()”将对象引脚设置为输出模式。实际输出时,使用第10行的“analogWrite()”。指定对象引脚编号,然后在0到255的范围内设置保持HIGH的比率。如果设置为“0”,将始终输出LOW,如果设置为“255”,则始终输出HIGH。如果设置为“127”,将会以各一半的比率输出HIGH和LOW。 在这个程序中,可以通过第3行的“const int DUTY”来指定PWM比率。更改该值可以确认亮度的变化情况。 让LED逐渐闪烁 我们使用PWM输出拓展了LED点亮的方法。现在,让我们逐渐改变PWM来尝试实现LED逐渐变亮的效果。 编写如下程序: 在上述程序中,将PWM比率存储在loop()函数中使用的“i”变量中,以使其可以逐渐增加该值,从而使LED逐渐变亮。 第14行的while处理以STEP指定的增量增加值,直到i达到 255。增加的值由第15行的analogWrite()输出,以使LED的亮度改变。此外,每次第16行的PWM输出改变时,将等待由WAITTIME指定的持续时间。 当PWM比率达到255时,它会逐渐减小该值直到0,以使LED逐渐变暗(第21到25行)。可以通过更改第3行的WAITTIME或第4行的STEP的值来调节闪烁速度。 来源:techclass.rohm
  • 2022-7-27 10:16
    112 次阅读|
    0 个评论
    Arduino基础: 控制电机 这篇文章来源于DevicePlus.com英语网站的翻译稿。 本文最初发布在deviceplus.jp网站上,而后被翻译成英语。 Device Plus网站中介绍了有关Arduino的各种应用和作品示例,但无论创作任何作品,基础知识都很重要!这就是为什么在这篇文章中,我们会探讨Arduino的关键基础知识。今天的分享嘉宾是《始于Arduino基础 的电子工艺品入门》的作者福田和宏先生。 在本文中,将为大家介绍大电流电机的控制方法。 电机可用来驱动各种设备,例如无人机和汽车。电机是一种电子产品,当连接到电源时可以产生旋转运动。通过给轮胎和螺旋桨安装电机,可以利用电机的旋转来完成移动和上升等动作。 使用Arduino也可以控制电机。与LED一样,您可以通过接通和关断提供给电机的电源来控制电机旋转或停止。通过与其他传感器等器件结合使用,还可以实现比如当障碍物接近时电机停动这样的自动控制。 当电源方向反接时,电机会向相反的方向旋转。也可以通过调整流过的电流量来改变转速。基于这些原理,可以实现很多复杂的动作,比如在电机高速旋转时移动,在逐渐减速时停止在期望的目标位置,在遇到障碍物时回头向另一个方向移动。所以在本文中,我们将一起来了解使用Arduino控制电机的方法。 ・驱动电机需要驱动器 ・将电机连接到Arduino ・通过程序控制电机 ・改变电机的转速 驱动电机需要驱动器 通过Arduino的数字输出,可以在High和Low之间切换,我们曾用来控制LED的闪烁。使用该功能,应该还可以为电机供电。但是,实际上,即使您将电机直接连接到Arduino,电机还是无法运行的。 使电机运行需要大电流。例如,在本次使用的电机“RE-280RA”的情况下,可能会流过1A以上的电流。但是,Arduino的数字输出引脚最多只能承受20mA的电流。如果施加比这更多的电流,Arduino本身可能会损坏。因此,我们需要将电机连接到Arduino的输出引脚并对其进行控制。 这里我们使用的是“电机驱动器”。电机驱动器是用来控制电机的电子器件。我们需要准备一个将电机连接到电源以使电机运行的电路,并在其中插入电机驱动器。电机驱动器可通过外部信号导通和关断电机运行电路,并可控制电机的旋转和停止。由于控制信号中几乎不会流过电流,因此即使连接Arduino,也可以毫无问题地控制电机。 另外,通过电机驱动器,还可以利用控制信号切换旋转方向。电机驱动器配有两个控制引脚,一个设置为High时正转,另一个设置为High时反转。这使得电机驱动器可以控制电机的正转、反转和停止。 将电机连接到Arduino 现在让我们尝试利用Arduino来控制电机。这部分操作将使用以下电子元器件,因此请确保您已经准备好它们。 直流电机 这是电机本体。其中,可以用干电池等的直流电控制的电机称为“直流电机”。这次,我们将使用“RE-280RA”。RE-280RA可施加高达4.5V的电压。 电机驱动器 我们将使用电机驱动器来控制电机。驱动器具有根据来自Arduino的信号给电机供电并控制电机转向等功能。我们将使用ROHM的“BA6956AN”。从带有切口的连接器(图片左侧)开始,引脚分别按照“引脚1”和“引脚2”等命名。 0.1μF 电容器 电容器是可以储存少量电能的电子元件。电机在工作过程中会产生噪声。噪声可能会对其他电子元器件的工作产生不利影响。因此,可以通过在电机的两个引脚上连接电容器来降低噪声。 10kΩ(1/4W)电阻器 为了防止流过突发大电流损坏电子元器件,可以使用电阻器来抑制电流。此次,为了能给电机提供指定的电压,我们在Arduino的3.3V引脚上连接了电机驱动器。通常情况下,几乎没有电流流过,但由于在某些情况下可能会有流过大电流的风险,因此连接了一个10kΩ的电阻器以防止流过大电流。这个10kΩ电阻器上印有“棕黑橙金”四色颜色代码。 电池 电池扣 我们将使用干电池作为驱动电机的动力源。在这里使用的是可提供9V电压的006P。另外,还会使用电池扣将电池连接到面包板上。 鳄鱼夹线s 电机有引脚,需要连接到面包板。通常是将导线焊接到引脚上。但是如果您使用鳄鱼夹线,只需将鳄鱼夹夹住电机的引脚即可实现接线,可以省去焊接的麻烦。 准备好所需组件后,如下所示进行连接。 用鳄鱼夹夹住电机引脚,将电机连接到电机驱动器的引脚2和4。注意,在电机工作期间可能会产生噪声,噪声可能会影响其他设备工作,因此,需要将电容器连接到电机的两个引脚来降低噪声。 电机可以由单独准备的电池供电。因此,可以通过将电池连接到电机驱动器的引脚5和3来实现电池供电。 此外,本次使用的电机的供电电压范围为4.5V以内。因此,使用9V电池时,电压过高,可能会损坏电机。因此,请在电机驱动器的引脚1处指定输出至电机的最大电压。本次我们为电机提供3.3V的电压。将Arduino 3.3V电源连接到引脚1并指定最大电压值。电机旋转可以通过电机驱动器的引脚7和9来控制。这意味着需要分别连接到Arduino的引脚5和6,通过Arduino的输出对其进行控制。 通过程序控制电机 完成连接后,让我们实际尝试使用程序来控制电机。电机的旋转可以通过Arduino引脚5和6的输出来控制。旋转、停止和旋转方向都可以通过将这两个引脚设置为High或Low来控制。在BA6956AN的情况下,可以进行如下控制: 要正转时,使引脚5输出High,使引脚6输出Low。将以下程序写入Arduino,电机将开始正转。 在第10行设置了引脚5输出High,在第11行设置了引脚6输出Low。 如果要反转,则需要使引脚5输出Low,使引脚6输出High。 程序如下: 在第10行设置了引脚5输出Low,在第11行设置了引脚6输出High。如果要使电机停止运转,则需要让引脚5和6都输出Low。 程序如下: 另外,如果引脚5和6都输出High,则会启动制动器,可以让电机在比两个引脚都置Low时更短的时间内停止运转。 改变电机的转速 上次,我们通过使用“PWM”这种输出方法成功地改变了LED的亮度。在电机上,也可以通过使用PWM控制来改变转速。通过在短时间内切换High和Low,电机在旋转和停止之间交替切换,转速实际上比正常速度慢。High的时间越长,转速越快;反之High的时间越短,转速越慢。 对于电机而言,通过PWM来输出想要旋转的方向的控制引脚,并使另一个引脚始终保持在Low的状态。正转时,通过PWM输出引脚5 并使引脚6保持在Low状态。反转时,通过PWM输出引脚6,并使引脚5保持在Low状态。下面是控制正转速度的程序: 在程序中,在第10行设置为向引脚5输出PWM比率的一半(最大为255),在第11行使引脚6保持在Low状态。当您改变第10行的数字时,速度也会随之改变。但是,如果High小于某个特定的比率,电机将不会旋转。如果减小该值电机不旋转,就请尝试指定更高的值。您可以通过逐渐增加或减少引脚5输出的值来逐渐改变速度。在接下来的程序中,转速将从停止状态逐渐提高,当达到最大值时,速度将会逐渐降低并最终停止运转。 在本文中,我们了解了通过Arduino控制LED和电机等电子产品的方法。下一篇将介绍如何通过Arduino确认开关的状态。 来源:techclass.rohm
  • 2022-7-26 15:23
    156 次阅读|
    0 个评论
    您发现了无人机存在的问题,想要寻找新的项目来解决?本文将会告诉您答案。无论是您想用元器件制造无人机,还是想进一步发掘Arduino的性能,本文都能满足您的需求。 5种无人机Arduino项目简介 通过以下文章的分步指导来构建自己的无人机,并添加新的功能。 #1. 从零开始构建无人机 任何人都可以从网上订购或从商店购买到一架无人机。如果您想要尝试一些不同类型的挑战,可以按照我们的指南从零开始构建出简单、廉价的无人机。与商业生产的无人机不同,这种自己动手制作出来的产品需要的零件不到50美元。这使其成为预算有限的爱好者、想要入门项目的儿童或者担心操作失误的人的完美选择。首先,以下是我们推荐的一些硬件: 4 个微型电机(额定值:400-500 KV) 4 个电机护套 4 个螺旋桨(我们建议10厘米或3.9英寸) 锂聚合物电池(3.7V电池可为您提供长达10-15分钟的飞行时间) 现在您可能想知道,建造出一架无人机需要多长时间?这取决于您在电子和机械DIY项目方面的技能水平和经验。也许只需要一个周末的时间就可以完成。 #2. 用Arduino控制的弹道降落伞 您是否注意到上述DIY无人机的电池寿命很短?如果它耗尽了动力,可能会从高处坠落并毁坏。这样一来,您的所有努力都白费了!还有另一种选择!您可以建造自己的弹道降落伞。这是为您的无人机添加安全保护措施的好方法,以防您的电量耗尽或发生故障。 以下是为无人机配备降落伞所需的元器件: 加速度计。您需要对运动和速度进行测量从而触发降落伞。我们建议使用ADXL345。 Arduino Nano。这是您用来控制降落伞的紧凑型板。 18650锂离子电池。您将需要一个与主无人机电源分开的电源。否则,当电机发生故障时,您的降落伞可能会失效。 就Arduino而言,您不需要从零开始。我们建议修改freeFallThreshold、freeFallDuration并进行跌落测试。为了获得最佳结果,请从小高度开始进行跌落测试。 #3. 使用无人机运送货物 您现在构建出了一款无人机,并且即使主电源无法供电也可以使用降落伞安全着落。这是保护您的无人机免受伤害的绝佳方式。如果您给您的朋友留下深刻印象呢?可以尝试运送一个小型货物。优步等公司已经在开发具有送餐功能的无人机。 现在,让我们自己动手制作一个简单的送货无人机。首先,设定您的期望值。我们可以提供2公斤(4.4磅)的有效载荷。这足以运送一罐啤酒、一袋薯条和一本杂志。换句话说,您可以用无人机运载您的午后阅读套餐! 为了实现4.4磅的负载能力,您需要获取一些元器件。也许您家中已经具备其中的一些元器件了。在开始之前,请先查看一下构建送货无人机所需的元器件: 面包板 Arduino Mega/Uno 伺服电机 SG90 超声波传感器 HC-SR04 GPS 模块 NEO-6M-001 连接线 一个瓶盖 胶水/胶带 发夹 GPS模块至关重要。否则,您将不得不持续手动控制无人机。这就无法让人印象深刻了。同时,您还需要运行一些代码来测试系统,并正确配置所有内容。 #4. 如何利用无人机开始构建3D地图 使用无人机几周后,您可能会开始感到无聊。您已经探索了自己的后院,为附近的区域拍摄了数千张照片,其他还能够做什么呢?现在是时候探索新的无人机爱好了:制作3D地图! 最初,使用无人机构建3D地图是作为一种商业工具出现的。例如,如果土地所有者需要更详细地了解他们的财产或农作物,那么无人机生成的地图可以提供帮助。但其实探索无人机3D地图也非常有趣! 要开始构建无人机3D地图,您需要做好以下工作: 具有出色相机的无人机。从技术上讲,您可以使用任何无人机相机来创建地图。但是,如果您使用带有高质量相机(例如12兆像素)的无人机,将会获得更好的效果。请确保您的无人机相机有大量的存储空间,以保证可以持续拍照。 3D绘图软件。本文将介绍一些特殊的绘图应用程序。这些应用程序是为无人机设计的,因此可以很容易地通过您拍摄的照片快速生成地图。 找到可以测试无人机测绘能力的区域。这个要求很实际—不是所有地方都可以驾驶无人机。在开始创建某个区域的3D地图之前,请检查相关标志和法规。 一旦您使用无人机创建了一个区域的3D地图,可以在几个月后返回该区域并创建另一张地图。您可能会发现该地区随着时间的推移而发生的微小变化。 #5. 如何构建“随我行”无人机 有一架跟随着您的无人机就像拥有了一只机器人宠物!幸运的是,您不需要花很多钱来创造这个会飞的机器人宠物。按照我们的指导,您就可以拥有一架“随我行”无人机。通过该项目,您的无人机将通过GPS技术一直跟随您。以下是构建“随我行”无人机所需要的硬件: NEO-6M GPS模块。用来引导无人机。 USB数据线。用来对您的无人机进行编程。 3.7V LiPo电池。为了避免消耗用于飞行的电量,请安装单独的电源。 接下来您将开始哪个无人机DIY项目? 来源:techclass.rohm
相关资源