ATtiny84: мощный 8-битный микроконтроллер с архитектурой AVR

Что такое ATtiny84. Каковы его основные характеристики и возможности. Как программировать и использовать ATtiny84. Какие существуют альтернативы этому микроконтроллеру.

Содержание

Обзор микроконтроллера ATtiny84

ATtiny84 — это высокопроизводительный 8-битный микроконтроллер с архитектурой AVR от компании Microchip (ранее Atmel). Он отличается следующими ключевыми характеристиками:

  • 14-выводный корпус, из которых 12 выводов могут использоваться как GPIO
  • 8 КБ флэш-памяти программ
  • 512 байт SRAM и 512 байт EEPROM
  • Рабочая частота до 20 МГц
  • Напряжение питания 1.8-5.5В
  • Встроенный 8 МГц RC-генератор
  • 10-битный АЦП на 8 каналов
  • Аппаратные интерфейсы SPI, I2C
  • 4 канала ШИМ
  • Два таймера/счетчика (8 и 16-битный)

ATtiny84 обеспечивает производительность до 20 MIPS при тактовой частоте 20 МГц, что позволяет эффективно решать задачи управления и обработки данных в компактных устройствах.

Распиновка и функции выводов ATtiny84

ATtiny84 выпускается в 14-выводных корпусах DIP, SOIC и QFN. Основные функции выводов:


  • VCC (вывод 1) — напряжение питания
  • GND (вывод 14) — общий провод
  • PA0-PA7 (выводы 13-6) — порт A, многофункциональные GPIO
  • PB0-PB3 (выводы 2-5) — порт B, многофункциональные GPIO
  • RESET (вывод 4) — вход сброса

Большинство выводов имеет несколько альтернативных функций, что позволяет гибко использовать ограниченное количество выводов. Например:

  • ADC0-ADC7 — входы 10-битного АЦП
  • MOSI, MISO, SCK — интерфейс SPI
  • SDA, SCL — интерфейс I2C
  • OC0A, OC0B, OC1A, OC1B — выходы ШИМ
  • INT0 — вход внешнего прерывания

Архитектура и возможности ATtiny84

ATtiny84 построен на основе усовершенствованной RISC-архитектуры AVR, которая обеспечивает:

  • Выполнение большинства инструкций за один тактовый цикл
  • 32 8-битных регистра общего назначения
  • До 20 MIPS производительности при тактовой частоте 20 МГц
  • Аппаратное умножение за 2 такта

Основные периферийные модули ATtiny84:

  • 10-битный АЦП на 8 каналов со скоростью до 15 тыс. выборок/с
  • Аналоговый компаратор
  • Два таймера/счетчика (8 и 16-битный) с режимами захвата и сравнения
  • 4 канала ШИМ
  • Универсальный последовательный интерфейс USI для реализации SPI и I2C
  • Сторожевой таймер с отдельным генератором
  • Встроенный температурный датчик

ATtiny84 поддерживает несколько режимов пониженного энергопотребления и имеет встроенную систему управления питанием, что позволяет создавать энергоэффективные устройства с батарейным питанием.


Программирование ATtiny84

Для программирования ATtiny84 можно использовать различные среды разработки и инструменты:

  • Atmel Studio — официальная бесплатная IDE от Microchip
  • Arduino IDE — с установленной поддержкой ATtiny
  • AVR-GCC — компилятор C/C++ с командной строкой
  • PlatformIO — кросс-платформенная среда разработки

Для загрузки программы в микроконтроллер потребуется программатор, например:

  • Atmel-ICE — официальный программатор/отладчик от Microchip
  • USBasp — недорогой USB-программатор
  • Arduino в режиме программатора ISP

Программирование ATtiny84 выполняется через интерфейс SPI. Основные шаги:

  1. Подключение программатора к выводам MOSI, MISO, SCK и RESET
  2. Компиляция программы и получение hex-файла прошивки
  3. Настройка фьюзов (конфигурационных битов)
  4. Запись прошивки во флэш-память микроконтроллера

Применение ATtiny84

Благодаря компактным размерам, низкому энергопотреблению и хорошему набору периферии, ATtiny84 находит применение во многих встраиваемых системах:


  • Бытовая электроника и умный дом
  • Промышленные датчики и системы сбора данных
  • Портативные устройства с батарейным питанием
  • Системы управления освещением
  • Электронные игрушки и гаджеты
  • Автомобильная электроника
  • Медицинские приборы

ATtiny84 хорошо подходит для задач, не требующих большого объема памяти и высокой вычислительной мощности, но нуждающихся в компактном и экономичном решении.

Альтернативы ATtiny84

Существуют несколько микроконтроллеров со схожими характеристиками, которые могут рассматриваться как альтернативы ATtiny84:

  • ATtiny85 — 8 выводов, больше памяти программ (8 КБ)
  • ATtiny44 — уменьшенная версия ATtiny84 (4 КБ флэш-памяти)
  • ATmega328P — больше памяти и периферии, совместимость с Arduino
  • STM8S003 — 8-битный микроконтроллер от STMicroelectronics
  • PIC16F1825 — 8-битный PIC-микроконтроллер от Microchip

При выборе альтернативы следует учитывать требования к памяти, периферии, энергопотреблению и стоимости для конкретного проекта.

Особенности программирования ATtiny84

При разработке программ для ATtiny84 следует учитывать некоторые особенности:


  • Ограниченный объем памяти требует оптимизации кода
  • Отсутствие аппаратного UART усложняет отладку
  • Для экономии энергии рекомендуется использовать режимы сна
  • Необходимо правильно настраивать фьюзы для выбора источника тактирования
  • Прерывания позволяют эффективно обрабатывать события

Для упрощения разработки можно использовать готовые библиотеки, например:

  • ATTinyCore — ядро для Arduino IDE
  • TinyWireM — реализация I2C
  • SoftwareSerial — программный UART

Отладка программ для ATtiny84

Отладка программ для ATtiny84 может быть затруднена из-за отсутствия аппаратного UART и ограниченных ресурсов. Некоторые подходы к отладке:

  • Использование светодиодов для индикации состояний
  • Программный UART для вывода отладочной информации
  • Отладка на симуляторе (например, в Proteus)
  • Использование программатора Atmel-ICE с поддержкой отладки
  • Временный вывод данных через SPI или I2C

Для более удобной отладки можно использовать отладочные платы с установленным ATtiny84 и дополнительными компонентами.


Энергосбережение в проектах с ATtiny84

ATtiny84 предоставляет несколько возможностей для снижения энергопотребления:

  • Режимы сна: Idle, ADC Noise Reduction, Power-down, Standby
  • Отключение неиспользуемых модулей
  • Использование прерываний вместо активного ожидания
  • Снижение тактовой частоты
  • Оптимизация кода для уменьшения числа инструкций

Правильное использование этих возможностей позволяет создавать устройства с длительным временем автономной работы от батарей.

Заключение

ATtiny84 представляет собой компактный и энергоэффективный 8-битный микроконтроллер, который хорошо подходит для широкого спектра встраиваемых приложений. Несмотря на ограниченные ресурсы, он обладает достаточной производительностью и функциональностью для решения многих задач управления и обработки данных.

Основные преимущества ATtiny84:

  • Низкое энергопотребление и режимы сна
  • Компактный корпус с 12 доступными выводами GPIO
  • Встроенный АЦП и аналоговый компаратор
  • Поддержка интерфейсов SPI и I2C
  • Доступность инструментов разработки
  • Невысокая стоимость

При этом следует учитывать ограничения по объему памяти и набору периферии. Для более сложных проектов может потребоваться использование микроконтроллеров с большими ресурсами.


ATtiny84 остается популярным выбором для разработчиков, позволяя создавать компактные и экономичные устройства для различных приложений.


ATTINY84-20SSU, MCU, 8BIT, ATTINY, 20MHZ, SOIC-14

Максимальное Напряжение Питания 5.5В
Минимальное Напряжение Питания 2.7В
Количество Выводов 14вывод(-ов)
Количество I/O 12I/O
Скорость ЦПУ 20мгц
Стиль Корпуса Микроконтроллера SOIC
Размер Памяти 8КБ
Тип Встроенного Интерфейса i2c, spi
Размер Памяти RAM 512Байт
Линейка Продукции AVR ATtiny Family ATtiny84 Series Microcontrollers
Семейство Микроконтроллера avr attiny
Серия Микроконтроллера ATTINY84
Maximum Operating Temperature +85 °C
ADC Resolution 10бит
PWM Channels 4
Pulse Width Modulation 1(4 Channel)
Number of ADC Units 1
Instruction Set Architecture RISC
ADCs 1(8 x 10 bit)
Package Type
SOIC
Mounting Type Поверхностный монтаж
Data Bus Width 8бит
Width 3.99мм
Number of PWM Units 1
Высота 1.5мм
Dimensions 8.74 x 3.99 x 1.5mm
Timer Resolution 8 bit, 16 bit
Program Memory Type Флэш-память
Program Memory Size 8 kB
Length 8.74мм
Device Core AVR
Brand Microchip
ADC Channels 8
Minimum Operating Temperature -40 °C
Family Name AVR
USB Channels 0
RAM Size 512 B
Pin Count 14
Number of Timers 2
Maximum Frequency 20МГц
Typical Operating Supply Voltage 2,7 5,5 В.
Вид монтажа SMD/SMT
Высота 1.5 mm
Длина 8.74 mm
Категория продукта 8-битные микроконтроллеры
Количество входов/выходов 12 I/O
Количество каналов АЦП 8
Количество таймеров/счетчиков 2 Timer
Коммерческое обозначение AVR
Максимальная рабочая температура + 85 C
Максимальная тактовая частота 20 MHz
Минимальная рабочая температура 40 C
Напряжение питания — макс. 5.5 V
Напряжение питания — мин. 2.7 V
Подкатегория Microcontrollers — MCU
Продукт MCU
Рабочее напряжение питания 2.7 V to 5.5 V
Размер ОЗУ данных 512 B
Размер ПЗУ данных 512 B
Размер программной памяти 8 kB
Размер фабричной упаковки 57
Разрешение АЦП 10 bit
Серия ATtiny84
Серия процессора tinyAVR
Тип интерфейса SPI, USI
Тип ОЗУ данных SRAM
Тип памяти программ Flash
Тип ПЗУ данных EEPROM
Тип продукта 8-bit Microcontrollers — MCU
Торговая марка Microchip Technology / Atmel
Упаковка Tube
Упаковка / блок SOIC-14
Ширина 3. 99 mm
Ширина шины данных 8 bit
Ядро AVR
Base Product Number ATTINY84 ->
Connectivity USI
Core Processor AVR
Core Size 8-Bit
Data Converters A/D 8x10b
ECCN EAR99
EEPROM Size 512 x 8
HTSUS 8542.31.0001
Moisture Sensitivity Level (MSL) 2 (1 Year)
Mounting Type Surface Mount
Number of I/O 12
Operating Temperature -40В°C ~ 85В°C (TA)
Oscillator Type Internal
Package Tube
Package / Case 14-SOIC (0.154″», 3.90mm Width)
Peripherals Brown-out Detect/Reset, POR, PWM, Temp Sensor, WDT
Program Memory Size 8KB (4K x 16)
Program Memory Type FLASH
RAM Size 512 x 8
REACH Status REACH Unaffected
RoHS Status ROHS3 Compliant
Series AVRВ® ATtiny ->
Speed 20MHz
Supplier Device Package 14-SOIC
Video File Introducing Atmel Studio 7Atmel: picoPower Labs —
Voltage — Supply (Vcc/Vdd) 2.7V ~ 5.5V
Вес, г 0.399

ATTINY84A-SSF, 8 Bit MCU, AVR ATtiny Family ATtiny84 Series Microcontrollers, 20 МГц, 8 КБ, 512 Байт

Максимальное Напряжение Питания 5.
Минимальное Напряжение Питания 1.8В
Количество Выводов 14вывод(-ов)
Количество I/O 12I/O
Скорость ЦПУ 20мгц
Стиль Корпуса Микроконтроллера SOIC
Размер Памяти 8КБ
Тип Встроенного Интерфейса i2c, spi
Размер Памяти RAM 512Байт
Линейка Продукции AVR ATtiny Family ATtiny84 Series Microcontrollers
Семейство Микроконтроллера avr attiny
Серия Микроконтроллера ATTINY84
Максимальная рабочая температура +125 °C
Разрешение АЦП 10бит
Каналы ШИМ 4
Широтно-импульсная модуляция 1(4 Channel)
Количество устройств АЦП 1
Структура системы команд RISC
АЦП 1(8 x 10 бит)
Тип корпуса SOIC
Тип монтажа Surface Mount
Ширина шины данных 8бит
Ширина 3.99мм
Количество устройств ШИМ 1
Высота 1.5мм
Размеры 8.74 x 3.99 x 1.5мм
Дискретность таймера 8 bit, 16 bit
Тип памяти программ Флэш-память
Емкость памяти программ 8 кБ
Длина 8.74мм
Сердечник устройства AVR
Производитель Microchip Technology
Каналы АЦП 8
Минимальная рабочая температура -40 °C
Наименование семейства AVR
USB каналы 0
Емкость RAM 512 Б
Число контактов 14
Количество таймеров 2
Максимальная частота 20МГц
Типичное рабочее напряжение питания 1,8 → 5,5 В
Вид монтажа SMD/SMT
Высота 1. 75 mm
Длина 8.74 mm
Категория продукта 8-битные микроконтроллеры
Коммерческое обозначение AVR
Максимальная рабочая температура + 125 C
Максимальная тактовая частота 20 MHz
Минимальная рабочая температура 40 C
Напряжение питания — макс. 5.5 V
Напряжение питания — мин. 1.8 V
Подкатегория Microcontrollers — MCU
Продукт MCU
Рабочее напряжение питания 1.8 V to 5.5 V
Размер ОЗУ данных 512 B
Размер программной памяти 8 kB
Размер фабричной упаковки 57
Разрешение АЦП 10 bit
Серия ATtiny84
Серия процессора tinyAVR
Тип интерфейса SPI, USI
Тип ОЗУ данных SRAM
Тип памяти программ Flash
Тип ПЗУ данных EEPROM
Тип продукта 8-bit Microcontrollers — MCU
Торговая марка Microchip Technology / Atmel
Упаковка Tube
Упаковка / блок SOIC-14
Ширина 3.99 mm
Ширина шины данных 8 bit
Ядро AVR
Base Product Number ATTINY84A ->
Connectivity USI
Core Processor AVR
Core Size 8-Bit
Data Converters A/D 8x10b
ECCN EAR99
EEPROM Size 512 x 8
HTSUS 8542. 31.0001
Moisture Sensitivity Level (MSL) 2 (1 Year)
Mounting Type Surface Mount
Number of I/O 12
Operating Temperature -40В°C ~ 125В°C (TA)
Oscillator Type Internal
Other Related Documents http://www.microchip.com/mymicrochip/filehandler.a
Package Tube
Package / Case 14-SOIC (0.154″», 3.90mm Width)
Peripherals Brown-out Detect/Reset, POR, PWM, Temp Sensor, WDT
Program Memory Size 8KB (4K x 16)
Program Memory Type FLASH
RAM Size 512 x 8
REACH Status REACH Unaffected
RoHS Status ROHS3 Compliant
Series AVRВ® ATtiny ->
Speed 20MHz
Supplier Device Package 14-SOIC
Video File Introducing Atmel Studio 7Microchip Ethernet of Ev
Voltage — Supply (Vcc/Vdd) 1.8V ~ 5.5V
Вес, г 0.1

ATtiny84A-PU

Микроконтроллер ATtiny84 принадлежит семейству микроконтроллеров AVR фирмы Atmel. ATtiny84 имеет 8кб Flash памяти и по 512кб SRAM и EEPROM памяти. ATtiny84 может работать на частоте до 20МГц с внешним кварцевым резонатором и до 8МГц с внутренним генератором.

ATtiny84 выпускают в корпусах DIP-14, SOIC-14 и QFN-20

Синим цветом на рисунке показаны номера выводов соответствующие Arduino.

Микроконтроллер ATtiny84 имеет

  • 0..10 11 программируемых линий ввода-вывода (DIP-14)
  • RST RESET
  • 0. ..7 8 несимметричных каналов 10-разрядных АЦП
  • 5…8 4 выхода с широтно-импульсной модуляцией (PWM)
  • Два 8 и 16-разрядных таймера-счетчика

Условные обозначения и описание ножек микроконтроллеров AVR ATtiny и ATmega

Практически все ножки микроконтроллеров, кроме питания могут быть запрограммированы на выполнение одной из нескольких функций. В распиновке микроконтроллеров для каждой ножки перечисляют аббревиатуры всего списка возможных для ножки функций.

Далее мы приводим описание аббревиатур, которые Вы можете встретить в datasheet микроконтроллеров.

PAn n-й разряд порта A
PBn n-й разряд порта B
PDn n-й разряд порта D
(IR) (Выходной контакт с повышенной нагрузочной способностью)
ADCn n-й вход АЦП
AREF Вход опорного напряжения для АЦП
AVCC Вывод источника питания АЦП
AIN0 Положительный вход компаратора
AIN1 Отрицательный вход компаратора
INTn  Вход внешнего n-го прерывания
PCINTn Вход внешнего n-го прерывания по изменению состояния вывода
XTAL1 Вход тактового генератора
XTAL2 Выход тактового генератора
CKOUT Выход системного тактового сигнала
CLKO Выход системного тактового сигнала
MOSI Вход данных при программировании
MISO Выход данных при программировании
SCK Вход тактового сигнала при программировании
DI Вход данных модуля USI в режиме SPI
DO Выход данных модуля USI в режиме SPI
USCK Вход/выход тактового сигнала модуля USI в режиме SPI
SDA Вход/выход данных модуля USI в режиме TWI
SCL Вход/выход тактового сигнала модуля USI в режиме TWI
RXD Вход USART
TXD Выход USART
XCK Вход/выход внешнего тактового сигнала USART
RESET Сброс
Tn Вход внешнего тактового сигнала таймера/счетчика Tn
OCnX Выход X таймера/счетчика Tn
ICP Вход захвата таймера/счетчика
dW Вывод отладочного интерфейса debugWire
GND Общий провод
VCC Питание микросхемы

Arduino Uno для программирования ATTINY84 (Arduino V.

1.8.5): 6 шагов

Использование Arduino Uno для программирования ATTINY84-20PU (элемент Digikey # ATTINY84-20-PU-ND).
В этом руководстве показано, как использовать платформу Arduino для работы с физически меньшими процессорами, такими как ATtiny84 (84/44/24). Этот пример специально для процессора ATtiny84-20PU, но его можно адаптировать для других плат, выбрав соответствующую плату из программного обеспечения Arduino (то есть, Arduino IDE) и изменив распиновку по мере необходимости.

(Обновлено для Arduino 1.8.5)

Расходные материалы:

Шаг 1: добавление поддержки ATtiny Core в Arduino IDE Software

Для Arduino 1.8.5:

  1. открыто Программное обеспечение Arduino (aka Arduino Integrated Development Environment IDE).
  2. открыто Настройки: ФАЙЛ -> ПРЕДПОЧТЕНИЯ
  3. Вставить URL в URL-адреса менеджера дополнительных плат: http://drazzy.com/package_drazzy.com_index.json

Шаг 2: Запрограммируйте Arduino для использования в качестве системного программиста (ISP)

  1. Выбрать Доска Arduino: ИНСТРУМЕНТЫ -> ДОСКА -> ARDUINO / GENUINO UNO. Примечание: хотя у меня есть Arduino UNO Я заменил процессор на предварительно запрограммированный Atmega328P, для которого необходимо выбрать «Arduino Duemilanove или Diecimila».
  2. Выбрать Программист: ИНСТРУМЕНТЫ -> ПРОГРАММЕР -> AVR ISP.
  3. открыто Эскиз ArduinoISP: ФАЙЛ -> ПРИМЕРЫ -> 11.ArduinoISP -> ArduinoISP
  4. Загрузить эскиз.

Шаг 3: Подключите ATtiny84 для программирования

Подключите контакты Arduino к контактам ATtiny84:

  • Arduino 5V для ATtiny84, контакт 1
  • Пин Arduino 10 для ATtiny84 Пин 4
  • Контакт Arduino с 11 по ATTiny84 Контакт 7
  • Контакт Arduino 12 для ATtiny84 Контакт 8
  • Пин Arduino 13 для ATtiny84 Пин 9
  • Arduino GND для ATtiny84 Pin 14
  • Arduino RESET к конденсатору 10 мкФ (+ сторона / длинная нога)
  • Конденсатор заземления до 10 мкФ (- сторона / короткая ножка)

Шаг 4: Установите Arduino для программирования ATtiny84

  1. Выбрать Доска Arduino: ИНСТРУМЕНТЫ -> ДОСКА
    -> ATtiny24 / 44/84. Теперь в следующий раз в меню «Инструменты» появятся дополнительные опции доски.
  2. Выбрать B.O.D. отключено: ИНСТРУМЕНТЫ -> Б.О.Д. -> Б.О.Д. Инвалид
  3. Выбрать LTO отключено: TOOLS -> только LTO 1.6.11+ -> Disabled
  4. Выбрать Отображение контактов против часовой стрелки: ИНСТРУМЕНТЫ -> Назначение контактов -> Против часовой стрелки
  5. Выбрать Чип Attiny84: ИНСТРУМЕНТЫ -> Чип -> Attiny84
  6. Выбрать Тактовая частота 8 МГц: ИНСТРУМЕНТЫ -> Часы -> Внутренняя частота 8 МГц
  7. жечь загрузчик: TOOLS -> Burn Bootloader

Шаг 5: Запрограммируйте ATtiny84

  1. открыто Эскиз моргания: ФАЙЛ -> ПРИМЕРЫ -> 01.Basics -> Мигание
  2. редактировать эскиз:
    1. Перед установкой void () определите имя контакта (светодиод) и местоположение (контакт 0): int led = 0;
    2. место » LED_BUILTIN » с » светодиод ”В void stetup () и в void loop ()
  3. Загрузить эскиз.
  4. Выключение а также Отключить из Ардуино.

Шаг 6: Подключите ATtiny84 для автономной работы

  • ATtiny контакт 1 до 5 В источник (на самом деле еще не включайте питание)
  • ATtiny Pin 2 для LED (длинная нога)
  • ATtiny контакт 14 на землю
  • Светодиод (короткая ножка) к резистору (конец 1) от 100 до 1 кОм
  • Резистор (конец 2) на землю
  • Включите питание ATtiny84

Amazon.com: ATMEL ATTINY84-20PU 8-BIT 20MHz MCU (2 Pack): Компьютеры и аксессуары


Марка Атмель
Скорость процессора 20 МГц
Количество процессоров 1

  • Убедитесь, что это подходит введя номер вашей модели.
  • 8-битная шина данных
  • Максимальная тактовая частота 20 МГц
  • Размер программной памяти 8 КБ
  • Рабочее напряжение питания от 2,7 В до 5,5 В
  • 14 контактов — 12 используемых контактов ввода / вывода
Распиновка 8-битного микроконтроллера AVR

ATtiny84, характеристики, спецификации и техническое описание

ATtiny84 отличается высокой производительностью и оснащен технологией Microchip picoPower в 8-битном микроконтроллере на основе архитектуры AVR RISC, который имеет 14 контактов, из которых 12 контактов могут использоваться в качестве контактов ввода / вывода.

Конфигурация контактов ATtiny84

Номер контакта

Имя контакта

Описание

1

VCC

Положительный вывод MCU (+ 5V)

2

(PCINT8 / XTAL1 / CLKI) PB0

Вывод порта B Бит 0 или вывод генератора или источник прерывания изменения вывода 8 или вход синхронизации от внешнего источника

3

(PCINT9 / XTAL2) PB1

Вывод порта B Бит 1 или вывод генератора или источник прерывания изменения вывода 9

4

(PCINT11 / RESET / dW) PB3

Вывод порта B Бит 3 или вывод сброса в основном используется для программирования или включения отладки или источника прерывания при смене вывода 11.

5

(PCINT10 / INT0 / OC0A / CKOUT) PB2

Двунаправленный вывод ввода / вывода порта B, бит 2 или внешнее прерывание 0, или системный тактовый выход, или источник прерывания смены вывода, или таймер / счетчик0, сравнение, совпадение A, выход

6

(PCINT7 / ICP / OC0B / ADC7) PA7

Двунаправленный вывод ввода / вывода порта A Бит 7 или входной канал 7 АЦП или TImer / Counter1 Capture или Timer / Counter1 Compare Match B Out or Pin change Interrupt 0, source 7

7

(PCINT6 / OC1A / SDA / MOSI / DI / ADC6) PA6

Двунаправленный вывод ввода / вывода порта A, бит 6 или входной канал 6 АЦП, или ввод данных USI, или SPI MOSI, используемый для программирования ICSP или таймера / счетчика 1, выхода сравнения A или изменения вывода, прерывания 0, источник 6

8

PA5 (ADC5 / DO / MISO / OC1B / PCINT5)

Двунаправленный вывод ввода / вывода порта A, бит 5 или входной канал 5 АЦП, или выход USI DATA, или SPI MISO, используемый для программирования ICSP или таймера / счетчика 1, выхода сравнения B или прерывания изменения контакта 0, источник 5

9

PA4 (ADC4 / USCK / SCL / T1 / PCINT4)

Двунаправленный вывод ввода / вывода порта A, бит 4 или входной канал 4 АЦП, или тактовый сигнал USI (трехпроводный), используемый для программирования ICSP или I2C SCL, или таймер / счетчик1, источник тактового сигнала или прерывание изменения вывода 0, источник 3

10

PA3 (ADC3 / T0 / PCINT3)

Двунаправленный вывод ввода / вывода порта A Бит 3 или входной канал 3 АЦП или TImer / Counter0 Источник синхросигнала или изменение вывода Прерывание 0, источник 3

11

PA2 (ADC2 / AIN1 / PCINT2)

Двунаправленный вывод ввода / вывода порта A, бит 2 или вход АЦП, канал 2 или вход аналогового компаратора — или прерывание изменения вывода 0, источник 2

12

PA1 (ADC1 / AIN0 / PCINT1)

Двунаправленный вывод ввода-вывода порта A, бит 1 или входной канал 1 АЦП, или аналоговый вход компаратора + или прерывание изменения вывода 0, источник 1

13

PA0 (ADC0 / AREF / PCINT0)

Двунаправленная I / O Pin из порта Немного 0 или АЦП входного канала 0 или внешнего аналогового опорного напряжения или Pin изменения прерывания 0, источник 0

14

ЗЕМЛЯ

Контакт заземления MCU

Характеристики и спецификации микроконтроллера ATtiny84

ATtiny84 — Упрощенные функции и спецификации

ЦП

8-битный AVR

Количество контактов

14

Рабочее напряжение (В)

1. 8-5,5 В

Количество контактов ввода / вывода

12

Модуль АЦП

10 бит (8 каналов)

Модуль таймера

8 бит (1), 16 бит (1)

Компараторы

1

Модуль ЦАП

Нет

Периферийные устройства связи

1-SPI, 1-I2C

Внешний осциллятор

Есть

Внутренний осциллятор

8 МГц

Программная память (КБ)

8 КБ

Скорость процессора (MIPS)

20 MIPS

байтов ОЗУ

0.5 кБ

Данные EEPROM

512 байт

Примечание : Полную техническую информацию можно найти в таблице данных ATtiny84, , ссылка на которую находится внизу этой страницы.

Альтернативный продукт ATtiny84

Альтернативные продукты для микроконтроллера ATtiny84 перечислены ниже —

  1. ATtiny2313A (точная альтернатива с новой версией)
  2. ATtiny417
  3. ATtiny28L
  4. ATtiny48
  5. ATmega88PA
  6. ATmega8A
  7. ATmega8515
  8. ATmega8535
  9. ATmega645A
  10. ATmega6490

Введение в ATtiny84

ATtiny84 отличается высокой производительностью и оснащен технологией Microchip picoPower в 8-битном микроконтроллере на основе архитектуры AVR RISC, который имеет 14 контактов, из которых 12 контактов могут использоваться в качестве контактов ввода / вывода.

Он имеет мощную архитектуру инструкций, которая обеспечивает скорость обработки 1 MIPS на МГц, балансируя энергопотребление и одновременно обрабатывая высокоскоростную производительность. Скорость может достигать 20 MIPS при использовании максимальной частоты 20 МГц.

ATtiny84 также поставляется с функцией отладки на кристалле debugWIRE , внутрисистемным программируемым портом SPI, режимами ожидания с низким энергопотреблением, отключением питания и режимами ожидания. Он также использует программируемую схему обнаружения обесточивания и встроенный датчик температуры.

Имеет широкий диапазон рабочего напряжения от 1,8 В до 5,5 В. Таким образом, он может использоваться в операциях на логическом уровне 1,8 В, 3,3 или 5,0 В. Однако работа в диапазоне 0–4 МГц поддерживается входным напряжением 1,8 В для ATtiny84V. Для частоты до 10 МГц минимальное напряжение требуется 2,7 В для ATtiny84, а для операций 20 МГц требуется минимальное напряжение 4,5–5,5 В. На изображении ниже показана подробная схема контактов ATtiny84.

Подробные характеристики ATtiny84

ATtiny84 — подробные характеристики

ЦП

8-битный AVR RISC

Архитектура

8

Размер памяти программ (Кбайт)

8

RAM (байты)

512

EEPROM / HEF

512

Количество выводов

14

Макс.Частота процессора (МГц)

20

Выбор периферийных контактов (PPS)

Внутренний осциллятор

8 МГц

№ компараторов

1

№Операционного усилителя

0

Кол-во каналов АЦП

8

Максимальное разрешение АЦП (бит)

10 бит — 15 квыб / с

АЦП с вычислением

0

Количество преобразователей ЦАП

0

Максимальное разрешение ЦАП

Внутреннее опорное напряжение

Обнаружение нулевого пересечения

№8-битных таймеров

1

Количество 16-битных таймеров

1

Таймер измерения сигнала

0

Аппаратный таймер ограничения

0

№Выходов ШИМ

4

Максимальное разрешение ШИМ

1024

Угловой таймер

0

Математический ускоритель

№Модуля UART

0

№ модуля SPI

1

№ модуля I2C

1

№ USB-модуля

0

Оконный сторожевой таймер (WWDT)

CRC / сканирование

Генератор с числовым программным управлением

Кап. Сенсорные каналы

6

Сегментный ЖК-дисплей

0

Минимальная рабочая температура (* C)

-40

Максимальная рабочая температура (* C)

85

Минимальное рабочее напряжение (В)

1.8 / (от 2,7 до 10 МГц) / (от 4,5 до 20 МГц)

Максимальное рабочее напряжение (В)

5,5

Возможность высокого напряжения

Программирование микроконтроллера AVR Микроконтроллеры AVR

могут быть запрограммированы с помощью множества различных программ, доступных на рынке.Есть люди, которые до сих пор используют язык ассемблера для программирования микроконтроллеров AVR. Приведенные ниже сведения относятся к наиболее продвинутому и распространенному программному обеспечению и компилятору, которые были разработаны самой Atmel (теперь Microchip).

Для программирования микроконтроллера AVR нам понадобится IDE (интегрированная среда разработки), в которой происходит программирование. Компилятор, в котором наша программа преобразуется в читаемую форму MCU, называемую HEX-файлами.

IDE: Atmel Studio 7

Компилятор: AVR и ARM Toolchains

Microchip предоставила все эти два программного обеспечения бесплатно.Их можно скачать прямо с их официальной страницы. Я также предоставил ссылку для вашего удобства. После загрузки установите их на свой компьютер. Если у вас возникнут проблемы, вы можете опубликовать их в комментарии ниже.

Чтобы выгрузить или загрузить наш код в AVR, нам понадобится устройство под названием ATAtmel-ICE. Программатор / отладчик ATAATmel — ICE — это простой внутрисхемный отладчик, который управляется ПК с программным обеспечением Atmel Studio на платформе Windows. Программатор / отладчик ATAAtmel-ICE является неотъемлемой частью набора инструментов разработчика. Базовая схема программирования для ATtiny84 показана ниже.

Помимо этого официального программатора, пользователи также используют USB ASP AVR Programming Device для недорогих программных решений. В дополнение к этому нам также понадобится другое оборудование, такое как плата Perf или макет, паяльная станция, микросхемы AVR, кварцевые генераторы, конденсаторы и т. Д.

Компоненты, связанные с AVR

USB ASP AVR Programmer, плата для разработки AVR, кварцевые генераторы, конденсаторы, адаптер 12 В, регулятор напряжения 7805

2D Модель

Размеры ATtiny84 показаны ниже —

Начало работы с Atmel Микроконтроллер ATtiny84

Atmel имеет линейку микроконтроллеров под названием tinyAVR, которые представляют собой небольшие микроконтроллеры, которые могут выполнять большую часть работы, которую выполняет Arduino, в гораздо более компактной форме.Взгляните на страницу википедии, на которой сравниваются возможности tinyAVR.

Как и многие люди, я познакомился с микроконтроллерами через платформу Arduino. Простота настройки, простой синтаксис языка и доступность огромного количества библиотек делают Arduino очень привлекательным выбором для прототипирования ваших аппаратных проектов. Но после того, как вы освоите свой проект, иногда стоит спросить, действительно ли вам нужна мощность и эргономика прототипа Arduino, особенно если все, что вы делаете, — это считывание показаний нескольких датчиков и включение нескольких светодиодов.

В этом посте я настрою программировать Atmel ATtiny84, чип, который я буду использовать в большинстве своих проектов ATtiny. Я выбрал этот 14-контактный чип, а не очень популярный 8-контактный ATtiny85, потому что первый имеет еще несколько контактов ввода-вывода, которые могут пригодиться для многих проектов. Вот сравнение контактов этих двух микросхем.

[Из таблиц Atmel для наглядности.]

Я буду программировать ATtiny85 на C, используя бесплатные инструменты AVR-GCC и AVRDUDE.Пользователи Windows, пожалуйста, прочтите руководство Adafruit, чтобы настроить инструменты AVR. Пользователи Mac (например, я) могут использовать бесплатный пакет CrossPack для программирования AVR.

Далее вам нужен программист. Я рекомендую программатор Sparkfun Pocket AVR, которым пользуюсь.

Настройка действительно проста — просто подключите выводы VCC, MISO, MOSI, SCK, RESET и GND от микросхемы к тем же выводам на программаторе. Уродливая маленькая печатная плата, которую вы видите ниже, — это моя самодельная версия адаптера программирования Sparkfun AVR — не обязательная, она просто позволяет легко подключить 6-контактный штекер к макетной плате.

Обратите внимание, что вам не нужно подключать вывод VCC к программатору, если вы запитываете схему самостоятельно. На программаторе есть небольшой переключатель на тот случай, если вы решите пойти по этому пути.

Вот мои настройки программирования:

После того, как вы запрограммируете микросхему, вам не понадобится программатор, и здесь вы можете увидеть, как микросхема работает напрямую от батареи 3 В:

Вот исходный код — очень просто:


Вот Makefile:


Чтобы загрузить программу на свой чип, подключите программатор к USB-порту вашего компьютера и запустите make install в оболочке в соответствующем каталоге проекта.Если все пойдет хорошо, вы увидите счастливое мигание светодиода.

Итак, теперь вы знаете, как программировать ATtiny84. Но чтобы по-настоящему понять этот чип, вы должны прочитать таблицу данных Atmel (просто выполните поиск по запросу «ATtiny84 datasheet» в сети) — обойти это невозможно. Это сложно и может показаться непонятным вначале, но все же сохраняется, и в конце, уверяю вас, это принесет гораздо больше пользы, чем слепое использование библиотек, написанных кем-то другим.

Удачи вам в том, что вы начали с tinyAVR, и наблюдайте за электроникой.в будущих проектах, в которых используются эти чипы.

1: {{site.baseurl}} / images / 2013/05 / IMG_1478.jpg 4: {{site.baseurl}} / images / 2013/05 / 84-85-compare.png

Generic ATtiny84 — PlatformIO 5.2.0a4 документация

Платформа

Atmel AVR: 8-битные микроконтроллеры Atmel AVR обеспечивают уникальное сочетание производительности, энергоэффективности и гибкости конструкции. Оптимизированные для ускорения вывода на рынок — и легкой адаптации к новым — они основаны на самой эффективной в отрасли архитектуре программирования на языке C и ассемблере

.
Микроконтроллер ATTINY84
Частота 8 МГц
Вспышка 8 КБ
RAM 512B
Поставщик Атмель

Используйте attiny84 ID для опции платы в «platformio.ini »(файл конфигурации проекта):

 [env: attiny84]
платформа = atmelavr
доска = attiny84
 

Вы можете переопределить стандартные настройки ATtiny84 по умолчанию для каждой среды сборки, используя board _ *** option, где *** — путь к объекту JSON из манифест платы attiny84.json. Например, board_build.mcu , board_build.f_cpu и т. Д.

 [env: attiny84]
платформа = atmelavr
доска = attiny84

; изменить микроконтроллер
board_build.mcu = attiny84

; изменить частоту MCU
board_build.f_cpu = 8000000L
 

Debugging — решение «в один клик» для отладки с нулевой конфигурацией.

Предупреждение

В зависимости от вашей системы вам потребуется установить драйверы средства отладки. Пожалуйста, нажмите на совместимый инструмент отладки ниже, чтобы продолжить инструкции и информация о конфигурации.

Вы можете переключаться между инструментами отладки и зондами отладки, используя параметр debug_tool в «platformio.ini» (файл конфигурации проекта).

Generic ATtiny84 имеет встроенный датчик отладки, а ГОТОВ для отладки.Вам не нужно использовать / покупать внешний датчик отладки.

Совместимые инструменты на борту По умолчанию
симавр Есть Есть
Имя Описание
Ардуино Arduino Wiring-based Framework позволяет писать кроссплатформенное программное обеспечение для управления устройствами, подключенными к широкому спектру плат Arduino, для создания всех видов творческого кодирования, интерактивных объектов, пространств или физических возможностей
Техническое описание

ATtiny84 — Доступны более новые устройства ATTINY84A.Высокопроизводительный,

Характеристики

В этом документе содержится информация, относящаяся к устройствам, работающим при напряжении от 1,8 до 3,6 В. В этом приложении рассматриваются только отклонения от стандартных рабочих характеристик. Всю остальную информацию можно найти в полном автомобильном техническом описании. Полный технический паспорт Atmel ATtiny24 / ATtiny44 / ATtiny84 можно найти на http://www.atmel.com.

Напряжения, превышающие указанные в разделе «Максимальные абсолютные значения», могут привести к необратимому повреждению устройства.Это только номинальное напряжение, и функциональная работа устройства в этих или любых других условиях, помимо тех, которые указаны в рабочих разделах данной спецификации, не подразумевается. Воздействие условий абсолютного максимума номинальных значений в течение продолжительного времени может повлиять на надежность устройства.

Параметры Рабочая температура Температура хранения Напряжение на любом контакте, кроме RESET по отношению к земле Максимальное рабочее напряжение Постоянный ток на один вывод I / O Постоянный ток Выводы VCC и GND

Высокое входное напряжение, кроме контактов XTAL1 и RESET

Входное высокое напряжение, контакт RESET Низкое выходное напряжение (3), контакт I / O, кроме RESET Выходное высокое напряжение (4), контакт I / O, кроме RESET

Примечания: 1.«Макс» означает максимальное значение, при котором вывод гарантированно будет считан низким
2. «Мин» означает наименьшее значение, при котором на выводе гарантированно будет считываться высокий

3. Хотя каждый порт ввода / вывода может потреблять больше, чем указано в условиях тестирования (2 мА при VCC = 1,8 В) в условиях устойчивого состояния (непереходные) необходимо соблюдать следующее: (1) Сумма всех ИОЛ для всех портов не должна превышать 50 мА. Если ИОЛ превышает тестовое условие, объем может превысить соответствующую спецификацию. Не гарантируется, что контакты потребляют ток, превышающий указанные в списке условия тестирования.

4. Хотя каждый порт ввода / вывода может быть источником большего, чем указано в условиях тестирования (0,5 мА при VCC = 1,8 В) в условиях устойчивого состояния

(без переходных процессов) необходимо соблюдать следующее: (1) Сумма всех ИОЛ для портов до B5 не должна превышать 50 мА. Если ИОЛ превышает тестовое условие, объем может превысить соответствующую спецификацию. Не гарантируется, что контакты потребляют ток, превышающий указанные в списке условия тестирования.

Максимальная частота зависит от VCC. Как показано на Рисунке 1-1, максимальная частота vs.Кривая VCC линейна в диапазоне 1,8 В

1. VBOT может быть ниже номинального минимального рабочего напряжения для некоторых устройств. Для устройств, где это так, устройство тестируется до VCC = VBOT во время производственного теста. Это гарантирует, что сброс при пониженном напряжении произойдет до того, как VCC упадет до напряжения, при котором правильная работа микроконтроллера больше не гарантируется.

lukemiller.org »Архив блога» Проект светодиодного дисплея и обогревателя ATtiny84

Вот небольшой проект, в котором используется микроконтроллер ATtiny84, запрограммированный с помощью программного обеспечения Arduino, для создания нагревателя с термостатическим управлением.Он позволяет пользователю выбирать заданное значение температуры, а затем отображает текущую температуру с помощью 4-значного 7-сегментного светодиодного дисплея Adafruit через I2C. Видео на YouTube ниже демонстрирует часть проекта, в которой процессор ATtiny84 используется для управления дисплеем Adafruit.

Чтобы запустить проект, я установил файлы ядра ATtiny, доступные от High-Low Tech. Приведенные там инструкции помогли запустить ATtiny84 на макетной плате. Я использую программатор AVRISP mkII для загрузки программ в ATtiny84.Одна незначительная деталь, которая сначала задерживала меня, заключается в том, что вы должны удерживать нажатой клавишу Shift при нажатии кнопки загрузки Arduino, если вы хотите загрузить с помощью внешнего программатора, такого как AVRISP mkII (в отличие от загрузки через USB COM-порт. как при обычном использовании Arduinos).

Вторая задача заключалась в том, чтобы заставить ATtiny взаимодействовать с 7-сегментным светодиодным рюкзаком Adafruit. Adafruit предоставляет библиотеку для взаимодействия их светодиодного рюкзака I2C с обычными Arduinos на базе ATMEGA, такими как Uno. К сожалению, это не работает с микросхемами ATtiny, поскольку для связи им нужна другая библиотека I2C.Я использовал библиотеку TinyWireM, которую можно найти как минимум в двух вариантах. Первоначальную версию можно найти на игровой площадке Arduino.cc, но хотя эта версия поддерживает ATtiny85 (всего 8 контактов), ей не хватает поддержки ATtiny84 (14 контактов). Scenelight.nl предоставляет слегка измененную библиотеку TinyWireM, которая добавляет поддержку для семейства микросхем ATtiny24 / 44/84.

С возможностью передачи по протоколу I2C третьей задачей было упростить печать значений на светодиодном рюкзаке Adafruit.Для этого я использовал библиотеку Adafruit_LEDBackpack в качестве отправной точки для создания упрощенной библиотеки для чипов ATtiny. Я удалил все графические возможности библиотеки Adafruit, поскольку они не нужны для 7-сегментного дисплея. Он также ссылается на библиотеку TinyWireM вместо исходной библиотеки Wire. Мою модифицированную библиотеку Tiny_LEDBackpack можно найти на этой странице GitHub, и она включает пример скетча под названием SevenSegTest_tiny.ino. Это должно работать с ATtiny84 и ATtiny85 при условии, что вы правильно подключите линии SDA и SCL к процессору.

После загрузки библиотеки TinyWireM и библиотек Tiny_LEDBackpack их можно установить в каталог arduino-1.0.1 / libraries вместе со всеми другими встроенными библиотеками Arduino. Перезапустите программное обеспечение Arduino, и они должны быть доступны. Образец скетча SevenSegTest_tiny.ino должен быть найден в меню «Файл»> «Примеры»> «Tiny_LEDBackpack».

На изображении ниже показано, как подключить 7-сегментный дисплей Adafruit и ATtiny84 на макетной плате. Я также добавил обычный светодиод, подключенный к контакту 2 ATtiny, чтобы указать, когда работает скетч, даже если 7-сегментный дисплей неисправен.Также рекомендуется иметь пару резисторов на 4700 Ом (или 10 кОм), подключенных между линиями SDA и SCL, и + 5 В, чтобы действовать как подтягивающие.

Базовая макетная схема для взаимодействия ATtiny84 со светодиодным дисплеем Adafruit через I2C. Здесь не показаны: источник питания 5 В для макета; проводка внутрисистемного программатора для загрузки скетчей в ATtiny84.

В настоящее время существует проблема со стандартным дистрибутивом Arduino 1.0.1, когда компиляция эскизов размером более 4 КБ для процессора ATtiny генерирует ошибку «PCREL».Это, вероятно, будет включать пример скетча SevenSegTest_tiny.ino, предоставленный в библиотеке Tiny_LEDBackpack, которая компилируется на моем компьютере с размером 4084 байта. Том Карпентер предлагает исправление здесь:

http://arduino.cc/forum/index.php/topic,116674.msg878023.html#msg878023

С работающим дисплеем остальная часть проекта была простой. Моей целью было использовать термочувствительную ИС TMP36 для измерения температуры алюминиевой пластины. Этот датчик считывается с помощью аналого-цифрового преобразователя ATtiny84.Алюминиевая пластина имеет 15-ваттную грелку 120 В переменного тока, установленную на нижней стороне. Электрогрелка управляется оптически изолированным твердотельным реле, которое может управляться непосредственно с цифрового выходного контакта ATtiny. Твердотельное реле включает и выключает электрогрелку по мере необходимости и использует библиотеку Arduino PID для регулирования температуры, близкой к заданному значению. Температура отображается на дисплее Adafruit. Кнопка позволяет пользователю выбрать заданное значение температуры.

Частично собранная печатная плата, на которой установлен ATtiny84.Он принимает данные о температуре от датчика TMP36 и управляет твердотельным реле, которое запускает грелку. Регулятор напряжения LM7805 5V обеспечивает питание ATtiny.

Нижняя сторона печатной платы, демонстрирующая ATtiny84 для поверхностного монтажа.

Схема нагревателя в сборе и алюминиевая пластина с подогревом.

Полный код нагревателя находится в этом репозитории GitHub. Базовая схема макета показана ниже.

Макетная плата моего обогревателя.Блок питания 5V не показан. Выход твердотельного реле справа подключен к источнику питания 120 В переменного тока для грелки. Светодиод, подключенный к контакту 2 ATtiny84, используется в качестве индикатора, показывающего, когда грелка получает питание.

Светодиодный куб

4x4x4 с ATtiny84 и 74138 — Йозеф Адамчик

Я сделал светодиодный куб. Глупая штука, которая много мигает и управляется программируемым микроконтроллером. Но почему? И как?

Как я сюда попал?

Должен признать, что я новичок во всей этой самодельной электронике для развлечения.Хотя я изучал электронику и компьютерные системы в средней школе, я никогда не пробовал играть с компонентами дома. С тех пор я сосредоточился на программировании.

Но в начале этого года я прочитал книгу чешского блоггера / писателя Мартина Малого (к сожалению (для потенциального читателя, не говорящего по-чешски), книга на чешском языке). Я попробовал книгу, потому что мне нравятся сообщения в блогах и статьи, написанные Мартином. И пока я читал это, во мне начало расти сильное желание что-то попробовать, что-то построить.

Итак, я заказал много базовых компонентов и микросхем на Aliexpress (конечно!) И Amazon. Я начал играть и веселиться. Прошло несколько месяцев, а я все еще наслаждаюсь своим новым хобби, и я провожу время с электронными компонентами и Arduinos , ATtinys , ESP8266 и так далее. Маленькие желтые конверты из китая идут непрерывным потоком и радуют меня каждую неделю.

Светодиодный куб

Светодиодные кубики

— очень популярный проект для начинающих.Но сначала посчитал, что моргающий куб хромает и не стоит усилий. Но, знаете, время шло. Я начал паять, и у меня возникли проблемы, поэтому я подумал: «Надо попрактиковаться». И, конечно же, светодиодный куб — очевидный кандидат, если вы хотите попрактиковаться в пайке. Итак, вот оно. На самом деле это мой первый действительно законченный проект — в нем есть корпус!

Готовый светодиодный куб

Это куб 4x4x4, довольно маленький, потому что у моих светодиодов были довольно короткие ножки. Я не собираюсь объяснять основные принципы проектирования и построения этих кубов, в Интернете доступно множество учебных пособий и руководств (например, это или это).Я собираюсь сосредоточиться на менее обычных свойствах моего подхода.

Самое главное — уметь зажигать один светодиод в кубе. Когда мы быстро переключаем выбранный диод, мы можем создать постоянный эффект зрения и, следовательно, узор или анимацию.

Уловка состоит в том, чтобы соединить вместе все диоды в столбце (в моем случае их катоды) и все диоды уровня (их аноды) вместе. Когда вы хотите выбрать (= включить) диод в определенном столбце, вы подключите столбец к земле (другие столбцы — HIGH ), а уровень диодов — HIGH (и, конечно, должен быть токоограничивающим резистором где-нибудь).

Это дает нам 16 столбцов и 4 уровня. Это 20 сигналов, но ATtiny84 имеет только 12 доступных контрольных PIN-кодов. Например, плата Arduino UNO имеет ровно 20 контактов, поэтому вы можете использовать ее без другой интегральной схемы.

Как сделан мой светодиодный куб

На самом деле мне не хотелось покупать какие-либо специализированные компоненты для этого проекта, поэтому я заставил себя использовать микросхемы, которые были у меня дома. Я также не хотел тратить целую плату Arduino на глупое мигающее устройство, поэтому решил использовать дешевый и маленький ATtiny84.

Есть и другие решения этой проблемы, и я решил использовать пару декодеров / демультиплексоров от 3 до 8 строк (74138). Эта интегральная схема позволяет вам выбрать один из 8 выходов с 3 проводами, вы в основном отправляете двоичное значение 0-7, чтобы выбрать один выход. Вот рабочий стол для 74138. Основная причина моего решения была проста: они были у меня дома.

выберите выход
C B A Y 0 Y 1 Y 2 Y 3 Y 4 Y 5 Y 9107 9112 91
л л л L H H H H H H H
л л л H H H H H H H H
л л л H H L H H H H H
L H H H H H L H H H H
H L L H H H H L H H H
H L H H H H H H L H H
H H L H H H H H H L H
H H H H H H H H H H L
Функциональная таблица для 74138.L означает «LOW», H «HIGH»

Есть еще 3 входа, не включенные в таблицу, которые позволяют выбрать (или включить) IC. Они позволяют легко соединять такие ИС. В моем светодиодном кубе 16 столбцов, поэтому мне понадобились две части 74138, а это означает одну дополнительную строку для выбора микросхемы. Таким образом, для выбора столбца требуется 4 контакта, а значит, 8 контактов для всего куба. Аккуратный. 74138 использует сигнал LOW для выбранного выхода. Это означает, что все сигналы обычно имеют ВЫСОКИЙ и только выбранный — НИЗКИЙ .Вот почему мне пришлось создать колонны с общим катодом, а не с общим анодом (в большинстве онлайн-уроков для колонок будет использоваться общий анод).

Хотя всегда включен только один диод и, таким образом, ток, протекающий через ATtiny84 , ограничен, я все же решил использовать транзисторы для уровней мощности. В этом не было необходимости, но я чувствовал, что сделаю это просто для развлечения. Вы можете найти детали на схеме.

Схема Схема

также доступна на EasyEDA.

Финальная сборка

У куба есть три режима: змейка, циклические уровни и случайный.Кнопка переключает режимы, а потенциометр контролирует скорость.

Вот галерея и еще видео на YouTube.

Исходный код

Код использует платформу Arduino. Но я перешел с Arduino IDE на VisualStudioCode с PlatformIO. Исходный код уродлив, но работает. Я закончил светодиодный куб около 2 месяцев назад, и качество кода в новых проектах будет лучше. Я переоцениваю C ++, потому что не использовал его со времени учебы.

Он доступен на Github.

Спецификация

шт Название + лист данных
1 ATtiny84
2 74xx138
64 5мм светодиодный диод
провода
перфокарт
1 кнопка
1 потенциометр (10 кОм)
4 Транзистор NPN
16 резистор 680 Ом
4 резистор 5к1 Ом
1 керамический конденсатор 0.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *