Автоматическое освещение atmega328 (pir)

AQUAkmv

Сообщество аквариумистов

Контроллер для аквариума с LED на ARDUINO

Это продолжение предыдущего проекта ССЫЛКА .

На данном этапе в контроллере реализовано:
1. 5 канальный ШИМ для светодиодного света.
2. Раздельная регулировка яркости каналов.
3. Функция рассвета/заката с регулировкой длительности.
4. Функция луны с регулировкой красного и голубого канала.
5. Дневная пауза для освещения.
6. Датчик температуры для аквариума с каналом для подключения вентиляторов.
7. Датчик температуры для радиатора света с каналом для подключения вентиляторов.
8. Канал для подключения автокормушки.
9. Канал для подключения CO2.
10. 4 канала для подключения нагрузки с индивидуальными суточными расписаниями.
11. Энергонезависимая память для настроек и часов.
12. Автоматическая подсветка дисплея.
13. Управление одним энкодером, графический дисплей 16х2.

Маленькая анимация работы меню контроллера.

Управление старался делать интуитивно понятным. Переходы по меню выполняются нажатием на энкодер. Выбор параметра – поворотом энкодера. Изменение параметра поворотом нажатого энкодера.

Коротко о режимах подсветки LCD дисплея:
OFF подсветка включается только если пользоваться энкодером, отключается черз 15 сек бездействия.
ON подсветка всегда горит
AUTO подсветка горит только если пользоваться энкодером или если горит хотябы один канал освещения, отключается черз 15 сек бездействия.

Проект открытый, исходники в теме у нас на форуме.
Большая просьба при повторении проекта указывать первоисточник www.aquakmv.com. Ну и делиться своими доработками в этой теме. Буду очень благодарен!

Вот так собранная схема выглядит у меня. В корпусе от DVD привода. С деталями напечатанными на 3д принтере.

Начнем с необходимых комплектующих:

Для монтажа потребуются провода, разъемы, макетные платы для сборки драйверов, принадлежности для пайки:

1. Отличный монтажный провод
Ссылка на али: Купить
3. Хороший припой
Ссылка на али: Купить
4. Макетные платы
Ссылка на али: Купить
5. Флюс безотмывочный RMA 223
Ссылка на али: Купить
7. Паяльник с регулировкой температуры
Ссылка на али: Купить

Перед сборкой нужно настроить понижающий преобразователь на 5В

Схемы проекта и прошивки:

Старая схема:

В этой версии нет
-автокормушки
-датчика для радиатора света
-дневной паузы
-настройки цвета луны
Архив с прошивками лежит ТУТ
Обновлен 12 апреля 2020г.

Под дисплей с i2c модулем 4T и 4AT.

Новая схема:

Архив с прошивками лежит ТУТ Обновлен 26 декабря 2020г.

Под дисплей с i2c модулем 4T и 4AT.

Ниже схема-пример подключения контроллера через драйвера MEANWELL серии LDD. Количество светодиодов на канал выбирается в зависимости от напряжения выдаваемого вашим БП.

При подключении драйверов к плате PCA9685 , обязательно нужно соединить GND светильника с любым из контактов GND платы PCA9685.

Схема на PT4115

Подробнее о сборке светильника на PT4115 -> ССЫЛКА

Силовая плата может быть как на основе реле:

Обычных

При использовании таких реле и индуктивной нагрузки (двигатели, помпы, фильтры) во избежании помех на контроллер следует поставить RC фильтр:

R=100 Oм, C=0.1мкФ*630V
или твердотельных

Так и на основе симисторов:

Файл платы для Sprint в формате lay6 СКАЧАТЬ

Прошивка:

Прошиваем один HEX с помощью простейшей программы XLoader:

Работать с ней предельно просто:
— подключаем Arduino в USB-порт (отдельного питания не нужно)
— выбираем Hex файл
— выбираем тип Вашего Arduino
— выбираем COM порт, который создался при подключении Arduino к USB (скорость порта автоматически подставится при выборе типа Arduino)
— жмем Upload

Архив с программой Xloader.zip

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

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

Если есть вопросы, то их можно обсудить в соответствующей теме. Там же вы можете найти исходники проекта!

Контроллер для аквариума с LED на ARDUINO : 9 комментариев

Добрый день! давно хотел что-то подобное собрать, но я в этом полный ноль! по вашей схеме думаю получится! только подскажите как соединить Драйвер PT4115 700ma в место LDD700, ? Спасибо большое!

Добавил схему в пост!

Подскажите, в архиве с прошивками для новой схемы 4 файла, каким прошивать?

Зависит от вашей версии дисплея 4T или 4АТ, если не знаете проверьте обе. На одной дисплей будет показывать – это ваша.
Еще два варианта зависят от версии реле – для обычных модулей NEGATIVE, для твердотельных обычная.

Доброго времени суток. Возможно ли на один из четырёх каналов, вывести включение нагревателя от датчика температуры воды? Нагрелась кулер включился, остыла нагреватель.
Спасибо.

На форуме в теме есть такая прошивка

Здравствуйте! Можно ли у Вас заказать прошивку для 6-ти канального лед светильника? Вся схема собрана по подобию вашего проекта (только свет). “Печенька” с меня

Автоматическое освещение комнаты на базе контроллера Аrduino

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

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

Планирование

В качестве датчика движения выбор пал на пироэлектрический инфракрасный сенсор HC-SR50, в первую очередь из-за большого угла обнаружения, порядка 120 градусов. Более подробно останавливаться на нем не будем, единственное о чем следует сказать так это то, что перемычка на сенсоре установлена в положение H. В этом режиме при каждом срабатывании сенсора на выходе остается логическая единица. По количеству сенсоров всё зависит от самой комнаты, в моём случае двух вполне достаточно.

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

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

Для управления в ручном режиме соберём маленькую плату с двумя тактовыми кнопками для удобства монтажа.

Перемычка JD-Vсс — Vсс убирается, если на катушку реле будет подаваться отдельное питание, как я понял делается это для гальванической развязки. Для переключения реле необходимо входы IN1 или IN2 притягивать к земле.

Подготовка к монтажу

По питанию в моем распоряжение было только напряжение 220 переменного и 12 постоянного тока. Поэтому для питания самого контроллера, реле и сенсоров используется простая схема понижения напряжения до пяти вольт.

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

Читайте также  Вч приставка к осциллографу

Платы произведены всеми любимой технологией ЛУТ .

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

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

// Проект автоматики освещения.
// Настройка пинов.
#define Sensor_1 10 // Пин первого сенсора НС-SR501.
#define Sensor_2 11 // Пин второго сенсора НС-SR501.
#define D0 3 // Пин датчика освещенности.
int Relay[2] = <8, 9>; // Пины реле.
int Button[2] = <5, 6>; // Пины кнопок.
// Переменные.
boolean Start_Sensor = false; // Переменная отражающая факт срабатывания датчика.
boolean relayEnabled[2] = ; // Состояние реле.
boolean buttonWasUp[2] = ; // Состояние кнопок.
unsigned long previousMillis = 0; /* Переменнтая для хранения
предыдущего времени срабатывания датчика. */
unsigned long activateTime; // Переменная для хранения времени срабатывания реле.
int value = 0; // Временная переменная для таймера.
// Константы.
const int T_hold = 10000; // Время удержания реле при отсутствии движения.
const int T_motion = 200; // Время от начала фиксирования движения до срабатывания реле.

void setup()
<
// Настройка пинов и их начальное состояние.
pinMode(D0, INPUT); // Датчик освещенности — вход.
for (int i = 0; i T_motion)
<
previousMillis = millis();
value++;
>
>
else
<
Start_Sensor = false; // Возвращение в исходное состояние факта срабатывания.
value = 0;
>
if(value >= 10)
<
Start_Sensor = true; // Факт срабатывания датчика.
value = 0;
>
>

Монтаж

Датчики спрятаны в небольшую пластиковую коробку.

Все кабели, за исключением ответвлений к сенсорам, спрятаны в пластиковые короба.

Вид смонтированного центрального щита.

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

Во время работы автоматики не было замечено каких-либо отказов, замечаний.

До свидания, ATmega328! Здравствуй, ATmega328PB!

Atmel ATmega328PB

В микроконтроллере (МК) нам всегда не хватает встроенной периферии. Будь то аппаратные каналы ШИМ, АЦП или последовательные интерфейсы обмена данными – в конечном итоге нам всегда хочется иметь хотя бы еще один из них, хотя на самом деле многие из них нам не нужны. Видимо, услышав наши мольбы, на смену популярному 8-разрядному МК ATmega328 [1] Atmel выпустила ATmega328PB [2].

К настоящему времени официального пресс-релиза по ATmega328PB Atmel так и не выпустила, как и не получил массового распространения по дистрибьюторским сетям сам микроконтроллер. В начале 2015 года сообщалось о выходе приборов семейства megaAVR серии «PB» (ATmega168PB, ATmega88PB, ATmega48PB) и возможном релизе ATmega328PB, но если по первым уже имеются какие-то наработки и пользователи применяют их в своих устройствах и делятся впечатлениями, то ATmega328PB до сих пор остается загадкой.

Прежде всего, необходимо подчеркнуть, что ATmega328PB не является полной заменой ATmega328/ATmega328P, а представляет собой новое устройство, однако по выполняемым функциям он обратно совместим с существующим ATmega328. Ранее разработанный для этих устройств программный код будет корректно работать и на новых приборах без изменения существующей конфигурации или включения новых функций, в то время как обратная совместимость кода не гарантируется. Несмотря на то, что серия выпускается только в 32-выводных корпусах TQFP/QFN/MLF, по расположению выводов с ATmega328 она не совместима, о чем более подробно будет сказано ниже.

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

Общие сведения

В высокопроизводительном 8-разрядном AVR RISC микроконтроллере ATmega328PB реализована технология управления питанием picoPower. Он имеет 32 КБ Flash-памяти с поддержкой чтения во время записи, 1 КБ EEPROM и 2 КБ ОЗУ. Пользователю доступны 27 линий ввода/вывода общего назначения, 32 регистра общего назначения, пять таймеров/счетчиков с расширенным функционалом и гибкими настройками, внутренние и внешние прерывания, 8-канальный 10-разрядный АЦП, программируемый сторожевой таймер с отдельным генератором, последовательные интерфейсы USART, TWI и SPI. МК сохраняет полную работоспособность в широком диапазоне напряжений питания от 1.8 В до 5.5 В. Оценить функциональный состав МК можно по блок-схеме на Рисунке 1.

Рисунок 1. Блок-схема микроконтроллера ATmega328PB.

Для поддержки разработчиков компания предлагает оценочный набор ATMEGA328PB-XMINI (серия Xplained Mini), который может использоваться не только для знакомства с возможностями микроконтроллера, но также для разработки и отладки собственных приложений. Выполненная в Arduino-совместимом форм-факторе оценочная плата упростит интеграцию ATmega328PB в пользовательские устройства.

Дополнительные порты ввода/вывода

В ATmega328PB добавлен дополнительный 4-битный порт ввода/вывода PORTE [3:0] (Таблица 1). Две линии ввода/вывода PE2 (вывод 19) и PE3 (вывод 22) мультиплексированы с входами АЦП ADC6 и ADC7. Выводы 3 (GND в ATmega328) и 6 (VCC в ATmega328) заменены на линии ввода/вывода PE0 и PE1, соответственно, при этом PE0 выполняет альтернативную функцию выходного канала аналогового компаратора ACO.

ATmega328PB стал первым 8-разрядным МК семейства AVR с интегрированным контроллером сенсорного интерфейса QTouch (Peripheral Touch Controller, PTC), обрабатывающим сигналы емкостных сенсоров для определения касания. Как правило, внешние емкостные сенсоры формируются на печатной плате, а их электроды подключаются непосредственно к аналоговому интерфейсу PTC посредством мультиплексирования линий ввода/вывода в микроконтроллере. PTC поддерживает режимы работы как с определением собственной емкости сенсоров, так взаимной.

Первый режим обеспечивает возможность подключения к МК 24 сенсорных кнопок, второй – 144 кнопок. Отлично зарекомендовавшая себя технология QTouch и гибкость настроек контроллера позволяют использовать одновременно оба типа сенсоров, при этом для одного электрода требуется один вывод микроконтроллера. Аппаратная фильтрация, автоматическая калибровка и рекалибровка сенсоров, встроенные схемы компенсации паразитной емкости и регулировка чувствительности повышают надежность сенсорного интерфейса и исключают необходимость использования каких-либо внешних компонентов (Рисунок 2).

Рисунок 2. Блок-схема контроллера QTouch в режиме определения
собственной емкости сенсоров.

Разработка и отладка сенсорного интерфейса для приложений на МК ATmega328PB поддерживается программной средой QTouch Composer с библиотекой QTouch Library, в которой можно создавать различные комбинации сенсорных кнопок, слайдеров, колес и датчиков приближения.

Механизм обнаружения сбоев синхронизации

Clock Failure Detection mechanism (CFD) – еще одно нововведение в ATmega328PB. Это схема цифровой логики с собственным генератором 128 кГц, предназначенная для отслеживания сбоев синхронизации (только для кварцевого резонатора и внешнего источника тактовой частоты) и автоматического переключения на встроенную схему RC-генератора 1 МГц.

Включение механизма контроля синхронизации выполняется автоматически на стадии программирования Fuse-битов выбора источника тактовой частоты (CKSEL) и активизируется только при тактовой частоте выше 256 кГц. При переходе микроконтроллера в режим пониженного энергопотребления схема контроля тактовой частоты отключается, и включается автоматически при пробуждении МК.

Два дополнительных таймера/счетчика

В ATmega328PB интегрированы два дополнительных 16-разрядных таймера/счетчика с отдельными предделителями, блоками сравнения и входами захвата. Таким образом, теперь ATmega328PB имеет два 8-разрядных и три 16-разрядных таймера/счетчика с расширенным набором функций. С добавлением этих таймеров число доступных каналов аппаратной ШИМ выросло до 10 (на ATmega328 их всего 6).

OCM1C2 – модулятор выходов таймеров

Встроенный модулятор Output Compare Modulator (OCM) позволяет генерировать модулированные сигналы. Он использует выходы блоков сравнения (Output Compare Unit B) двух появившихся в ATmega328PB новых 16-разрядных таймеров/счетчиков Timer/Counter3 и Timer/Counter4, о которых было сказано выше. Когда работа модулятора разрешена, два выхода каналов сравнения образуют модулятор, где один канал служит источником несущей частоты, а другой – модулирующей, как это показано на Рисунке 3.

Читайте также  Освещение своими руками
Рисунок 3. Блок-схема модулятора выходов таймеров.

Выходы блоков сравнения Output Compare 3B и Output Compare 4B совместно используют один вывод порта PD2. Имея более высокий приоритет, выходы блоков сравнения (OC3B и OC4B) переопределяют конфигурацию вывода PD2, заданную битом PORTD2. Когда OC3B и OC4B разрешены одновременно, автоматически разрешается работа модулятора.

Дополнительные последовательные интерфейсы обмена данными

Количество последовательных интерфейсов обмена данными увеличено в два раза. Теперь микроконтроллер имеет два USART, два SPI и два TWI, каждый с индивидуальными конфигурационными регистрами и отдельными сигнальными линиями.

Универсальный приемопередатчик содержит детектор начала блока данных, который имеет гибкие настройки и может использоваться для пробуждения МК при получении стартового бита. Детектор старт-бита имеет собственный тактовый генератор 8 МГц, поддерживает работу как в асинхронном, так и в синхронном режиме, и может быть сконфигурирован для генерации сигнала прерывания немедленно после определения старт-бита.

Аналоговый компаратор

Выход аналогового компаратора ACO подключен к отдельному выводу микроконтроллера, мультиплексируемому с портом PE0.

Уникальный серийный номер

Узнать уникальный серийный номер ATmega328PB можно посредством чтения определенных регистров ввода/вывода. Он формируется конкатенацией 9 байт, содержащихся в этих регистрах. Регистры доступны только для чтения.

Заключение

Увеличенное количество коммуникационных интерфейсов, 10 каналов ШИМ, контроль тактовой частоты и, самое главное, поддержка сенсорного интерфейса QTouch значительно расширяют область применения микроконтроллера ATmega328PB. Это могут быть промышленные системы контроля и управления, драйверы светодиодных светильников, приборы учета, средства домашней автоматизации. Дополнительная информация доступна в техническом описании.

Микроконтроллер ATmega328PB поддерживается основными программными, аппаратными и системными отладочными инструментами, включая Atmel Studio 6 и Atmel Power Debugger. Кроме того, множество примеров, программных библиотек и вспомогательных инструментов доступно пользователям в Atmel Gallery.

Ссылки

  1. AT15007: Differences between ATmega328/P and ATmega328PB
  2. AT08401:Getting Started with Atmel ATmega328PB

Материалы по теме

  1. Datasheet Atmel ATmega328
  2. Datasheet Atmel ATmega328PB

Перевод: Vadim по заказу РадиоЛоцман

Контроллер ввода/вывода для умного дома на основе ATmega328

Для подключения различных датчиков транзисторным, аналоговым или релейным выходом потребовался контроллер для того чтобы показания с этих датчиков завести на сервер умного дома. Для этой цели в принципе подойдет любой ПЛК -Программи́руемый логи́ческий контро́ллер (от англ. programmable logic controller, сокр. PLC; более точный перевод на русский — контроллер с программируемой логикой), но их не бывает с протоколом MQTT, возможно плохо искал, но в ценовом диапазоне 5 000 руб. я не нашел.

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

Для связи с внешним миром используется протокол MQTT, ethernet контроллер используется от фирмы WizNet на чипе W5500.

Пример кода для контроллера на моей странице гитхаб.

Контроллер имеет 16 опторавзязаных дискретных входов, полярность которых может задаваться, для каждого входа независимо, перемычкой на плате. Так же для этих входов можно использовать внешний источник питания для полной гальванической развязки. Выбор источника питания оптронов так же конфигурируется перемычками на плате (см. таблицу).

Схема контроллера

Имеется 4 аналоговых входа 0…10 вольт, два из которых могут быть использованы как входы для токовой петли 4…20 мА. Входы имеют защиту от перенапряжения с помощью супрессоров на 12 вольт.

Два цифровых входа/выхода, конфигурируется в коде. Есть возможность подключить внешние подтягивающие резисторы (10 кОм) полярность которых выбирается перемычками на плате для каждого порта отдельно. Данные порты могут использоваться, например для подключения цифровых датчиков температуры ds18b20, dht22.

Отдельно выведен UART (RX, TX), который может использоваться как порты ввода/вывода так и для программирования контроллера при загруженном бутлоадере в микроконтроллер.

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

    • Два релейных выхода с НЗ (нормально замкнутой) и НО (нормально открытой) группой контактов с нагрузкой до 10 ампер.
    • Два выхода со слаботочных твердотельных (полупроводниковых) реле CPC1018N или аналогичных.
  • Два MOSFET выхода на транзисторах IRL520, могут использоваться как ШИМ выход для подключения например небольшой светодиодной ленты. Транзисторы установлены без радиаторов охлаждения по-этому не следует злоупотреблять нагрузкой что бы не допустить перегрева и выхода их из строя.

В верхней части контроллера есть стабилизированный выход 12 вольт с максимальным током нагрузки 3 Ампера. Выход можно использовать для питания датчиков.

Распиновка контроллера

Таблица опций конфигурируемых перемычками.

Группа Описание Положение перемычки Значения опций
1 Выбор полярности дискретных входов

1-2 — Подтяжка входа к минусу (для активации входа необходимо подавать + )

2-3 — Подтяжка входа к плюсу (для активации входа необходимо подавать — )

2-3 — Внутренний источник питания 12 В

2-3 — Зависит от выбора источника для входов 1-8

2-3 — Реле с катушкой на 5 Вольт

2-3 — Подтяжка к земле

Подключение индуктивного датчика SN04 с транзисторным выходом NPN к контроллеру.

Перемычку выбора дискретного порта необходимо установить в положение 2-3 — Подтяжка входа к плюсу (для активации входа необходимо подавать минус (см. таблицу).

alex-day › Блог › Arduino без Arduino: работаем с микроконтроллерами напрямую

Если вспомнить историю создания Arduino ( www.drive2.ru/b/2520138/ ), то Arduino стало популярно благодаря трем вещам, составляющим ее основу: Среды программирования Arduino IDE ( на самом деле это среда языка Processing), Языка программирования Wiring (На самом деле такого языка не существует — то что мы видим это самый обычный С, дополненный большим числом библиотек) и Плат Arduino.
Я уже писал ранее, что без каждой из этих трех составляющих можно обойтись и приводил пример того, как можно обойтись без знания С — www.drive2.ru/b/2729013/. Как отказаться от Arduino IDE написано здесь — www.visualmicro.com/page/…what_is_visual_micro.html, а сегодня я хотел бы написать о том, как отказаться от «плат Arduino».
Итак, что же собой представляет плата, получившая такой коммерческий успех?

Как можно увидеть на плате находятся микроконтроллер AtMega 168 или 328, микросхема питания — DA1, контроллер виртуального com порта — DD1 и кварц 16 МГц — Q1. В общем то на первый взгляд ничего лишнего, но это только на первый: Используемая микросхема питания позволяет питать плату от напряжения от 5 до 12В или кратковременно до 30В, т.е. для авто с его 14,5В не пригодна и нужно делать свой источник питания. Контроллер СОМ порта используется в основном только для заливки программ и не является обязательным (в плате Arduino Pro Micro и ей подобных он отсутствует). Кварц, несомненно, позволяет точно работать с временем, но если погрешность в несколько милисикунд для вас не критична, то можно вспомнить о том, что микроконтроллеры фирмы Atmel, к которым относится и Atmega168/328, содержат внутренний кварц и могут отсчитывать такты сами себе.
Так что же эта плата лишняя? В общем то да. В большинстве случаев без нее действительно можно обойтись и сейчас мы поговорим как.

Поддержка средой программирования
Находим где у вас установлена Arduino и открываем папочку hardware
По умолчанию это здесь — C:Program FilesArduinohardwarearduinoavr
В эту папку мы будем распаковывать архивы с библиотеками, которые будем качать отсюда:
1) Для микроконтроллеров
ATmega8, ATmega8A,
ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PB
ATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PB
ATmega328, ATmega328P, ATmega328PB
ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB

качаем ATmega8 Series (8/48/88/168/328) отсюда — github.com/sleemanj/optib…ob/master/dists/README.md
См. отдельную статью О бедном AtMega замолвите слово
Данные библиотеки позволяют запустить МК на 3 частотах: 1MHz, 8MHz или 16MHz (Для работы требуется внешний кварц 16МГц).
Тут необходимо понимать, что внешний кварц увеличивает быстродействие и стабильность работы (1 миллисекунда выполнения программы всегда будет равняться 1 миллисекунде реального времени), но увеличивает, пусть и ненамного, стоимость конструкции и снижает надежность за счет большего числа деталей. Лично мое мнение, что для большинства конструкций, проектируемых для автомобиля, можно смело обойтись и встроенным кварцем. Для схем зажигания, тахометра можно использовать внешний кварц, подключенный по схеме ниже, но дешевле взять готовую платку типа Arduino Pro Micro.
Достаточно ценное замечание от alexfrance
Был печальный опыт при использовании внутреннего генератора МК тини2313. На морозе при -20 контроллеры зависали, глючили. Установка внешнего кварца помогла. Поскольку внутренний генератор представляет из себя RC цепь, то он очень термозависим

2) Микроконтроллеры Attiny13 (А)
Библиотеки и файлы для поддержки «Тинек» можно скачать по ссылочке выше, а можно взять версию от разработчика — sourceforge.net/projects/ard-core13/files/
Скачанный файл также кладем в папку hardware

3) Для микроконтроллеров
ATtiny84, ATtiny44, ATtiny24,
ATtiny85, ATtiny45, ATtiny25,
ATtiny2313, ATtiny4313

ссылка для скачивания -code.google.com/p/arduino-tiny/
После распаковки заходим в папку tiny и переименовываем файл C:Program FilesArduinohardwaretinyavrProspective Boards.txt в C:Program FilesArduinohardwaretinyavrBoards.txt

После всех скачиваний и распаковок получим папку hardware с таким содержимым

А запустив Arduino IDE увидим:

Подключение микроконтроллера
Прошить программы в МК можно 2 различными способами:
1) Классический вариант — прошивка при помощи программатора
Тут все просто: покупаем любой программатор из списка поддерживаемых

и вперед
Наиболее распространенным является USBasp, он производится активно китайцами, его несложно сделать и самому. В Украине могу порекомендовать производителя с таким наборчиком (увы, снят уже с производства, ребята делают только плату адаптора) — fix.org.ua/index.php/%D0%…%D1%80%D0%BE%D0%BC-detail

Прошивать им просто: проставил драйвера, вставил МК в нужный слот, выбрал программатор из списка (СОМ выбирать не нужно), указал микроконтроллер и его частоту и лей программу.
Вторым по популярности является USBtinyISP. В продаже я их не видел, а как его сделать самостоятельно подробно рассказано здесь — robocraft.ru/blog/2948.html
Профессиональные программаторы типа STK500 (Эх была у меня такая плата на предыдущей работе, классная вещь) явно не входят в рамки этой статьи. Поэтому идем дальше.

2) Прошивка при помощи заводской платы Arduino
Следует отметить, что далеко не все платы Arduino подходят для сего действия
Возьмите свою плату и проверьте перед тем как пытаться. Расположение выводов интерфейса SPI должно быть следующим:

Если совпадает, то все ок, если нет, то лучше найти другую плату
Итак, последовательность действий:
а) Готовим плату. Для этого подключаем плату Arduino к компу, выбираем пункт меню Файл->Образцы-> ArduinoISP

и «вгружаем» код на плату. Все мы превратили нашу плату в программатор.
б) Подключаем. Схема подключения простая: нужно подключить выводы интерфейса SPI платы к соответствующим им выводам интерфейса SPI микроконтроллера, а вывод Reset микроконтроллера к 10 пину платы (или 53 для плат на основе mega1280 и 2560). На схеме ниже пример подключения Attiny13 (Attiny85 и Attiny45 аналогично, остальные МК смотрим распиновку) к плате на основе микроконтроллера Atmega 168/328

У меня получилось как то так:

Заливаем загрузчик. А нужно ли?
Итак сначало определимся что такое загрузчик и зачем это нужно.
Установка загрузчика дает возможность напрямую, через последовательный порт прошивать микроконтроллер (только имеющие аппаратный последовательный порт).Например так прошиваются пустые ATMEGA328P, которые потом можно использовать вместо установленной штатно микросхемы на Arduino UNO и устанавливать далее на самодельные платы.
Т.е. на ту же Attiny13 заливать загрузчик просто не имеет смысла — у нее нет аппаратного порта (выводов Тх, Dx), хотя некоторые «умельцы», пишущие обучающие статьи это делают (см UPD ниже). А вот для Atmega8 это можно сделать — она при этом потеряет 1кБайт из 8 своей памяти, но зато залить прошивку уже можно будет не через SPI, а подключив ее к адаптору СОМ порта (как это сделать рассказано здесь — www.drive2.ru/b/2642464/ на примере Arduino Pro Mini, смотрим раздел «Подключаемся»).

UPD. Добавка написаная много познее
С прошедшим временем понимаю, что на теме загрузчика стоит остановиться отдельно, заодно рассказать подробно, что такое фьюзы.
Но сейчас вкратце: В каждый микроконтроллер, помимо записи прошивки, необходимо записывать биты конфигурации — так называемые фьюзы и локбиты. С завода они идут записанные среднепотолочно и в реале скорее всего вам не подойдут — от этого и происходит неправильный расчет времени, например.
Но записью загрузчика можно обойти этот момент — как раз при записи загрузчика в микроконтроллере прописываются правильные фьюзы. Поэтому, даже если загрузчик не нужен, его можно прописать, чтобы прописались фьюзы, а потом при записи самой прошивки («скетча») поставить галочку, что он не нужен и его можно удалить.

Если считаете, что вам это нужно, то устанавливаем микроконтроллер в программатор (подключаем к плате-программатору) и нажимаем «Записать загрузчик»

Прошивка программ
а) Пишем программу. Тут все как обычно, нужно только учесть, что для Attiny поддерживаются не все возможности «языка Arduino», а только
pinMode()
digitalWrite()
digitalRead()
analogRead()
analogReference(INTERNAL) / (EXTERNAL)
shiftOut()
pulseIn()
analogWrite()
millis()
micros()
delay()
delayMicroseconds()

б) Прошиваем.
Если мы используем плату Ардуино, то выбираем в качестве программатора «Arduino as ISP», в разделе «платы» наш микроконтроллер и частоту на которой он будет в дальнейшем работать, в разделе «порт» виртуальный СОМ нашей платы-программатора и нажимаем «вгрузить».
Вариант записи через программатор описан здесь — О бедном AtMega замолвите слово

в) проверяем работоспособность. Тут есть некоторые разногласия что делать с ногой RESET. Кто-то считает, что в процессе работы ее можно оставлять в воздухе, кто-то, что ее нужно подтянуть через резистор 10 кОм к питанию. Работает и так и так, тут больше вопрос религии 🙂