Что такое 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. Основные шаги:
- Подключение программатора к выводам MOSI, MISO, SCK и RESET
- Компиляция программы и получение hex-файла прошивки
- Настройка фьюзов (конфигурационных битов)
- Запись прошивки во флэш-память микроконтроллера
Применение 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 остается популярным выбором для разработчиков, позволяя создавать компактные и экономичные устройства для различных приложений.
Максимальное Напряжение Питания | 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 |
Максимальное Напряжение Питания | 5. 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:
- открыто Программное обеспечение Arduino (aka Arduino Integrated Development Environment IDE).
- открыто Настройки: ФАЙЛ -> ПРЕДПОЧТЕНИЯ
- Вставить URL в URL-адреса менеджера дополнительных плат: http://drazzy.com/package_drazzy.com_index.json
Шаг 2: Запрограммируйте Arduino для использования в качестве системного программиста (ISP)
- Выбрать Доска Arduino: ИНСТРУМЕНТЫ -> ДОСКА -> ARDUINO / GENUINO UNO. Примечание: хотя у меня есть Arduino UNO Я заменил процессор на предварительно запрограммированный Atmega328P, для которого необходимо выбрать «Arduino Duemilanove или Diecimila».
- Выбрать Программист: ИНСТРУМЕНТЫ -> ПРОГРАММЕР -> AVR ISP.
- открыто Эскиз ArduinoISP: ФАЙЛ -> ПРИМЕРЫ -> 11.ArduinoISP -> ArduinoISP
- Загрузить эскиз.
Шаг 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
- Выбрать Доска Arduino: ИНСТРУМЕНТЫ -> ДОСКА
-> ATtiny24 / 44/84. Теперь в следующий раз в меню «Инструменты» появятся дополнительные опции доски. - Выбрать B.O.D. отключено: ИНСТРУМЕНТЫ -> Б.О.Д. -> Б.О.Д. Инвалид
- Выбрать LTO отключено: TOOLS -> только LTO 1.6.11+ -> Disabled
- Выбрать Отображение контактов против часовой стрелки: ИНСТРУМЕНТЫ -> Назначение контактов -> Против часовой стрелки
- Выбрать Чип Attiny84: ИНСТРУМЕНТЫ -> Чип -> Attiny84
- Выбрать Тактовая частота 8 МГц: ИНСТРУМЕНТЫ -> Часы -> Внутренняя частота 8 МГц
- жечь загрузчик: TOOLS -> Burn Bootloader
Шаг 5: Запрограммируйте ATtiny84
- открыто Эскиз моргания: ФАЙЛ -> ПРИМЕРЫ -> 01.Basics -> Мигание
- редактировать эскиз:
- Перед установкой void () определите имя контакта (светодиод) и местоположение (контакт 0): int led = 0;
- место » LED_BUILTIN » с » светодиод ”В void stetup () и в void loop ()
- Загрузить эскиз.
- Выключение а также Отключить из Ардуино.
Шаг 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 используемых контактов ввода / вывода
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 — Упрощенные функции и спецификации | |
ЦП | 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 перечислены ниже —
- ATtiny2313A (точная альтернатива с новой версией)
- ATtiny417
- ATtiny28L
- ATtiny48
- ATmega88PA
- ATmega8A
- ATmega8515
- ATmega8535
- ATmega645A
- ATmega6490
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.
Подробные характеристики ATtiny84ATtiny84 — подробные характеристики | |
ЦП | 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. Приведенные ниже сведения относятся к наиболее продвинутому и распространенному программному обеспечению и компилятору, которые были разработаны самой 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, кварцевые генераторы, конденсаторы и т. Д.
Компоненты, связанные с AVRUSB 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 упадет до напряжения, при котором правильная работа микроконтроллера больше не гарантируется. Вот небольшой проект, в котором используется микроконтроллер 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, используется в качестве индикатора, показывающего, когда грелка получает питание. Я сделал светодиодный куб. Глупая штука, которая много мигает и управляется программируемым микроконтроллером. Но почему? И как? Должен признать, что я новичок во всей этой самодельной электронике для развлечения.Хотя я изучал электронику и компьютерные системы в средней школе, я никогда не пробовал играть с компонентами дома. С тех пор я сосредоточился на программировании. Но в начале этого года я прочитал книгу чешского блоггера / писателя Мартина Малого (к сожалению (для потенциального читателя, не говорящего по-чешски), книга на чешском языке). Я попробовал книгу, потому что мне нравятся сообщения в блогах и статьи, написанные Мартином. И пока я читал это, во мне начало расти сильное желание что-то попробовать, что-то построить. Итак, я заказал много базовых компонентов и микросхем на Aliexpress (конечно!) И Amazon. Я начал играть и веселиться. Прошло несколько месяцев, а я все еще наслаждаюсь своим новым хобби, и я провожу время с электронными компонентами и Arduinos , ATtinys , ESP8266 и так далее. Маленькие желтые конверты из китая идут непрерывным потоком и радуют меня каждую неделю. — очень популярный проект для начинающих.Но сначала посчитал, что моргающий куб хромает и не стоит усилий. Но, знаете, время шло. Я начал паять, и у меня возникли проблемы, поэтому я подумал: «Надо попрактиковаться». И, конечно же, светодиодный куб — очевидный кандидат, если вы хотите попрактиковаться в пайке. Итак, вот оно. На самом деле это мой первый действительно законченный проект — в нем есть корпус! Это куб 4x4x4, довольно маленький, потому что у моих светодиодов были довольно короткие ножки.
Я не собираюсь объяснять основные принципы проектирования и построения этих кубов, в Интернете доступно множество учебных пособий и руководств (например, это или это).Я собираюсь сосредоточиться на менее обычных свойствах моего подхода. Самое главное — уметь зажигать один светодиод в кубе. Когда мы быстро переключаем выбранный диод, мы можем создать постоянный эффект зрения и, следовательно, узор или анимацию. Уловка состоит в том, чтобы соединить вместе все диоды в столбце (в моем случае их катоды) и все диоды уровня (их аноды) вместе. Когда вы хотите выбрать (= включить) диод в определенном столбце, вы подключите столбец к земле (другие столбцы — Это дает нам 16 столбцов и 4 уровня. Это 20 сигналов, но ATtiny84 имеет только 12 доступных контрольных PIN-кодов. Например, плата Arduino UNO имеет ровно 20 контактов, поэтому вы можете использовать ее без другой интегральной схемы. На самом деле мне не хотелось покупать какие-либо специализированные компоненты для этого проекта, поэтому я заставил себя использовать микросхемы, которые были у меня дома. Я также не хотел тратить целую плату Arduino на глупое мигающее устройство, поэтому решил использовать дешевый и маленький ATtiny84. Есть и другие решения этой проблемы, и я решил использовать пару декодеров / демультиплексоров от 3 до 8 строк (74138). Эта интегральная схема позволяет вам выбрать один из 8 выходов с 3 проводами, вы в основном отправляете двоичное значение 0-7, чтобы выбрать один выход. Вот рабочий стол для 74138. Основная причина моего решения была проста: они были у меня дома. Есть еще 3 входа, не включенные в таблицу, которые позволяют выбрать (или включить) IC. Они позволяют легко соединять такие ИС. В моем светодиодном кубе 16 столбцов, поэтому мне понадобились две части 74138, а это означает одну дополнительную строку для выбора микросхемы. Таким образом, для выбора столбца требуется 4 контакта, а значит, 8 контактов для всего куба. Аккуратный. 74138 использует сигнал Хотя всегда включен только один диод и, таким образом, ток, протекающий через ATtiny84 , ограничен, я все же решил использовать транзисторы для уровней мощности. В этом не было необходимости, но я чувствовал, что сделаю это просто для развлечения. Вы можете найти детали на схеме. также доступна на EasyEDA. У куба есть три режима: змейка, циклические уровни и случайный.Кнопка переключает режимы, а потенциометр контролирует скорость. Вот галерея и еще видео на YouTube. Код использует платформу Arduino. Но я перешел с Arduino IDE на VisualStudioCode с PlatformIO. Исходный код уродлив, но работает. Я закончил светодиодный куб около 2 месяцев назад, и качество кода в новых проектах будет лучше. Я переоцениваю C ++, потому что не использовал его со времени учебы. Он доступен на Github. lukemiller.org »Архив блога» Проект светодиодного дисплея и обогревателя ATtiny84
4x4x4 с ATtiny84 и 74138 — Йозеф Адамчик
Как я сюда попал?
Светодиодный куб
Светодиодные кубики HIGH
), а уровень диодов — HIGH
(и, конечно, должен быть токоограничивающим резистором где-нибудь). Как сделан мой светодиодный куб
Функциональная таблица для 74138.L означает «LOW», H «HIGH» выберите выход 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 LOW
для выбранного выхода. Это означает, что все сигналы обычно имеют ВЫСОКИЙ
и только выбранный — НИЗКИЙ
.Вот почему мне пришлось создать колонны с общим катодом, а не с общим анодом (в большинстве онлайн-уроков для колонок будет использоваться общий анод). Финальная сборка
Исходный код
Спецификация