Arduino技术内幕目录

第1章硬件1

1.1什么是arduino 1?

1.2arduino uno 2

1.2.1处理器3

1.2.2串口4

1.2.3电源5

1.2.4扩展插座6

1.2.5屏蔽8

1.3 arduino mega 2560 11

1.4之前的硬件12

1.4.1arduino序列号12

1.4.2arduino usb 13

1 . 4 . 3 arduino extreme 14

1.4.4 Arduino四星龙通用(新一代)14

1 . 4 . 5 arduino diecimila 14

1 . 4 . 6 arduino duemilanove 15

1.4.7arduino mega 15

1.5谁在做arduino 15?

1.5.1官方授权产品15

. 1.5.2其他17

1.6自己动手arduino 17

1 . 6 . 1 arduino PCB 17

1.6.2面包板arduino 18

1.7汇总19

第二章软件21

2.1主机和目标21

2.2循序渐进21

第一步:编写代码22

2.2.2步骤2:编译代码27

2.2.3步骤3:对芯片进行编程28

2.2.4步骤4:测试和调试29

2.2.5步骤5:重复29

2.3半自动29

2.4进一步33

2.5摘要33

第3章atmel avr 34

3.1原点34

3.2avr芯片系列34

3.3如有疑问:芯片设备手册35

3.4芯片封装35

3.4.1倾角)35

3.4.2表面贴装器件(smd) 36

额外引脚37

3.5引脚定义37

3.6avr内核43

3.6.1时钟源45

地址空间46

指令集49

3.7片内外设54

通用输入/输出(i/o) 55

外部中断55

定时器/计数器56

3.7.4usart 57

3.7.5双线串行接口(twi),即i2c 57。

模拟输入58

3.8摘要58

第4章支持硬件59

4.1电路图59

4.1.1组件类型60

4.1.2部件号60

4.1.3元件值61

4.1.4元件值误差61

4.1.5组件的其他参数62

4.1.6连接62

4.2电路板的电源63

4.2.1接线柱电源插座63

4.2.2输入电源调整63

电压调节器65

4.2.4电源电路的演变65

4.3串行端口67

4.4处理器69

4.4.1功耗69

4.4.2i/o驱动能力70

复位信号70

4.4.4时间基准

4.4.5去耦电容71

4.4.6闪光灯71

4.5扩展空间71

4.6结构形状72

4.7通用串行总线(usb):信号加电源73

4.8摘要74

第5章arduino软件75

5.1开源软件76

5.2多平台支持76

5.3 Arduino 76的继承和发展

5.4软件安装77

5.5练习77

5.6用户界面78

文件菜单79

编辑菜单和编辑上下文菜单80

5 . 6 . 3按键菜单80

5 . 6 . 4工具菜单81

帮助菜单82

5.7摘要82

第六章优化83

6.1可行性83

6.2压缩闪存程序83

6.2.65438如何实现+0闪烁84

6.2.2衡量空间节省的优化措施84

代码分析84

6.2.4没有pinmode的生活()85

6.2.5缩写和简称86

6.2.6二进制书写87

深入分析87

6.2.8轻松翻转88

进一步精简88

6.2.10更有效地“浪费时间”89

6.2.11下级代码89

6.3使用简单的串行通信以节省空间90

6.3.1“你好,世界!”你做了什么?91

6.3.2写入配置寄存器91

发送数据93

6.3.4一串字符94

6.3.5输出编号95

6.4保存sram 96

6.4.1 sram 96用于测量

6.4.2最低裸机98

内存分区99

变量100的位置

使用适当的数据类型100。

6.4.6重新探索字符串101

6.5低功耗还是高速度?102

6.6电子测量103

6.6.1使用arduino作为测试仪器103

6.6.2尽快105

6.6.3减速108

6.6.4进一步降低功耗110。

6.7汇总112

第七章硬件和软件113

7.1可用外设113

7.1.1串口113

7.1.2通用数字输入和输出119

7.1.3定时器和计数器121

7.1.4脉宽调制(pwm)输出124

7.1.5模拟输入129

7.1.6外部中断133

7.1.7中断手册135

7.2汇总137

第八章样板工程139

8.1不仅仅是一个闪烁的led:从简单139开始。

8.1.1够慢了142

8.1.2优化后的六通道调光器基本完成144。

8.1.3变暗147

8.2闪光led的其他用途154

8.2.1红外遥控器154

8 . 2 . 2电视-广播-播出156

8.3多个闪烁led 157

8.3.1直接驱动157的示例

8.3.2用led驱动器直接驱动159。

8.3.3复用技术160

8.4数字时钟174

8.4.1精确度179

用户界面180

8.4.3其他功能180

8.5汇总181

第九章项目管理182

9.1文档182

9.1.1源代码注释183

9.1.2空间184

9.1.3按你的意思编程,按你的代码解释185。

9.1.4自动文档186

9.1.5为您的“读者”186

9.1.6硬件文档187

9.1.7进一步188

9.2团队合作和协作发展189

博客190

9.2.2论坛190

维基191

9.2.4修改后的控制系统191

9.2.5修订号和版本号192的描述

9.2.6作品发布网站192

9.3选择许可方式195

9.3.1专利和商标195

版权196

9.3.3开源197

9.3.4公共领域198

9.4摘要199

第10章硬件设计200

10.1了解硬件200

10.1.1必备的东西201

想要点什么202

10.2红外接近传感器203

一个简单的原型205

一些简单的改进207

印刷电路板210

10.2.4pcb布局技术

第一次尝试212

10.2.6较小版本214

连接215

10.3定制的arduino 216。

10.3.1兼容现有arduino和屏蔽板216。

10.3.2可能的电源选择217

处理器选择218

10.3.4还有呢?219

10.4设计软件219

10 . 4 . 1 CAD soft eagle 220

鹰尖220

10.5汇总221

第11章软件设计222

11.1arduino高级主题222

11.1写arduino库222

11.1.2备选内核229

不需要11.2 arduino 239。

11.2.1裸机再探239

11.2.2其他开发环境242

11.3汇总245

第12章联网246

12.1对等网络246

12.1.1通过串口246通话

12.1.2arduino 248之间的对话

12.2midi:乐器数字接口260

12.3互联网264

12.4摘要268

第13章更多作品样本269

一个自动机器人269

13.2电源270

13.3动作控制270

13.4传感器276

13.4.1光敏传感器276

接触传感器277

13.4.3非接触传感器278

13.4.4声音传感器279

13.4.5指示器、控制器和其他通信形式279

65438+3.5控制系统281

13.5.1开环系统

13.5.2闭环系统282

13.6机器人工程示例283

1一个练习机器人284

下一个机器人304

13.6.3你的终极机器人318

13.7汇总319