0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ISC Arduino的教程

454398 来源:网络整理 作者:网络整理 2019-12-09 15:49 次阅读

步骤1:了解Arduino IDE

ISC Arduino的教程

安装Arduino之后,请打开它并参考上面的照片,因为我向您展示了IDE(集成开发环境)的几个关键部分。

1。标有1的圆圈环绕着上传按钮。将Arduino插入计算机后,单击此按钮将代码上传到Arduino。

2。 void setup是您的代码部分,将仅运行一次。当Arduino通电或重新启动时,它将运行您在void设置部分放置的所有代码

3。 void循环是您的代码部分,将一遍又一遍。运行void设置后,您将在void循环中运行所有代码。所不同的是,您在void循环中的所有代码都运行完后,Arduino将返回到您的void循环部分的开头,然后再次运行它。这一次又一次地重复,因此称为循环。

4。串行监视器按钮。此按钮打开串行监视器。串行监视器允许您向Arduino发送命令并从Arduino接收消息。有关以后如何执行操作的更多信息

5。这是Arduino控制台。如果Arduino在上传到开发板上或编译代码时遇到问题,将在此处打印错误消息。

6。在顶部的“工具”菜单中,可以选择一个“板”选项。使用它来选择正确的电路板类型。通常,Arduino开发板的类型写在设备上的某个地方。

7。这是选择哪个com端口将Arduino连接到计算机的选项。如果您无法解决问题。拔下Arduino,查看列表,重新插入Arduino。新的com端口是用于Arduino的端口。

步骤2:基本串行通信简介

请打开您从GitHub下载的“ BasicSerial”示例https://github.com/kyesh/ArduinoTutorial

这是我将要解释的代码。与此空白代码编辑器和空代码编辑器仅有几处区别。

以双斜杠“//”开头的行是注释。编译/运行代码时,Arduino将忽略它们。这使程序员可以提供有关其程序如何工作的信息,以帮助自己或其他程序员弄清楚代码的工作原理

下一步,我想请您阅读Arduino页面上的以下链接。如果您不熟悉编程,请不要对他们毫无用处。我将用更简单的术语重新解释它们。随着编程技巧的发展,您将需要习惯于阅读和理解文档。

http://www.arduino.cc/en/reference/serial

http://www.arduino.cc/en/Serial/Begin

http://www.arduino.cc/en/Serial/Println

1。 Serial.println()称为函数。编程中的大多数事情都涉及使用函数。在本教程的后面,您将学习如何编写自己的函数! Serial.println()是将在Arduino的串行线上打印的函数。连接到计算机后,您可以通过单击串行监视器查看打印的内容。

2。 “我打印一次”是Serial.println()函数的参数。参数是您对该函数的输入,在这种情况下,该参数告诉函数要打印的内容。尝试将其更改为“ I love hotdogs”之类的名称,然后再次运行代码。确保用引号(“”)括住您的单词。

3。如果您查看串行监视器上显示的第一行,它会显示“我打印一次”。我有时您会在打印第一行之前得到一个或两个有趣的角色。不用担心这个。另请注意,此操作仅打印一次,因为它发生在代码的空白设置部分。注意:要查看第一行,您必须取消选中标有“自动滚动”的框,然后滚动回到顶部(或者眼睛很快)。

4。请注意,“我一次又一次地打印”如何继续一遍又一遍地打印。这是因为它在代码的空循环部分中。该代码将一遍又一遍,直到宇宙的尽头!或者直到您断开/重新编程Arduino。

5。此框可让您通过串行将命令发送到Arduino。例如,如果您有一个机器人发送直线驱动命令,请右转,然后左转。我们不会对此进行处理,但是您将来可以探索这很酷的东西。

步骤3:接线LED

现在让我们控制一些电力!为了展示我们强大的功能,我们将使LED(指示灯)闪烁。

让我们通过打开LED来简单地开始。

要做这将需要1个LED,1 220欧姆电阻,1个面包板和一些电线。

1。 LED是发光二极管。二极管是一种设备,电流只能以一种方式通过它们。 LED的短边是负极。您将把它插入面包板的负极。

2。我们将使用Arduino作为LED的电源。这意味着您需要将其插入计算机才能正常工作。每个Arduino的布置都不同,但引脚应标明。我已经在板上标出了5伏和GND(0伏)的位置。

2-1。 5V,这是Arduino上的5伏电源。这需要连接到面包板上的正极导轨。

2-2。 GND就是做完工作(也称为0伏)后电力返回的地方。这需要连接到面包板的负极。

3。这是一块面包板。

3-1。这对于电路的布线和原型制作非常有帮助。负轨-这是一个带有减号的轨道,旁边是蓝色条纹。通常用作接地导轨。连接到导轨上一个点的所有内容都连接到导轨上的每个点。如图所示,面包板上有两个负极。一个在板子的左侧,一个在板子的右侧。

3-2。正极导轨-这是带有加号并在其旁边带有红色条纹的导轨。这通常用作正电压轨,在我们的情况下为5伏。连接到导轨上一个点的所有内容都连接到导轨上的每个点。如图所示,面包板上有两个阳轨。一个在板子的左侧,一个在板子的右侧。

3-3,行,就像微型导轨。它们全线连接。例如,第1行将1a到1e连接在一起。板上的大间隙表示1f到1j连接在一起,但没有连接到1a到1e。

将所有这些布线在一起

1)将5V连接到面包板的正极导轨

2)将GND连接到面包板的负极轨上

3)将LED的短端连接到面包板的负极轨上

4)将LED的长端连接到1a

5)将电阻从1c连接到正极轨上

6)欣赏LED的细微发光(如果尝试翻转时LED不发光)

现在,让它闪烁,将电阻从正电源轨移至负电源轨,然后每秒移回正电源轨。我敢肯定,当您很快意识到这非常繁琐时,您宁愿不必手动移动电阻器。好吧,您真幸运!下一步,我们将向您展示如何让Arduino为您完成所有这些辛苦工作!

步骤4:使Arduino闪烁

下一步,我们将让Arduino为我们闪烁。

首先,您必须将电阻从导轨上移开并将其连接到Arduino的13针上。

通常,我强烈建议您先尝试阅读和理解所使用功能的文档,然后再进行简化说明。

http://www.arduino.cc/en/Reference/PinMode

http://www.arduino.cc/en/Reference/DigitalWrite

HTTP://www.arduino.cc/en/Reference/Delay

请打开眨眼示例

1。 pinMode()是一个函数,它说明您要使用的引脚。第一个参数是您正在谈论的引脚。在这种情况下,引脚13。第二个参数是OUTPUT,这表示您希望能够在程序中将引脚13设置在0伏和5伏之间。

2。 digitalWrite()是将指定引脚设置为LOW(0伏)或HIGH(5伏)的函数。第一个参数是13我们要控制的引脚。第二个参数是HIGH或LOW。将其设置为高电平就像将电阻器连接到正电源轨时一样。将其设置为LOW就像将其连接到负极轨一样。

3。 delay()是一个函数,用于在一定时间内停止Arduino。可以想象这是当您在切换导轨之间等待一秒钟时。这将等待以毫秒或1/1000秒为单位的指定时间量

挑战:尝试使照明灯保持开启状态2秒钟,关闭状态持续0.5秒

5:输入,变量和开关

电路接线。

看一下压线图进行接线。

使用的电阻是10k电阻。之所以称为下拉电阻,是因为当开关断开(未按下)时,它将电压下拉回零伏。当开关闭合(按下)时,电阻太大,对电压几乎没有影响,所以只有5伏。

用arduino打开名为LimitSwitch的文件。

像往常一样,请先阅读文档,然后再进行简化说明。

http://www.arduino.cc/en/Reference/DigitalRead

1。此命令创建一个名为pin12Value的新变量。蓝色“ int”部分指定变量的类型。 int是整数的缩写。 Arduino需要知道正在使用什么类型的变量,以将它们有效地存储在内存中,并对它们进行操作,例如加,减,乘和除。第二部分是变量的名称以及稍后在代码中如何引用它。

2。 digitalRead()此函数返回1(高)或0(低),具体取决于它正在读取的引脚上施加5伏还是施加到正在读取的引脚上施加0伏。

3。下一部分称为作业。我们将pin12Value设置为1还是0,具体取决于是否按下了限位开关且12针为高电平。结果4。现在,我们使用Serial.println(pin12Value)来打印pin12Value的值。如果您在按下限位开关时观察到串行监视器,您会注意到它从0变为1。因此,如果打印了HIGH和LOW而不是1s和0s,这看起来会更好而且更容易理解。我们可以使用if语句来完成此操作!

在解释之前,请尝试通读并理解以下if语句的文档。

http://www.arduino.cc/zh_CN/Reference/If

在Arduino中打开LimitSwitchIf并运行

1。这是一个if语句。如果条件为true,则大括号内的代码将运行。如果条件不成立,则将跳过大括号中的代码。

2。这是if语句的条件。这是一个问题,pin12Value是否等于1?如果答案为是,则表达式的计算结果为true。小心并意识到==与=符号不同。 ==在问一个问题。他们平等吗? =是一个命令,用于将左侧的内容设置为等于右侧的内容。

3。这是该语句为true时花括号中的代码。

挑战:使用您学过的知识,可以在按下开关时打开LED并在释放时关闭LED

要查看如何完成挑战,请打开LimitSwitchLED

挑战2:使用您学到的知识,通过不同的开关分别打开2个LED。

查看如何完成挑战打开LimitSwitchLED2

步骤6:为H桥和驱动电机接线

因此,接下来部分将使用H桥。尽管我不希望您理解它,但我希望您查看H桥的文档,以便了解电子元器件规格表。如果您遇到不熟悉的组件,则应该能够使用其上刻有编号的Google为其搜索规格表。

http://www.ti.com/lit/ds/symlink/sn754410.pdf

SN7544 H桥具有16个引脚,并且在表示该芯片的盒子内的引脚标记为1到16。该芯片能够为两个电动机供电。一个连接到芯片的左半部,另一个连接到芯片的右半部。现在我将描述每个引脚的作用。

1。)这是电动机1的使能线。当该电压为HIGH时,为5伏。可以驱动马达。当它为低时,0伏电动机将无法运行。可以将其与PWM信号一起使用(我们将在后面介绍),通过非常快地打开和关闭它来控制电动机的速度。

2。)这是电动机1的控制线。您可以将其与引脚7一起使用,以控制电动机1旋转的方向。如果引脚2设置为高电平,而引脚6设置为低电平。电机将单向旋转。如果将它们翻转,则引脚6为高电平而引脚2为低电平,则电动机将改变方向。在所有其他状态下,电动机都不旋转。

3。)此引脚连接到电动机1的一侧。电动机1的另一端连接到引脚6

4 。)转到您的地线,0伏。

5。)与4

6相同。)此引脚连接到电动机1的另一侧。

7。)这是电动机1的另一条控制线。

8。)此引脚需要5伏的电压才能使芯片正常工作。这将为芯片供电

9。)这是电动机2的启用线。

10。)这是电动机2的控制线。

11 。)连接到电动机2的一侧。电动机2的另一侧连接到引脚14

12。)与4

13相同。)与4相同。

14。)这连接到电动机2的另一侧。

15。)这是电动机2的另一条控制线。

16。 )这是电动机1和电动机2的电源。在此示例中,我建议使用9伏电池。

现在可以将其接线!

看一下摩擦图。需要注意的几个关键事项。确保将Arduino的GND(0伏)与电池的-(0伏)连接。并且请勿将Arduino的5V与电池的+(9伏)连接。这会伤害您的Arduino。

接线后,打开_1Motor并运行它。

挑战:用开关为电机接线,使其在按下时旋转一个方向,然后松开解决方案:_1MotorWithSwitch

挑战:做到这一点,以便一个开关使电动机沿一个方向旋转。另一个开关使其反向旋转。提示:您可能需要了解if语句的“和”运算符。

解决方案:_1MotorTwoSwitches

挑战:挂上第二个马达并对其进行一些有趣的操作。

注意:如果您要开始四处行驶,可以从这里购买一些车轮https://solarbotics.com/product/

第7步:模拟输入

现在,我们将向您展示如何读取模拟输入。那里有许多模拟传感器,您可以将其用作机器人的传感器。

以下示例:

电位器(本演示将使用什么电位计)

Range Finders https://www.pololu.com/product/2474

温度传感器http://www.adafruit.com/products/165

还有更多(只需使用Google模拟量,无论您想要哪种类型的传感器)

电位计是您可以使用的最简单的模拟量输入之一。您可以转动旋钮来更改该值。

按照装饰图进行接线。

请务必查看文档

http://www。 arduino.cc/zh-CN/Reference/AnalogRead

打开程序PrintAnalogValue并连接电位计尝试一下。

如果您注意到这与限位开关示例非常相似,除了我们正在使用“ analogRead()”函数和标记为A0至A5的引脚。 A代表模拟,在尝试获取模拟输入时必须使用这些引脚。转动电位计时,您还将获得0到1023之间的值。这就是使其成为模拟输入的原因。 LOW不会得到0,HIGH不会得到1。取而代之的是,Low为0,HIGH为1023。介于两者之间的所有电压都由数字1到1022表示。

挑战:

看看您是否可以找出POT_ChangeTheSpeed,POT_MoveTheLight和POT_RaisingTheBar的工作原理并将其连接! p》

步骤8:PWM信号和控制电动机速度

现在,我们将使用电位计来控制电动机的速度

正如我之前所说,H桥上的使能线可用于控制电动机速度。

有关接线,请参见弗里辛格图。

唯一的与上次的主要区别是H桥上的引脚1现在连接到Arduino的引脚5而不是5伏电源线。

PWM信号是打开和关闭非常快的信号。通常,它们的取值范围是0到255。其中0表示它们从不开启,而255表示它们一直处于开启状态。介于两者之间的值表示它们仅在一部分时间内处于打开状态。 Arduino表示支持PWM的引脚位于引脚编号旁的〜。

打开

第9步:编写函数

输入本节我们将继续编写您自己的函数。

提示:避免命名变量和函数相同。

正如我之前所说,编程中的所有内容都基于某种形式的函数。现在,您将学习如何编写自己的代码。函数背后的想法是执行一项复杂的任务并将其隐藏起来,以使您的代码更易于使用和理解。正如我确定的那样,您已经开始意识到要使电动机运转,就需要您跟踪多种情况,您要使其运行的速度,您要其运行的方向以及哪些引脚需要处于高电平和LOW可使所有功能正常工作。

在名为MotorFunctions的文件中,您可以在下面看到我们为您编写的一些示例函数及其说明。

1。)函数的这一部分声明是返回类型。我们选择void是因为此函数将不会返回任何内容。例如,如果您想返回一个数字,则可以使用int。如果您有一个将两个数字加起来并返回它们的和的函数,这可能会派上用场。

2。)函数的这一部分是函数名称。这是您稍后在代码中用来调用函数的名称。

3。)这些是函数的参数。在这里,您可以指定要使用的参数数量以及将要调用的参数。对于这个,我们有一个参数motorSpeed,它是一个数字,因此我们使用了int类型。指定参数就像声明变量一样,因为它们本质上是与您的函数从所谓的函数共享的变量。

4。)这是函数运行的代码。

5.)Return语句,因为我们不返回任何内容,所以我们只需放置此语句。如果我们要退货。我们会将其放置在return语句之后。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Arduino
    +关注

    关注

    186

    文章

    6439

    浏览量

    185437
收藏 人收藏

    评论

    相关推荐

    idf-arduino component组件怎么设置 ?

    idf -arduino component组件该怎么设置 ,。 CMake Warning at E:/COMPILE/Othert/IDF4.4/esp-idf-v4.4/tools
    发表于 06-12 07:27

    求助,在esp-idf中使用arduino作为组件后怎样使用arduino的库?

    在esp-idf中使用arduino作为组件后怎样使用arduino的库,例如我此时需要使用arduino的第三方库blinker,怎样使用?
    发表于 06-12 07:21

    联合光电将携物联网视觉产品参展2024 ISC West

    4月9日-12日,2024 ISC West将于美国金沙会展中心盛大举行,联合光电携物联网视觉产品参展,致力于为客户提供智慧光学系统化解决方案。
    的头像 发表于 04-02 17:00 322次阅读

    arduino如何停止loop循环

    Arduino的loop循环是其主要的程序执行部分,该循环将在Arduino开发板上持续运行,并且只有在程序被重新上传或开发板断电重启时才会停止。然而,在某些情况下,你可能需要在程序执行过程中停止
    的头像 发表于 02-14 16:24 2079次阅读

    arduino中while循环怎么跳出

    Arduino 是一款开源的硬件平台,广泛应用于各种物联网和嵌入式系统项目。在 Arduino 上编写代码时,循环结构起到了至关重要的作用。而其中的 while 循环更是常用于需要根据特定条件重复
    的头像 发表于 02-14 16:22 1243次阅读

    如何使用Arduino控制RGB LED

    在本指南中,您将学习如何使用Arduino控制RGB LED。RGB(红-绿-蓝)LED可以通过混合不同强度的红、绿、蓝光来产生多种颜色。您将学习创建一个基本Arduino RGB LED电路,并以一些基本颜色为例循环。
    的头像 发表于 02-11 10:28 2473次阅读
    如何使用<b class='flag-5'>Arduino</b>控制RGB LED

    如何使用Arduino UNO板和电位器控制伺服电机

    在本Arduino伺服电机教程中,您将学习如何使用Arduino UNO板和电位器控制伺服电机。
    的头像 发表于 02-11 10:11 1213次阅读
    如何使用<b class='flag-5'>Arduino</b> UNO板和电位器控制伺服电机

    2023年Arduino开放原码报告:持续茁壮的Arduino生态系!

    所谓出钱就是买一片Arduino开发板或是付费订阅Arduino Cloud云端服务,或单纯资金赞助;出力就是撰写Arduino相关的程序并无私的分享程序代码或回报错误或投入翻译等,笔者即有若干翻译新版
    的头像 发表于 01-25 16:45 802次阅读
    2023年<b class='flag-5'>Arduino</b>开放原码报告:持续茁壮的<b class='flag-5'>Arduino</b>生态系!

    Arduino制作循迹小车教程

    Arduino制作循迹小车完全教程
    发表于 01-05 11:09 3次下载

    金睛云华斩获ISC2023数字安全创新能力百强 五项殊荣!

    昨日,由北京市通州区人民政府指导;中关村科技园区通州园管理委员会、ISC平台主办的ISC2023数字安全创新能力百强颁奖典礼在京举行。金睛云华以卓越的产品创新实力,一举斩获网络与流量安全、威胁检测
    的头像 发表于 12-28 16:31 656次阅读
    金睛云华斩获<b class='flag-5'>ISC</b>2023数字安全创新能力百强 五项殊荣!

    Arduino的功能及其限制

    Arduino是一种开源电子原型平台,它基于易于使用的硬件和软件,可以用于制作各种嵌入式系统。然而,尽管Arduino非常强大,但它也有一些功能上的限制。本文将详细介绍Arduino的功能,并探讨
    的头像 发表于 12-21 14:15 667次阅读

    如何使用Python和PinPong库控制Arduino

    Python程序员在编程Arduino时面临的第一个挑战是语言不同。Arduino IDE使用的是受C和C++启发的语言。实际上,像Arduino这样的平台与Python非常搭配,特别适用于需要
    的头像 发表于 10-13 10:59 576次阅读
    如何使用Python和PinPong库控制<b class='flag-5'>Arduino</b>

    基于Arduino的机器学习开发

    本项目采用的开发板是Arduino Nano 33 ble Sense,模型训练平台为SensiML或者Edge Impulse。对于SensiML,模型部署平台为VS Code和PlatformIO;对于Edge Impulse,模型部署平台为Arduino IDE。
    的头像 发表于 08-11 11:06 1031次阅读
    基于<b class='flag-5'>Arduino</b>的机器学习开发

    基于固定电压窗口(FVW)的在线定量ISC诊断方法

      基于固定电压窗口内充电电量的内部短路定量诊断方法   01 研究背景 内短路(ISC)是动力电池热失控(TR)的主要原因之一。通过电池管理系统(BMS)对动力电池进行早期ISC的诊断和预警
    的头像 发表于 08-08 11:02 1378次阅读
    基于固定电压窗口(FVW)的在线定量<b class='flag-5'>ISC</b>诊断方法

    使用Arduino的测谎仪

    电子发烧友网站提供《使用Arduino的测谎仪.zip》资料免费下载
    发表于 07-11 10:46 0次下载
    使用<b class='flag-5'>Arduino</b>的测谎仪