ISC Arduino的教程

步骤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语句之后。


魅族Flyme6.7.3发布:新增功能欢乐多,你更新了吗?
智能门锁丨产品应用方案 I
熄火保护装置燃气灶原理
中国视像行业科技创新大奖揭晓,海信电视成为最大赢家
制作业余印制电路板的方法
ISC Arduino的教程
三星Galaxy Fold已重新发布搭载骁龙855处理器拥有6颗摄像头
半导体太赫兹通信芯片现状和前瞻
小数在内存中是如何存储的?为什么C语言中的浮点数不支持位移操作?
UPS电源防雷误区
亚马逊云科技与深圳天使母基金达成战略合作 赋能初创加速创新和业务发展
KUKA的PROFINET之WakeOnLAN
长方集团宣布出资3.1亿元设立南昌项目公司 将主营LED照明
用单片机控制蜂鸣器的实验电路
零跑募资62.79亿港元研发先进汽车智能技术
基于7nm Big Navi打造的高性能Radeon RX 6000系列介绍
基于龙芯平台的福利彩票终端亮相
高低水位控制电路图大全(六款高低水位控制电路原理图详解)
关于低压断路器口诀,你都理解吗
北斗卫星导航定位芯片行业:华大北斗与中交星宇签署战略合作协议