我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1120|回复: 4

[移动软件开发] Arduino在嵌入式开发中应用案例之arduino点亮LED

[复制链接]
  • TA的每日心情

    2024-10-6 20:55
  • 签到天数: 1 天

    [LV.1]初来乍到

    479

    主题

    247

    回帖

    1392

    积分

    二级逆天

    积分
    1392

    终身成就奖特殊贡献奖

    发表于 2021-1-13 09:22:02 | 显示全部楼层 |阅读模式

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×
    你了解什么是Arduino吗?你知道Arduino能做些什么吗?今天就让我们来认识一下Arduino!
    Arduino是一款便捷灵活、方便上手的开源电子原型平台。

    包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。由一个欧洲开发团队于2005年冬季开发。其成员包括MassimoBanzi、DavidCuarTIelles、TomIgoe、GianlucaMarTIno、DavidMellis和NicholasZambetTI等。
    本分享一个通过arduino点亮LED的案例。
    <span segoe="" ui",="" roboto,="" "helvetica="" neue",="" arial,="" "noto="" sans",="" sans-serif,="" "apple="" color="" emoji",="" "segoe="" ui="" symbol",="" emoji";text-align:="" left;"="" style="font-size: 1.75rem; font-weight: 600; color: rgb(33, 37, 41);">需要的工具
    <article data-id="1190000015568233" data-license="cc" segoe="" ui",="" roboto,="" "helvetica="" neue",="" arial,="" "noto="" sans",="" sans-serif,="" "apple="" color="" emoji",="" "segoe="" ui="" symbol",="" emoji";font-size:="" 16px;text-align:="" left;white-space:="" normal;background-color:="" rgb(255,="" 255,="" 255);"="" deep="6" style="font-family: 微软雅黑; font-size: 16px; background-color: rgb(255, 255, 255); box-sizing: border-box; line-height: 1.6; color: rgb(33, 37, 41);">

    硬件设备

      [li]ArduinoUno开发板
      [/li][li]台式机
      [/li][li]Arduino到台式机连接线
      [/li]


    软件

      [li]AtmelStudio
      安装AtmelStudio,里面会有atmel的编译器,还会安装PC端的virtualcommportdriver用来打印信息到TeraTerm
      [/li][li]当然也可以下载一个ArduinoIDE,ArduinoIDE可以快速地对Arduino进行编程,但我比较习惯用AtmelStudio。
      [/li]
    AvrDude
      [li]这个软件可以通过串口下载代码到Arduino
      [/li]
    串口通信软件,putty或者TeraTerm
    代码编辑软件,Atom或者其他任何可以编辑文本的软件


    文档

      [li]Arduino的CPUAtmel328P的芯片手册,下载链接。
      [/li]


    开启Arduino之旅



    项目介绍

    这个小项目主要是带大家入门嵌入式开发领域。
      [li]点亮自己的LED小灯
      [/li][li]通过串口进行debug
      [/li][li]写一个简单的commandlineinterface用来和板子通信
      [/li]


    初识Arduino硬件

    我们的核心是ArduinoUno开发板,下面这张图是Arduino的电路图。我把它的几个大块标记出来,下面我一一来说明下。
      [li]VoltageRegulator:它的任务是为系统提供稳定的3.3V和5V的电压。在蓝色区域有两个voltageregulator,一个是LP2985,输入5V,输出3.3V;一个是NCP1117,输入最高20V,输出5V。Arduino的供电有两种,一种是USB供电,这时候只从蓝色区域左下角的USBVCC为板子提供5V电压,然后通过一个regulator为板子提供3.3V电压。另一种供电是通过供电插口(在板子上USB插口的下方有个圆形的黑色电源插口),这个供电插口是蓝色区域中靠中间的长方形区域,它的电压可以最高到20V,然后通过NCP1117变成5V电压,然后再通过LP2985变成3.3V电压。这里面有个值得注意的地方是蓝色区域的USBVCC出来后连接了一个三极管,三极管上面有个比较器,比较器的正向输入端连接了一个分压电路,反向输入端连接着3.3V。它的目的是如果从供电插口输入的电压不足5V,那就用USB的5V电压,否则就用供电插口的5V电压。
      [/li][li]USBControlchip:USB的控制芯片,买回来的Arduino中这个芯片的固件都是已经在里面的,它的作用是把USB接口的东西转成串行通信数据(在电路图红色的SerialComm部分)发送给CPU,还用把CPU从串行通信发出来的东西,传换成USB信号发送给PC机。
      [/li][li]MainCPU:主CPU是Atmel328P。8-bitCPU,因为Arduino没有外接的serialflash或者外接的SDRAM,所以根据芯片手册,一共有32KB芯片上的programmingflash,编译的代码可以放在这个flash里面。有2KB的SRAM,一些寄存器的信息,stack和heap,全局变量等都放在RAM里。
      [/li][li]Crystal:16MHz的晶振
      [/li][li]LEDED的输入标记是SCK,对应连接的是atmel328P上的B5管脚。LED连接了一个放大器,目的是电流不通过放大器,只是通过电压来控制LED,这样的话B5管脚可以做其他用途。
      [/li][li]SerialComm:串口通信端口,在CPU上通过usart给PC端发送数据。
      [/li]


    点亮ArduinoLED小灯



    创建项目

      [li]选择File-&gtroject->GCCexecutableproject
      输入项目名称,之后的芯片请选择atmel328p
      [/li]
    然后需要配置avrdude,选择tool->externaltool开始配置avrdude
      [li]TItle:avrdudeprogrammer
      [/li][li]Command:<code liberation="" mono",="" "courier="" new",="" monospace;font-size:="" 14px;color:="" rgb(232,="" 62,="" 140);overflow-wrap:="" break-word;"="" style="font-family: monaco, Consolas, "Liberation Mono", Courier, monospace; display: inline-block; padding: 0px 4px; margin: 0px 5px; background: rgb(238, 238, 238); border-radius: 3px; font-size: 13px; box-sizing: border-box;">C:avrdudeavrdude.exe请填写到avrdude的路径。
      [/li][li]Arguments:<code liberation="" mono",="" "courier="" new",="" monospace;font-size:="" 14px;color:="" rgb(232,="" 62,="" 140);overflow-wrap:="" break-word;"="" style="font-family: monaco, Consolas, "Liberation Mono", Courier, monospace; display: inline-block; padding: 0px 4px; margin: 0px 5px; background: rgb(238, 238, 238); border-radius: 3px; font-size: 13px; box-sizing: border-box;">-F-V-carduino-pATMEGA328P-PCOM6-b115200-Uflash:w:"$(ProjectDir)Debug$(ItemFileName).hex":i里面的COM6请从devicemanager中找出当前的commport.
      [/li]


    点亮LED灯
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-5-29 20:33
  • 签到天数: 1 天

    [LV.1]初来乍到

    47

    主题

    6492

    回帖

    7755

    积分

    二级逆天

    积分
    7755

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2021-1-13 10:18:32 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情

    3 天前
  • 签到天数: 81 天

    [LV.6]常住居民II

    3

    主题

    2974

    回帖

    1199

    积分

    二级逆天

    积分
    1199

    社区居民终身成就奖特殊贡献奖优秀斑竹奖

    QQ
    发表于 2021-1-13 11:20:53 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情

    昨天 09:40
  • 签到天数: 166 天

    [LV.7]常住居民III

    7

    主题

    5275

    回帖

    4519

    积分

    二级逆天

    积分
    4519

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    发表于 2021-1-13 12:03:47 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    5

    主题

    675

    回帖

    41

    积分

    二级逆天

    积分
    41

    社区居民忠实会员终身成就奖

    QQ
    发表于 2021-1-13 13:38:16 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    每日签到,有金币领取。


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    ( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

    平平安安
    TOP
    快速回复 返回顶部 返回列表