专栏名称: EETOP
EETOP电子网(中国电子顶级开发网)是国内最顶级的电子行业工程师社区,涉及:嵌入式、智能硬件、半导体集成电路设计及制造等。 为您分享论坛精华内容、行业最新资讯、产品及技术 。 网址:www.eetop.cn bbs.eetop.cn
目录
相关文章推荐
ZOL中关村在线  ·  “滴血购入”的这些神器为何让人失望? ·  14 小时前  
ZOL中关村在线  ·  超便携小钢炮!Khadas Mind ... ·  昨天  
ZOL中关村在线  ·  智能手机屏幕都有哪些亮点设计?一文帮你盘点 ·  5 天前  
ZOL中关村在线  ·  iPhone ... ·  1 周前  
51好读  ›  专栏  ›  EETOP

Becky老师又来啦!这次玩Arduino

EETOP  · 公众号  · 硬件  · 2024-09-20 13:03

正文

 文章概述  

本期视频介绍了Arduino的概念功能及其在电子设计中的应用。视频通过构建简单的电路,展示了如何使用Arduino进行编程和实现LED控制。文章还提供了详细的步骤和代码示例,帮助初学者入门,并鼓励读者加入Arduino全球社区,分享经验和解决问题。

从事电子行业或者是电子设计爱好者,一定有听过Arduino。但你所理解的Arduino是什么呢? 是一款开发板? 还是一家公司?
不管怎样,Arduino都是电子设计不可或缺的重要资源,在编程上提供极大的帮助。以下视频将利用Arduino建构简单的电路,让你了解其功能,加强你的设计能力。快点开视频跟随Becky老师一起学习吧!

看完视频想提问?或者有使用Auduino的经验想分享?欢迎点以下按钮↓

我要到技术论坛一起讨论

Arduino简介

Arduino 让科技创新变得简单。它是一系列微控制器板,让您感知周围的环境并控制电子设备。Arduino 一词指的是电路原型设计过程的几个层面。其中一个是指硬件,包括官方的 Arduino 板和成千上万种兼容Arduino的衍生产品。与硬件进行通信的软件被称为集成开发环境,名为Arduino IDE。而且,你使用的编程语言也叫做Arduino,它是基于C++。Arduino还可以是指Arduino公司的商标,他们制造官方的开发板并维护开源文档,有助于使整个生态系统免费且便于共享。

Arduino 是一个庞大的全球社区,这意味着你可以在网上找到几乎数不尽的灵感、代码范例和关于你的问题的答案。

跟着本系列视频进行操作,你将逐渐掌握用电控制元器件和Arduino语言编程的关键概念。

开始Arduino原型设计

以下是推荐用于开始 Arduino 硬件原型设计的材料:

  • Arduino Uno 或其他兼容板和USB 电缆

  • 无焊面包板

  • 跳线实心连接线

  • 3V 通孔 LED

  • 100-1000 欧姆的通孔电阻

您还可以使用 Tinkercad CircuitsFritzing 等电路模拟器开始,无需任何硬件。

连接与配置
建议从 Arduino Uno 开始,或使用兼容板,例如 Adafruit MetroSparkfun Redboard Seeeduino这些专为初学者使用的开发板有较大的标签,帮助你清楚地看到你插入边缘引脚上的连接器,而这些连接器连接到微控制器芯片本身的各种引脚。微控制器芯片是一个微型计算机,运行我们从常规计算机上上传的程序。在开发板上,你还会看到一个复位按钮、一个电源指示灯、一些用于指示开发板何时发送和接收数据的LED,还有一个连接到引脚13的LED,用于在不插入其他元器件的情况下进行测试。其他元器件支持微控制器,并使电路的布线和编程变得简单,让不会电气工程的人也可以做到。

请确保使用正确的USB连接线将开发板连接到电脑上,这里需要的是支持数据传输的数据线,而不是外表相似的那种仅能用于充电的线。区分它们的方法是,使用数据线时 Arduino 开发板会出现在软件的端口菜单中,而充电线则不会。确保这一点的最佳方法是购买注明是数据线的线。

您还需要一块无焊面包板,它的内部有金属条和许多孔,可以让你快速、轻松地连接元器件。

我习惯用固定板将面包板和 Arduino 板连接起来,这样电路就可以更好地结合在一起。

你需要一些导线来连接Arduino,无论是面包板专用的导线或者实心铜芯导线都可以。
构建基础电路
在进入软件部分之前,我们可以先建立一个简单的电路。使用出厂默认程序让一个连接到引脚13的LED闪烁,引脚13连接到LED较长的正极,而 LED 较短的负极通过电阻接地,以帮助限制电流,防止LED烧坏。对于这个电路,需要一个功率为1/4 瓦的电阻,阻值从100欧到1000欧都可以。如果你想了解更多,可以观看我们系列前期的 “【与美女创客入门电子世界】在做LED开发?这个视频很实用!”

用导线将Arduino上标有标签的5伏电压和地线引脚连接到无焊面包板上的母线,这些母线沿着无焊面包板的两侧延伸,方便大家轻松地接入电源和地线。对于这个电路来说,没有严格要求使用地线母线作为连接面包板地线的中间接口,但在原型设计时连接母线是最佳做法

当在断开电源的情况下完成了电路,接着就可以将开发板连接到电脑。新电路中的LED应该会与开发板上的迷你贴片式LED一起闪烁,如果没有闪烁,请再次检查你的线路是否都连接好,并确保你的LED没有插反。开发板的连接孔非常小,所以很容易把导线插入错误的行中。
编程基础
当LED闪烁,就可以深入研究控制它的程序。基本的闪烁范例可在Arduino软件中下载,并需要将其安装到电脑上。打开软件,找到文件 > 范例 > 01.基础,最后点击闪烁。
所有这些额外的符号都是Arduino语法的一部分,但不用感到害怕,从零开始学习并编写合适的代码需要时间,这里会向你一一解释,当你的水平有所提升,可以随时参考这些例子。
第一部分是代码块注释,接着是代码的设置部分,用于设置程序后续所需的内容,它在程序启动时就会运行。这里的闪烁程序将引脚13设置为输出,这样可以使开发板发送信号,而不仅是接收信号。
程序的主体部分在循环内,只要开发板通电,这部分代码将重复执行。双斜杠后面的灰色文字是注释,使你更容易理解程序。

这里使用的输出命令称为digitalWrite(),它是一个函数,用于将一个引脚设置为HIGH或LOW,即打开或关闭状态。这里会使用函数delay()来暂停程序,它会暂停指定的毫秒数,一秒等于1000毫秒。总的来说,该程序以一秒的间隔打开和关闭一个LED。这个时间间隔可以改变,只需要改变delay的数值,就可以自定义这段代码,比如500毫秒或2000毫秒。

要将程序上传到Arduino开发板上,请确保USB连接线插好,并从工具菜单中选择对应的开发板和端口。如果你的端口没出现或找不到对应的端口,请尝试拔掉开发板,检查端口菜单,然后重新插上开发板,再次查看端口菜单,看看有没有出现,然后点击上传按钮,以将闪烁范例代码传输到Arduino开发板上。

标有TX和RX的LED指示灯会闪烁,显示软件正在与开发板进行通信,并会显示“上传完成”的通知。片刻后,设置的闪烁效果就会出现。

如果要上传到一个兼容Arduino,而非Arduino公司的开发板上,可能需要安装额外的驱动程序,才能在端口菜单中看到该开发板。参考产品文档便可了解所需操作。

控制LED亮度
现在已经成功运行了一个数字示例,下一步是要更深入地了解Arduino的功能。当然,闪烁是不错的功能,也可以让LED处于半亮半灭的状态。方法是编程渐变效果,但在Arduino上只有几个引脚能够进行类似模拟输出的操作,这些引脚在你的开发板上会用一个小波浪线(~)或其他标记来标明。

在进行任何修改之前,请先拔掉连接线,然后将连接到引脚13的导线插入标有PWM标记的引脚9。

在Arduino软件中点击文件 > 范例 > 01.基础 > 渐变,然后将开发板连接上电脑,上传该代码到Arduino板上,就可以看到LED的渐亮和渐灭效果。

Arduino板只能生成数字信号,即HIGH和LOW,但analogWrite() 通过脉冲宽度调制(PWM),来模拟在开和关之间的亮度变化,从而实现看起来像是亮度调节的效果。LED快速地开和关,便会觉得是看到光线变暗。LED点亮和熄灭的时间比例决定了LED的亮度。

看看代码,便可以了解这种渐变效果是如何实现的。可以在 Arduino 首选项中启用行号,以便更好地引用代码的不同部分。

第16行到18行说明了程序中使用的三个变量;第23行的设置部分将引脚9配置为输出;在第29行,analogWrite()函数根据作为变量的亮度值来设置引脚9的输出;在第32行,亮度通过数值为5的fadeAmount递增。

第35行使用if语句通过比较运算符检查亮度,如果亮度小于或等于零,或者大于或等于255,则执行内部代码,否则,跳过该部分。因此,代码会增加亮度,直到达到或超过255。然后,将fadeAmount设置为-5,并递减亮度直到达到零或小于零。最后的delay()函数是防止代码运行过快,以至于你无法看到效果。

PWM的快速闪烁也是为什么有时在相机或手机上,录制LED灯时会出现闪烁。这取决于快门速度。PWM也用于在RGB LED中实现颜色混合,每种颜色的LED被设置为不同的亮度级别,当它们在同一个封装中混合时,可以形成任何颜色的光。
进阶编程技巧
在这个Arduino基础入门教程中,最后一个要介绍的概念是for()循环,也称为计数循环。它从一个初始值计数到一个上限值,在这个程序中,我们以5为增量从0计数到255。就像之前的LED渐变程序一样,这表明有不止一种编写相同程序的方法。

你也可连接更多的LED,并使用for()循环来为它们添加动态效果,在for()循环完成计数后,主循环的剩余部分会执行,然后重新开始。

刚开始接触Arduino可能会让人感到压力,但别忘了当你遇到问题时,可以在网上查找相关资料。Arduino官网有一个很实用的参考部分,可以在那里找到代码每个部分的解析和示例,还有一个社区论坛,可以在其中找到与你的项目相关的协助。

对于电子设计或电子爱好者来说,Arduino是非常实用的工具,它可以帮助你完成一些设计,而且还有丰富的资源为你解决疑难。掌握好使用Arduino的技巧,相信会是一大助力,成就出更多你的创意作品。
关于本系列视频

电子设计博大精深,对于初学者来说,有一定的难度。本系列视频旨在介绍一些入门级的技术和技巧,包括电路设计基础知识、简单编程等,让初学者从基础开始,再一步步向更进阶出发,在电子设计的世界里,发掘更多乐趣,同时也可以让电子设计爱好者温故知新。

关于Becky Stern

Becky Stern是一名创客,拥有多年设计电子项目的经验,创作和分享是她两大爱好。在独立创业之前,她曾担任 Instructables (Autodesk) 的产品经理、Adafruit 的可穿戴电子产品总监等。她的作品曾被 BBC、CNN、Business Insider、Forbes 和 Science Friday 等知名媒体报道过。她创建了数百个关于技术和手工制作的在线DIY教程和视频,旨在分享她的知识,帮助同是电子设计爱好者的同路人学习,相互交流。欢迎点以下按钮,参与交流↓

我要到技术论坛一起讨论

喜欢【与Becky入门电子世界】系列视频吗?请关注订阅并点赞、收藏和分享,敬请留意下一期的播放!

相关产品:

Arduino

A000066

DFRobot

FIT0096

Adafruit

1957


Adafruit

1311


Adafruit

2488


SparkFun

DEV-15123


Seeed Technology

102010026

 小编的话

作为一个多功能的电子开发平台,Arduino为工程师提供了广泛的应用场景和学习机会,有助于我们提升技能、扩展视野,并在职业生涯中取得成功。相信通过这期视频内容,我们对如何利用Arduino来进行电路设计有了更多的了解。您对Arduino的应用有哪些疑问和经验?您是否活跃在Arduino全球社区?欢迎留言,分享交流!

点击下方“阅读原文”查看更多


“星标”我们,不错过新鲜案例和行业干货