Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков
Компоненты и материалы
| Компонент | Количество |
|---|---|
| Arduino UNO | 1 |
| Микроконтроллер ATtiny85 (Microchip Technology) | 1 |
| Электролитический конденсатор 10 мкФ / 25 В (для декаплинга) | 1 |
| Перемышки «папа-папа» | 1 набор |
О проекте
Я работаю над проектом, требующим сбора данных с нескольких датчиков в разных точках. Им нужно всего несколько ШИМ-выходов, поэтому использование нескольких плат Arduino Uno было бы дорого и избыточно. Я решил заменить их на микроконтроллеры ATtiny85 — дешевые и мощные альтернативы, когда не требуется много выводов.
Поскольку ATtiny85 — это «голый» микроконтроллер, для его программирования нужен Arduino Uno в роли программатора. В этой статье я подробно опишу весь процесс.
Ниже — распиновка ATtiny85. Даташит: atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-attiny85_datasheet.pdf

Настройка Arduino Uno как ISP-программатора
- Подключите Arduino Uno к ПК.
- В Arduino IDE откройте пример: Файл → Примеры → ArduinoISP.
- Загрузите его в Arduino Uno.
Теперь ваша плата работает как ISP (In-System Programmer).
Добавление поддержки ATtiny85 в Arduino IDE
- Файл → Настройки — в поле «Дополнительные URL для менеджера плат» добавьте:
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json - Инструменты → Плата → Менеджер плат — пролистайте вниз до пункта «attiny by Davis A. Mellis» и нажмите «Установить».
- После установки в меню Инструменты → Плата появится новая запись ATtiny.




Подключение ATtiny85 к Arduino Uno
Соберите схему на бредборде:
| Arduino Uno | ATtiny85 |
|---|---|
| 5V | Vcc (pin 8) |
| GND | GND (pin 4) |
| Pin 13 (SCK) | Pin 2 (PB3) |
| Pin 12 (MISO) | Pin 1 (PB2) |
| Pin 11 (MOSI) | Pin 0 (PB0) |
| Pin 10 (SS/RESET) | Reset (pin 5) |


Важно: добавьте конденсатор 10 мкФ между RESET и GND на Arduino Uno (плюс электролита — в GND). Это предотвратит авто-сброс Arduino при загрузке прошивки в ATtiny85.
Загрузка программы в ATtiny85
- В Arduino IDE: Инструменты → Плата → ATtiny, затем Процессор → ATtiny85, Частота → 8 MHz (internal).
- Инструменты → Программатор → Arduino as ISP.
- По умолчанию ATtiny85 работает на 1 MHz. Чтобы перевести на 8 MHz: Инструменты → Записать загрузчик (Burn Bootloader). Это пропишет фьюзы для работы от внутреннего генератора 8 МГц.
- Откройте пример Файл → Примеры → 01.Basics → Blink, замените номер пина с 13 на 0 (PB0) и загрузите (Скетч → Загрузить через программатор / Ctrl+Shift+U).







Тестирование Blink на ATtiny85
Отключите все провода от Arduino. Подайте питание на ATtiny85 — например, от кнопочного элемента (CR2032).

Светодиод мигает! Теперь у вас есть автономный микроконтроллер с минимальными затратами, потреблением и размерами. Ограничивают только фантазия и число ШИМ-выводов (2 канала аппаратного ШИМ + программное на остальных).
Превращение в шилд для Arduino Uno
Я оформил схему в виде шилда, надеваемого на Arduino Uno.





(Примечание: будучи разработчиком ПО, это мой первый электронный проект. Буду благодарен за советы для дальнейших работ.)
Код (Blink для ATtiny85)
/* Blink
Включает светодиод на 1 сек, затем выключает на 1 сек, циклично.
На ATtiny85 используем пин 0 (PB0).
Этот код в общественном достоянии. */
void setup() {
pinMode(0, OUTPUT); // PB0 как выход
}
void loop() {
digitalWrite(0, HIGH);
delay(1000);
digitalWrite(0, LOW);
delay(1000);
}
Схемы


Производственный процесс
- Расширение Python на C: создание быстрых нативных модулей
- Часы реального времени на Arduino с расчётом времени намаза
- Умная копилка: управление монетоприёмником на Arduino Nano
- Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
- Простой калькулятор на Arduino UNO — базовый проект для начинающих
- Вывод изображений на 1.17-дюймовый TFT LCD с Arduino UNO
- Сборка портативного дисплея на основе эффекта сохранения изображения с Arduino UNO и ATtiny85
- Мастерство 8×8 LED-матрицы с Arduino Uno: Пошаговое руководство
- Создание интерактивного 4x4x4 светодиодного куба на Arduino Uno и 1Sheeld
- Управление 4-пиновым PWM-вентилятором 25 кГц на Arduino Uno — Сборка, код и тесты