Arduino Uno 作 ISP 烧录 ATtiny85:低成本多点传感方案实战
物料清单
| 组件 | 数量 | 备注 |
|---|---|---|
| Arduino UNO | 1 | 作为 ISP 编程器 |
| ATtiny85 (DIP-8) | 1 | 目标微控制器 |
| 10 μF/25V 电解电容 | 1 | 防止 UNO 自动复位 |
| 公对公杜邦线 | 若干 | 面包板连接 |
为什么选 ATtiny85?
项目需多点采集传感器数据,仅需少量 PWM/ADC 引脚。ATtiny85 仅 ¥5-10,体积 8 引脚,内部 8 MHz 振荡器,功耗极低,极适合分布式节点。但裸片无 USB,需外部编程器——Arduino Uno 即可胜任。
三步配置 Arduino ISP 环境
1. 烧录 ArduinoISP 固件
UNO 连接电脑 → Arduino IDE → 文件 → 示例 → 11.ArduinoISP → ArduinoISP → 上传。
2. 添加 ATtiny 板包支持
- 文件 → 首选项 → 附加开发板管理器网址 填入:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json - 工具 → 开发板 → 开发板管理器 搜索 “attiny” → 安装 “attiny by Davis A. Mellis”
- 安装后 工具 → 开发板 出现 “ATtiny25/45/85” 选项
3. 硬件连线(面包板)
| Arduino UNO | ATtiny85 引脚 | 功能 |
|---|---|---|
| 5V | VCC (8) | 供电 |
| GND | GND (4) | 地 |
| D13 (SCK) | PB2 (7) | SPI 时钟 |
| D12 (MISO) | PB1 (6) | SPI 主入从出 |
| D11 (MOSI) | PB0 (5) | SPI 主出从入 |
| D10 (SS) | RESET (1) | 复位/编程使能 |
关键:10 μF 电解电容跨接 UNO RESET 与 GND(负极接 GND),防止上传时 UNO 自动复位导致编程失败。
烧录 Blink 验证流程
- IDE 设置:
开发板 → ATtiny25/45/85
处理器 → ATtiny85
时钟 → 8 MHz (internal)
编程器 → Arduino as ISP - 工具 → 烧录引导程序(实际配置熔丝位至 8 MHz,非传统 Bootloader)
- 打开 文件 → 示例 → 01.Basics → Blink,将
LED_BUILTIN(13) 改为0(PB0) - 草图 → 使用编程器上传 (Ctrl+Shift+U)
脱机运行测试
拔掉所有连线,用纽扣电池 (3V) 直供 ATtiny85 VCC/GND,PB0 接 LED 串联限流电阻 → LED 以 1 Hz 闪烁,验证成功。
进阶:制作专用编程盾
作者将电路做成 Uno 盾板,集成 ZIF 座、电容、指示 LED,单手插拔即可量产烧录。Gerber 文件可自行设计或参考文末图片布局。
常见坑点避雷
- 未烧录引导程序 → 默认 1 MHz,
delay()变 8 倍慢 - 忘接 10 μF 电容 → “not in sync” 错误
- 供电电压超 5.5V 或反接 → 烧毁 ATtiny85
- PB5 (RESET) 默认作复位,如需作普通 IO 需改熔丝位(高压并行编程才能恢复)
制造工艺
- 自制 Arduino 伊斯兰祷告时间实时时钟
- 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
- Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
- Arduino 串口简易计算器:两数四则运算演示
- Arduino UNO 驱动 1.17 英寸 TFT 屏显示图片 (SD 卡读取)
- 自制便携式视觉暂留显示器:Arduino UNO 与 ATtiny85
- Arduino Uno驱动MAX7219级联8×8 LED矩阵:从入门到动画显示
- 用 Arduino Uno 和 1Sheeld 构建 4x4x4 LED 立方体 - 互动音乐可视化项目
- Arduino UNO + 以太网盾板实现低成本太阳辐射测量仪(热电堆原理)
- 使用 Arduino Uno 和蓝牙实现遥控小车:分步指南
- Arduino Uno 控制 25kHz 4 针 PWM 风扇 - 硬件、代码与测试
- Python C 扩展开发指南:构建高性能原生模块