版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Arduino uno的制作与调试 Arduino由一个基于单片机的开放源码的硬件平台和一套专的开发门环境组成。它可以用来开发交互产品,比如它可以读取大量的开关和传感器信号,并且可以控制各式各样的电灯、电机和其他物理设备。 经过两个星期的对三块Arduino uno板子的焊接与调试,我已经大概比较熟练的掌握了贴片元件及一些小芯片的焊接技术。现在我想讲讲Arduino uno rev1 这块板子的制作与调试过程。一、焊接由于Arduino uno rev1 的硬件是开源的,所
2、以我们可以直接拿来用。1. 拿到PCB板(图1)图1 Arduino uno rev1 PCB2. 根据元器件清单购置元器件元器件清单如图2。图2 元器件清单3. 焊接元器件根据图3来焊接元器件。 图3 PCB焊接图 这里我想说说焊接的方法与技巧(供初学者参考)。这块板子中还是有存在一些比较难焊的地方。1) 芯片ATmega8U2Arduino UNO与之前Arduino 2009版本的最大不同在于USB转串口部分,Arduino 2009采用的
3、是FTDI专用芯片FT232RL,而Arduino UNO采用的是用一块ATmega8U2模拟出串口的做法。这一改动着实带来了不小的麻烦,第一是该方案所采用的ATmega8U2芯片基本上在市场上很难找到,另外一点就是该芯片的封装加大了焊接的难度和成本。芯片ATmega8U2的封装很小,而且它芯片的外面没有引脚,可以看到的是它的焊盘非常的小。焊接方法为:在各个焊盘上滴上锡,完了后检查一下有没有焊盘连接在一起的,然后用镊子夹住芯片ATmega8U2,小心的对准位置,对准后用镊子压住芯片,用电烙铁在一边的周围滑动加热,使得焊盘上的锡熔化,则芯片的引脚就焊在了焊盘上,同样的,其他三边也这样。
4、焊完之后用万用表检查一下。2) 贴片晶振及其他的贴片元器件因为左手是拿镊子夹住器件对准位置,右手拿电烙铁,所以没有另外的手来添加焊锡。这时就需要先在对应的一个焊盘上滴一点焊锡,再将器件对准位置,用电烙铁在上面加热,焊锡熔化就与元器件连接在一起,在焊接另外一个焊盘。焊接完成后如图4所示。再用万用表检查各个焊点。图4 Arduino uno rev1二、原理图分析1. 外接电源输入部分Arduino UNO可以使用外接电源进行输入,A是电源输入口,电源的输入的范围为7V到12V.。图5中B是二极管,二极管的特性是单向导通。使用
5、二极管的目的是:即使电源输入的正反极性反转,也不会烧毁线路板上的元器件。C是稳压管,把输入电压稳定在5V。由于C器件的输入和输出间需要一定的压差,所以A的输入电压不能低于7V。另外,如果A的输入电压过高,会使得器件C输入和输出电压差过大,从而使得C因为温度过高也烧毁。用户在使用外接电源输入时,请把输入电源的电压范围控制在7V到12V之间。原则上,越靠近7V越好。图5 外接电源输入部分 2. USB电源输入部分 Arduino UNO也可以使用USB口直接供电。图6中A是USB接头,可以给Arduino
6、0;UNO提供5V的电压。B是保险管,当UNO所需要的电流大于500mA的时候,该保险管会自动断开,以防止损坏电脑。图中C是10K的排阻,用来对上面提到的外接电源输入进行分压。当外接电源输入电压VIN大于7V时,D器件的第3脚由于电压高于D器件的第2脚(3.3V),所以D器件的第1脚输出高电平。器件E是PMOS,当D器件的第1脚输出高电平时,器件E处于截至状态,从而切断了USB接口的供电。当外接电源输入电压VIN小于6V时,D器件的第3脚由于电压低于D器件的第2脚(3.3V),所以D器件的第1脚输出低电平。器件E处于导通状态,此时,Arduino UNO由USB口进行供电。器件F是线
7、性稳压器,负责把5V电源转变成3V电源,该器件能给Arduino UNO提供大约50mA的电流。图6 USB电源输入部分3. ATmega8U2/ATmega16U2ATmega8U2和ATmega16U2是USB接口芯片,其特征包括:1)8K/16K字节的Flash,支持自擦写功能。512字节EEPROM和512字节SRAM (8U和16U的不同处是Flash容量)2)内置Boot-Loader功能。3)支持USB全速,包含4个USB输入输出端口4)包含内置晶振。5)操作电压范围为2.7V到5.5V。2.7V时,最大工作频率是8MHz,4.5V时,最大
8、工作频率是16MHz。三、Arduino uno板子的调试1. USBtinyISP的驱动安装Arduino uno的调试用到工具官方支持下载线 USBtinyISP 。USBtinyISP也是一款 为AVR单片机设计的基于USB接口的ISP下载线,使用它可以为大部分AVR单片机下载程序。在Arduino IDE中,USBtinyISP是一直被支持的下载线,用来下载其bootloader,与之前使用的USBasp 下载线相比,使用起来更加简单。首先下载USBtinyISP驱动程序,将其解压缩到硬盘上备用。将下载线通
9、过USB线连接到计算机后,系统会提示找到相应的硬件:在随后出现的“找到新的硬件向导”对话框中,选“否,暂时不”,然后单击“下一步”按钮:在随后出现的对话框中,选“从列表或指定位置安装(高级)”,然后单击“下一步”按钮:接着指定之前解压缩开的驱动文件所在的目录:单击“下一步”按钮之后,系统就开始安装USBtinyISP所需要的驱动文件:最后单击“完成”按钮,就大功告成了:此时在系统的硬件管理器中,我们能够找到“USBtinyISP AVR Programmer”,表明该下载线已经可以使用了:USBtinyISP在设计的时候,设置了相应的跳线来为单片机供电。在为Arduino下
10、载bootloader的时候,我们需要将该跳线短路,这样就不需要再为Arduino提供额外的电源了:2. ATMega8U2固件烧写与驱动安装安裝好USBtinyISP驱动之后,首先要向ATMega8U2内写入相应的USB固件(firmware)。在Arduino-0022安装目录下的hardwarearduinofirmwares目录下,我们可以找到为Arduino UNO 编译好的USB固件文件UNO-dfu_and_usbserial_combined.hex。编译时需要调用avrdude,我们先从arduino 0022中找到avrdude的两个
11、文件,avrdude.exe,avrdude.conf,如下图: 把他们放入arduino-0022hardwarearduinofirmwares文件夹下面Arduino UNO上为ATMega8U2单片机也留出了ICSP接口,我们可以借助它来下载相应的USB固件,使用的工具是USBTinyISP。把tinyISP与8U2芯片上方的ICSP接口连接好。ICSP线的街头上,有一个小三角,那个指向的是1号口。板子上ICSP的1号口也都有标记,如图:然后进入命令状态,进入arduino-0022hardwarearduinofirmwares目录,输入命令:avrdude
12、60;-p at90usb82 -F -P usb -c usbtiny -U flash:w:UNO-dfu_and_usbserial_combined.hex-U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m这段命令后半部分是设置熔丝位,熔丝低位ff,高位d9,扩展位f4,lock位0f。完成以后我们就可以把uno的usb口连接电脑,测试是否下载成功(
13、如果下载固件失败,很可能是ATmega8U2焊接失败)。在win7下连接后,会提示找到新硬件因为系统驱动中没有包含,所以会提示安装失败,不要紧。这时进入控制面板中的系统在有感叹号的uno上点右键,选择更新驱动。然后选择手工查找驱动选择驱动目录,默认是在arduino-0022drivers目录下。提示不用管,安装就可以。 3. ATmega328芯片bootloader的烧写用6芯的连接线将USBtinyISP和Arduino上的ICSP座连接起来:注意由于Arduino的ICSP座并没有设计反插反的座,你需要6芯连接线上带三角形的那一位是对应于ICSP座上的“1”:硬件连
14、接好之后,此时可以打开Arduino的IDE了。在菜单“Tools”->“Board”列表中选择好你的Arduino板子的型号 之后,就可以通过菜单“Tools”->“Burn Bootloader”->“w/ USBtinyISP”来下载Arduino的bootloader:整个下载的过程中,USBtinyISP上红色的BUSY灯会一直亮着,表明其正在工作:整个下载过程会持续一段时间,但速度与USBasp相比还是要快一些。下载完成之后,在Arduino IDE窗口中会显示“Done burning bootload
15、er”:4. 测试 到现在为止,板子已经全部好了,接下来将导入程序进行测试。拔掉USBtinyISP下载器,直接用USB连接板子。可以看到工作指示灯亮。然后打开Arduino的IDE,在菜单“File”->“Example”->"Basics"->"Blink"。然后点把程序下载到板子里去。在下载过程中,板子上的RX、TX灯会闪亮,下载完成后黄色的灯L每隔一秒闪一次,表示调试成功了。四、Arduino uno中常用的基本函数1. 结构viod setu
16、p() 初始化变量、管脚模式、调用库函数等; void loop() 连续执行函数内的语句。2. 功能 1) 数字I/O pinMode(pin, mode) 数字IO口输入输出模式定义函数,pin表示为013, mode表示为INPUT或OUTPUT。 digitalWrite(pin, value) 数字IO口输出电平定义函数,pin表示为013,value表示为HIGH或LOW。比如定义HIGH可以驱动LED。in
17、t digitalRead(pin) 数字IO口读输入电平函数,pin表示为013,value表示为HIGH或LOW。比如可以读数字传感器。 2) 模拟I/Oint analogRead(pin) 模拟IO口读函数,pin表示为05(Arduino Diecimila为05,Arduino nano为07)。比如可以读模拟传感器(10位AD,05V表示为01023)。 analogWrite(pin, value) - PWM 数字IO口PWM输出函数,Arduin
18、o数字IO口标注了PWM癿IO口可使用该函数,pin表示3, 5, 6, 9, 10, 11,value表示为0255。比如可用于电机PWM调速或音乐播放。 3) 时间函数 delay(ms) 延时函数(单位ms)。 delayMicroseconds(us) 延时函数(单位us)。 4) 数学函数min(x, y) 求最小值 max(x, y) 求最大值 abs(x) 计算绝对值 co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年大连市酒店行业分析报告及未来发展趋势报告
- 2026年辽宁省成品油行业分析报告及未来发展趋势报告
- 2026年脑循环综合治疗仪行业分析报告及未来发展趋势报告
- 2026年协作机器人行业分析报告及未来发展趋势报告
- 内科护理中的护理工作与职业发展
- 2026年益母草膏行业分析报告及未来发展趋势报告
- 2026年水杨醛行业分析报告及未来发展趋势报告
- 2026年地铁广告行业分析报告及未来发展趋势报告
- 2026年台式机行业分析报告及未来发展趋势报告
- 2026年纸盒印刷机行业分析报告及未来发展趋势报告
- (2026年)产科麻醉关键问题与解决方案课件
- 2025至2030教育装备行业国际化发展路径与市场拓展研究报告
- 2026年中国化工经济技术发展中心招聘备考题库参考答案详解
- 基于核心素养的初中语文思辨性阅读与表达教学策略研究教学研究课题报告
- 宠物医疗化验员技能大赛题库
- 国企智联招聘题库及答案
- T-SZRCA 011-2025 人形机器人专用线缆技术规范
- 六年级英语下册UnitDreamJobPartA教学设计闽教版三起闽教版小学六年级下册英语教案(2025-2026学年)
- 2025高温熔融金属道路运输安全技术要求
- 考公二十四节气考试题及答案
- 负荷计算表-冷负荷热负荷
评论
0/150
提交评论