Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Эффективная прошивка 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

Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков

Настройка Arduino Uno как ISP-программатора

  1. Подключите Arduino Uno к ПК.
  2. В Arduino IDE откройте пример: Файл → Примеры → ArduinoISP.
  3. Загрузите его в Arduino Uno.

Теперь ваша плата работает как ISP (In-System Programmer).

Добавление поддержки ATtiny85 в Arduino IDE

  1. Файл → Настройки — в поле «Дополнительные URL для менеджера плат» добавьте:
    https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
  2. Инструменты → Плата → Менеджер плат — пролистайте вниз до пункта «attiny by Davis A. Mellis» и нажмите «Установить».
  3. После установки в меню Инструменты → Плата появится новая запись ATtiny.
Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков
Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков
Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков
Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков

Подключение 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)
Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков
Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков

Важно: добавьте конденсатор 10 мкФ между RESET и GND на Arduino Uno (плюс электролита — в GND). Это предотвратит авто-сброс Arduino при загрузке прошивки в ATtiny85.

Загрузка программы в ATtiny85

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

Тестирование Blink на ATtiny85

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

Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков

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

Превращение в шилд для Arduino Uno

Я оформил схему в виде шилда, надеваемого на Arduino Uno.

Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков
Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков
Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков
Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков
Эффективная прошивка ATtiny85 через 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);
}

Схемы

Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков
Эффективная прошивка ATtiny85 через Arduino Uno: бюджетное решение для множества датчиков

Производственный процесс

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