步骤1:了解Arduino IDE
安装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
+关注
关注
187文章
6461浏览量
186565
发布评论请先 登录
相关推荐
评论