×

Arduino Uno Rev3快速入门指南

消耗积分:2 | 格式:zip | 大小:0.50 MB | 2022-12-02

殷谷光

分享资料个

描述

介绍

Arduino Uno Rev3 是市场上最受欢迎的开发板之一,因为它具有详细的文档、种类繁多的项目和代码以及强大的社区。使它更具吸引力的是它是开源的。没错,所有硬件和软件都可以免费访问。您可以深入研究原理图,甚至可以将其用作参考来设计自己的威廉希尔官方网站 板。

Uno Rev3 供工程师和科学家使用,但主要针对刚开始学习如何编码和使用微控制器的初学者。它可以在自动化和控制、数据采集、监控、物联网 (IoT) 等领域实施。

以下是您需要开始的内容:

  • A 型到 B 型 USB 电缆,用于为威廉希尔官方网站 板供电和编程
  • 运行 Windows、MacOS 或 Linux 的笔记本电脑或台式机

Arduino 集成开发环境 (IDE)

Arduino IDE用于威廉希尔官方网站 板进行编程,因此我们实际上可以用它做一些事情。当您第一次给威廉希尔官方网站 板加电时,它不会做任何事情,因为我们还没有对其进行编程。首先,您需要前往 Arduino 的官方网站下载该软件。根据您的操作系统 (OS) 选择正确的安装。例如,如果您的笔记本电脑运行的是 Windows 操作系统,则您需要选择 Windows Installer。下载会占用您计算机上大约 482MB 的数据,并且应该在 10 分钟内完成安装。如果您不想在笔记本电脑上安装该软件的副本,另一种选择是使用 Arduino Web 编辑器。这在 Arduino Cloud 中运行,允许您将草图保存在云中,并且您将始终使用最新版本。

如果您决定将 IDE 下载到您的计算机上,则每次有新版本发布时,您都必须手动安装最新版本。这真的取决于你对使用哪个的偏好——它们都做同样的事情。

完成安装过程后,继续打开 IDE,如果它没有自动启动。IDE 如下所示。

 
poYBAGOI0qKAZhkNAABlHElkKFA746.png
Arduino IDE
 

默认草图(在 Arduino 上运行的程序或代码)包含两个主要函数void setup()void loop() 这些必须在每个草图中,否则当您上传草图时会出错。setup()函数执行一次,而loop ()函数将永远运行,当板子上电时,即。例如,在setup()函数中,您可以将引脚声明为输入或输出,或设置串行终端的数据速率。如果这没有意义,请不要担心。我们将通过一个例子来澄清事情。

Arduino 的一大优点是在 IDE 中可以使用大量示例代码和库。要查看示例代码,请转到文件 -> 示例。您将看到基础知识、数字、模拟、通信等内容。让我们从基础知识开始并打开 Blink 示例。代码如下所示,供参考。此代码使 Arduino 上的内置 LED 闪烁。我鼓励您阅读由//表示的评论并尝试了解发生了什么。否则,我们将在第 5 节中进一步讨论。

 
pYYBAGOI0qSAGTBcAADQuwUS7bo831.png
LED 闪烁示例
 

硬件

在深入研究代码之前,我想先看看板上或原理图中的硬件,看看有什么可用的。如果您了解硬件,您将能够编写更高效的软件。您还可以确定您使用的威廉希尔官方网站 板是否足以满足您的设计。Arduino Uno Rev3 有一个 ATmega328P 微控制器,它是威廉希尔官方网站 板的大脑。微控制器用于运行您在 IDE 中编写的软件。它不断地从周围环境中获取数据并做出相应的反应。这种反应可能是控制执行器移动一定距离或激活继电器以打开大功率电机。

微控制器有一定数量的引脚(在本例中为 28 个引脚),每个引脚具有不同的功能。例如,一个引脚可以用作输入或输出,用作脉冲宽度调制 (PWM),或用作 I2C、SPI 或 UART 的通信信号。这完全取决于您如何在setup()函数中指定引脚。下图列出了有关微控制器的更多规格。我不会介绍微控制器所具有的不同类型的存储器,例如闪存、SRAM 和 EEPROM,因为这是一份快速入门指南。

 
poYBAGOI0qeAElb7AAGQ-lDvh6M939.png
Arduino Uno Rev3 微控制器规格
 

Arduino 具有连接到微控制器的其他外围设备、硬件和组件,例如稳压器(Arduino 以 5Vdc 运行)、Atmel 16U2(该芯片管理 USB 连接并无需外部编程器)、16MHz 石英晶体(提供微控制器的时钟信号)、母头引脚(访问微控制器上的引脚)、ICSP 头(另一种可用于对 Arduino 进行编程的方法)、B 型 USB 插座(提供电源和数据)、直流电源插孔(提供电源)、电容器和电阻器,如下图所示。

 
pYYBAGOI0qqASpK-AADubNEYjF0919.png
外围设备、硬件和组件
 

电源选项

您可以通过三种方式为 Arduino 供电:1) 使用 B 型 USB 插座,2) 使用 DC 电源插孔,或 3) 使用 Vin 引脚。如果您使用的是 USB 插座,则可以将其插入笔记本电脑为其供电。不过要小心——笔记本电脑上的 USB 端口只能提供高达 500mA 的电流,因此您可能有也可能没有足够的电力供连接的传感器或执行器使用。如果您使用的是 FuelCan,则不必担心这一点,因为它可以提供高达 2.5A 的电流。

使用直流电源插孔时,如果您需要对 Arduino 进行编程,您可能仍需要插入 USB 电缆。如果您已经对 Arduino 进行了编程,则可以通过直流电源插孔为其供电。推荐的 AC/DC 电源适配器是 9Vdc 输出,但输出可以在 7 – 12Vdc 之间变化。Vin 引脚的直流输入范围也是 7 – 12Vdc。如果你有多个电源连接到板上,即 USB 和 DC 电源插孔,它会自动选择外部电源,因为它有更高的电压。

 
poYBAGOI0q6ANn9PAAJrogIw5Uw350.png
Arduino Uno Rev3 电源选项
 

第一个示例项目

我将继续从第 2 节开始,因为我们已经打开了 Blink 的示例代码。让我们仔细看看setup()函数。在这里,我们将 LED_BUILTIN 引脚(连接到数字引脚 13)指定为输出,因为我们想为 LED 提供开启电压。如果它被设置为输入,它将不起作用——它也不会伤害任何东西。接下来,我们使用loop()函数打开 LED,等待 1000 毫秒,关闭 LED,然后再等待 1000 毫秒。如果我们没有延迟,您将无法看到 LED 闪烁,因为它对人眼来说太快了。

现在我们知道程序会做什么,我们现在必须将草图加载到微控制器的内存中,以便它可以执行。为此,请将 USB 电缆插入 Arduino 和计算机上的 USB 端口。您应该会看到 ON LED 亮起。接下来,转到 Tools -> Board 并选择 Arduino/Genuino Uno,如下图所示。

 
poYBAGOI0rGASw21AAELfF9Klz8123.png
在 Arduino IDE 中选择威廉希尔官方网站 板
 

选择板子后,我们必须选择正确的 COM 端口。如果威廉希尔官方网站 板未显示,请尝试笔记本电脑上的其他 USB 端口。如果仍然没有出现,请尝试重新启动 Arduino IDE。在我的例子中,板被映射到 COM8 端口,如下所示。

 
pYYBAGOI0rOAPBnlAADcl514nqA370.png
选择 COM 端口
 

我们现在已经指定了板和 COM 端口。剩下要做的就是将草图上传到 Uno Rev3。为此,请单击“编辑”选项卡下方的向右箭头的“上传”按钮。

注意:由于我们知道此代码有效,因此我们跳过了验证步骤。如果您正在编写自己的代码,请先单击验证(复选标记按钮)以确保您的草图中没有错误,然后单击上传。

如果草图已正确上传,您现在应该会看到 LED 闪烁!令人兴奋,对吧?想多玩一些草图吗?尝试增加每 5 秒闪烁 LED 的延迟!

延伸阅读

LED 示例是最简单的项目之一。但是,不要低估它的力量。LED可用于调试、发信号和满足。这三种用途是什么意思?假设您正试图准确定位您的代码挂起的位置。您有 3 个按顺序运行的函数,但它没有运行第 3 个函数。你应该问自己“功能 1 和 2 完成了吗,我可以进入功能 3 吗?” 一种判断方法是使用 LED。进入功能后,打开 LED,然后在退出功能时,关闭 LED。确保在打开和关闭 LED 之间有 1 秒的延迟。否则,该功能可能执行得太快,您甚至看不到 LED 循环。

LED 的一个常见用途是将它们放置在数据线上。例如,假设您正在使用由 TX 和 RX 信号组成的 UART。这将帮助您查看来回发送的数据。如果 RX 线上的 LED 没有亮起,您就知道代码中有问题或配置不正确。

看到 LED 亮起总是令人满足。这意味着代码可以正常工作,或者您离消除导致错误的错误更近了一步。


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

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.obk20.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'Arduino Uno Rev3快速入门指南',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.obk20.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);