前言
第一篇 基础篇
第1章 初识Arduino
1.1 Arduino的历史
1.2 Arduino的家族
1.3 Arduino的资源
1.4 Arduino的开发环境
1.5 添加新硬件及设置开发环境
1.6 Arduino开发环境的应用
第2章 编写Arduino程序
2.1 绘制流程图
2.1.1 流程图基本符号
2.1.2 流程图的三种基本结构
2.2 C语言的标识符与关键字
2.2.1 标识符
2.2.2 关键字
2.2.3 运算符
2.2.4 分隔符
2.2.5 常量
2.2.6 注释符
2.3 控制语句
2.3.1 if语句
2.3.2 switch语句
2.3.3 while语句
2.3.4 do-while语句
2.3.5 for语句
2.3.6 break语句
2.3.7 continue语句
2.3.8 goto语句
2.4 程序结构
第3章 Arduino的基本函数
3.1 数字I/O
3.1.1 pinMode(pin,mode)
3.1.2 digitalWrite(pin,value)
3.1.3 digitalRead(pin)
3.2 模拟I/O
3.2.1 analogReference(type)
3.2.2 analogRead(pin)
3.2.3 analogWrite(pin, value)
3.3 高级I/O
3.3.1 shiftOut(dataPin,clockPin, bitOrder,val)
3.3.2 pulseIn(pin,state,timeout)
3.4 时间函数
3.4.1 millis( )
3.4.2 delay(ms)
3.4.3 delayMicroseconds(us)
3.5 数学库
3.5.1 min(x,y)
3.5.2 max(x,y)
3.5.3 abs(x)
3.5.4 constrain(amt,low,high)
3.5.5 map(x,in_min,in_max,out_min, out_max)
3.5.6 三角函数
3.6 随机数
3.6.1 randomSeed(seed)
3.6.2 random(howsmall,howbig)
3.7 位操作
3.8 中断函数
3.8.1 interrupts( )和noInterrupts( )
3.8.2 attachInterrupt(interrupt,function,mode)
3.9 串口通信
3.10 SPI接口
3.10.1 SPI接口概述
3.10.2 SPI接口数据传输
3.10.3 SPI类及其成员函数
第4章 Arduino硬件平台
4.1 Arduino的原理图
4.2 串行通信口的使用
4.2.1 实例功能
4.2.2 硬件电路
4.2.3 程序设计
4.3 数字I/O口的使用
4.3.1 实例功能
4.3.2 硬件电路
4.3.3 程序设计
4.4 模拟I/O口的使用
4.4.1 实例功能
4.4.2 硬件电路
4.4.3 程序设计
4.5 烧写引导程序
4.5.1 下载器AVRISP
4.5.2 AVR Studio
4.5.3 烧写引导程序
第二篇 模块篇
第5章 Arduino基本扩展模块
5.1 L293 Motor Shield
5.1.1 直流电机的工作原理
5.1.2 H桥驱动电路
5.1.3 线性放大调速原理
5.1.4 PWM调速原理
5.1.5 L293 Motor Shield的原理
5.1.6 L293 Motor Shield的应用
5.1.7 程序设计
5.1.8 程序分析
5.1.9 程序的精练
5.2 Input Shield
5.2.1 Input Shield原理图
5.2.2 Input Shield的实例
5.2.3 程序设计
5.2.4 程序分析
5.2.5 使用摇杆控制直流电机转速
5.3 LCD Keypad Shield
5.3.1 液晶显示原理
5.3.2 标准1602液晶模块
5.3.3 1602液晶模块控制方式
5.3.4 LCD Keypad Shield原理图
5.3.5 LCD Keypad Shield应用实例
5.3.6 程序设计
5.3.7 程序分析
5.3.8 Arduino的液晶控制方式
5.3.9 “hello Arduino!”
5.4 Ethernet Shield
5.4.1 Ethernet Shield原理图
5.4.2 W5100芯片介绍
5.4.3 W5100芯片的寄存器
5.4.4 W5100芯片的使用
5.4.5 Ethernet Shield应用实例
5.4.6 程序设计
5.5 I/O扩展板
5.5.1 Xbee传感器扩展板V5
5.5.2 伺服电机控制
5.5.3 伺服电机应用实例
5.5.4 Interface shield
5.5.5 RGB LED Module
5.5.6 RGB LED Module应用实例
5.5.7 程序的精练
第6章 Arduino的扩展库
6.1 Arduino扩展库介绍
6.1.1 Arduino扩展库的作用
6.1.2 Arduino扩展库的应用
6.2 对象和类
6.2.1 类的定义
6.2.2 对象的创建及成员函数的调用
6.2.3 对象的初始化和构造函数
6.2.4 函数的重载
6.2.5 析构函数
6.3 LiquidCrystal库
6.3.1 构造函数
6.3.2 command( )和write( )
6.3.3 begin( )
6.3.4 clear( )
6.3.5 home( )
6.3.6 setCursor( )
6.3.7 noDisplay( )和display( )
6.3.8 cursor( )和noCursor( )
6.3.9 blink( )和noBlink( )
6.3.10 autoscroll( )和
noAutoscroll( )
6.3.11 scrollDisplayLeft( )和scrollDisplayRight( )
6.3.12 print( )
6.4 Ethernet库
6.4.1 EthernetClass类定义
6.4.2 Server类定义
6.4.3 Server类构造函数
6.4.4 Server类成员函数
6.4.5 Client类定义
6.4.6 Client类构造函数
6.4.7 Client类成员函数
6.5 SoftwareSerial库
6.5.1 构造函数
6.5.2 begin( )
6.5.3 read( )
6.5.4 print( )和println( )
6.5.5 使用限制
6.6 EEPROM库
6.6.1 read( )
6.6.2 write( )
6.7 Wire库
6.7.1 IIC总线概述
6.7.2 TwoWire类定义
6.7.3 begin( )
6.7.4 requestFrom( )
6.7.5 available ( )
6.7.6 receive( )
6.7.7 beginTransmission( )
6.7.8 endTransmission( )
6.7.9 send( )
6.7.10 onReceive( )
6.7.11 onRequest( )
6.8 Servo库
6.8.1 构造函数
6.8.2 attach()
6.8.3 write( )
6.8.4 writeMicroseconds( )
6.8.5 read( )
6.8.6 readMicroseconds( )
6.8.7 attached( )
6.8.8 detach( )
6.9 Stepper库
6.9.1 步进电机概述
6.9.2 步进电机的基本参数
6.9.3 步进电机的优缺点
6.9.4 步进电机的工作原理
6.9.5 步进电机的控制电路
6.9.6 Stepper类定义
6.9.7 构造函数
6.9.8 setSpeed( )
6.9.9 step( )
6.10 TLC5940库
6.10.1 Tlc5940类的定义
6.10.2 init( )
6.10.3 update( )
6.10.4 set( )
6.10.5 get( )
6.10.6 setAll( )
6.10.7 clear( )
6.11 OneWire库
6.11.1 单总线的结构
6.11.2 单总线控制方式
6.11.3 单总线信号形式
6.11.4 OneWire类
6.11.5 构造函数
6.11.6 reset( )
6.11.7 write_bit( )
6.11.8 read_bit( )
6.11.9 write( )
6.11.10 read( )
6.11.11 select( )
6.11.12 skip( )
6.12 XBee库
6.12.1 XBee类定义
6.12.2 构造函数
6.12.3 begin( )
6.12.4 readPacket( )
6.12.5 send( )
6.13 创建自己的库
6.13.1 库的功能—Morse
6.13.2 MorseCode类的定义
6.13.3 MorseCode类的成员函数
6.13.4 MorseCode库的使用
6.13.5 关键字的定义
第7章 无线模块的应用
7.1 APC220
7.1.1 APC220性能指标
7.1.2 模块引脚定义
7.1.3 模块的使用
7.1.4 注意事项
7.2 DFduino wireless
7.2.1 DFduino wireless性能指标
7.2.2 模块引脚定义
7.2.3 模块的使用
7.3 Bluetooth V3
7.3.1 Bluetooth V3性能指标
7.3.2 模块引脚定义
7.3.3 模块的使用
7.4 XBee和XBee PRO
7.4.1 XBee及XBee PRO性能指标
7.4.2 模块引脚定义
7.4.3 模块的使用
7.4.4 程序设计
第三篇 应用篇
第8章 打造自己的遥控履带车
8.1 履带车的驱动
8.1.1 实现功能
8.1.2 所需器材
8.1.3 硬件连接
8.1.4 程序设计
8.1.5 MotorCar类
8.1.6 类的应用
8.2 添加感知器件
8.2.1 实现功能
8.2.2 所需器材
8.2.3 器材介绍
8.2.4 硬件连接
8.2.5 程序设计
8.3 添加无线模块
8.3.1 实现功能
8.3.2 所需器材
8.3.3 硬件连接
8.3.4 程序设计
8.4 制作遥控器
8.4.1 实现功能
8.4.2 所需器材
8.4.3 硬件连接
8.4.4 程序设计
8.5 履带车遥控调速
8.5.1 实现功能
8.5.2 程序设计
8.6 添加无线摄像头
8.6.1 实现功能
8.6.2 所需器材
8.6.3 器材介绍
8.6.4 硬件连接
8.6.5 程序设计
8.7 环境信息获取器件
8.7.1 实现功能
8.7.2 所需器材
8.7.3 器材介绍
8.7.4 硬件连接
8.7.5 程序设计
第9章 仿生机器人
9.1 遥控机械臂
9.1.1 实例功能
9.1.2 器材列表
9.1.3 搭建硬件环境
9.1.4 安装控制部分
9.1.5 Wii游戏手柄
9.1.6 机械臂程序设计
9.2 双足机器人
9.2.1 实例功能
9.2.2 器材列表
9.2.3 搭建硬件环境
9.2.4 双足机器人程序设计
9.2.5 PC调试软件编写
9.2.6 双足机器人的调试
附录A Arduino引脚与AVR单片机管脚对应关系
附录B Arduino扩展板
附录C 其他可扩展模块