Делаем сами arduino uno mini

Сайт про изобретения своими руками

МозгоЧины

Сайт про изобретения своими руками

Изготавливаем самодельную плату Arduino своими руками

Изготавливаем самодельную плату Arduino своими руками

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

Шаг 1: Необходимые радиодетали и инструменты

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

Радиодетали:

  • ATmega328;
  • 2 электролитических конденсатора ёмкостью 10 uf (микрофарад);
  • 2 конденсатора в круглом керамическом корпусе ёмкостью 22 pf (пикофарада);
  • регулятор напряжения L7805;
  • кварцевый резонатор 16 MГц;
  • тактовая кнопка;
  • светодиоды;
  • панелька для микросхемы;
  • регулятор напряжения LM1117T-3.3 (по желанию);
  • 2 танталовых конденсатора ёмкостью 10 uf (микрофарад) (по желанию).

Инструменты:

  • Паяльник;
  • Мультиметр.

Шаг 2: Описание

После того, как приобрели все радиодетали, пришло время произвести монтаж, но перед этим нужно сказать пару слов насчёт atmega328. Существуют два типа микросхем: с boot-loader (бутлоударом, он же загрузчик) и без него. Разница в цене микросхем не значительная, но если приобретёте «микруху» с бутлоударом, то сможете проскочить несколько шагов из данной статьи. Если же купите без загрузчика, то необходимо в точности выполнить всё, что описано в последующих шагах.

Загрузчик необходим для загрузки кода с Arduino IDE в микросхему.

Шаг 3: Загружаем «загрузчик»

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

Настроим плату Аrduino UNO, как ISP. Это нужно сделать для того, чтобы плата прошила микроконтроллер ATmega, а не саму себя. Не подключайте ATmega, пока идёт загрузка кода.

  • Подключим Arduino к ПК;
  • Откроем Arduino IDE;
  • Откроем > Примеры > Arduino ISP;
  • Загрузим прошивку.

Шаг 4:

После того, как все элементы схемы соединены воедино, открываем IDE.

  • Выбираем Arduino328 из Tools > Board
  • Выбираем Arduino, как ISP из Tools > Programmer
  • Выбираем Burn Bootloader

После успешной записи, вы получите «Done burning bootloader».

Шаг 5: Добавляем 5В регулятор

После прошивки загрузчика, завершим изготовлении платы. Регулятор напряжения L7805 – это важная деталь схемы. Распиновка следующая (смотрим на лицевую сторону): крайняя левая нога – вход, центральная нога – земля, а крайняя правая нога – выход.

Следуя схеме присоединим регулятор напряжения к arduino.

Шаг 6: 3.3 В регулятор напряжения

Данный шаг выполняется по желанию. Регулятор используется только для питания внешних шилдов/модулей, которым нужно 3.3В.

Шаг 7: Первая прошивка

Как только завершим сбоку, пришло время загрузить первый код. Для прошивки удалим родной микроконтроллер ATmega 328 с платы UNO и заменим его новой микрухой. Как только загрузим код, поменяем микросхемы местами.

Собираем Arduino UNO своими руками



Об остальных материалах, дабы ничего не напутать, будет рассказано по ходу статьи.

Шаг первый: понимание схемы Arduino UNO

Прежде чем приступить к пайке, нужно было понять, что именно находится на плате Arduino UNO. Мастер разделил схему на 4 блока:
ATmega328 MCU
ATmega328P PDIP
16 МГц кварцевый генератор
Конденсаторы
Цепь питания
Регулятор от 7-12 В до 5В
Регулятор от 5 В до 3,3 В
USB / входной разъем, схема автоматического выбора
защита от обратного тока
Схема USB-UART
Разъем USB
Чип последовательного преобразователя (ATMEGA8U2-MU) с осциллятором и разделительными конденсаторами
Сигнальные светодиоды
индикатор питания
светодиод по умолчанию (D13)
Светодиоды TX / RX

Шаг второй: ATmega328 MCU и дорожки
Монтаж мастер начинает с микроконтроллера ATmega328 и дорожек цифрового и аналогового ввода / вывода. Arduino UNO имеет продуманную компоновку дорожек, которая хорошо соответствует компоновке 28 контактного DIP-пакета ATMEGA328. Дорожки не пересекаются, а идут параллельно друг другу. Мастер делает бумажный шаблон дорожек с оригинальной платы Ардуино и из проволоки изготавливает дорожки аналогичной формы. Припаивает и к микроконтроллеру.

Единственный внешний компонент для ATmega328, после монтажа которого устройство может работать, — это внешний генератор с частотой 16 МГц. Для его работы нужны два конденсатора 22 пФ. Мастер монтирует детали согласно семы. Минимальное аппаратное обеспечение для ATmega328P готово. Теперь можно сделать первый тест с программатором USBasp через интерфейс AVR ISCP.



Шаг третий: цепь питания
Мастер сделал для проекта рамку из монтажной платы, которая удерживает детали на месте, оставляя достаточно места для пайки.

ATmega328 питается от 5В. Arduino UNO имеет два источника питания — 7-12В и 5В через разъем USB. Он также обеспечивает источник питания 3,3 В для внешних компонентов. Т.е на устройстве размещены два регулятора мощности. Сначала нужно преобразовать 7-12 В в 5 В, а затем преобразовать 5 В в 3,3 В. Мастер использовал два регулятора AMS1117 5 В и 3,3 В. В схеме так же присутствуют конденсаторы смонтированные в соответствии с рекомендациями в технических описаниях.

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




Шаг шестой: основание
Модуль Freeduino получился довольно красиво, но неустойчивым. Тогда мастер решил сделать для него основание, а чтобы это было красиво, основание будет сделано из эпоксидной смолы.

На 3D-принтере он напечатал форму, установил в форму устройство и залил эпоксидкой. После отверждения смолы он убрал форму и отполировал основание.

Делаем сами Arduino Uno Mini

Часть № 1. Предисловие

Идея и направление проекта

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

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

Часть № 2. Разработка и проектирование проекта

Способом изготовления печатных плат является в нашем случае ЛУТ (лазерно-утюжная технология изготовления печатных плат). Тем самым необходимо составить список того, чего необходимо :

1) Стеклотекстолит (100×200 мм на все случаи жизни);
2) Флюс для пайки с тонкой кисточкой;
3) Хлорное железо (250 г.);
4) Жидкое олово (100 мл или больше, неважно , его намного хватает);
5) Лазерный принтер (желательно с новым картриджем);
6) Обычная бумага тонкая A4;
7) Сверло для сверления отверстий в плату;
8) Паяльник мощностью 25 — 30 Вт;
9) Утюг, лучше всего, советский.

В целом, все эти компоненты, не считая конечно принтер, будут стоить вам около двухсот рублей, но этих компонентов хватит на 15-20 небольших плат, если , конечно, экономить.

Теперь же необходимо обсудить детали насчет деталей для сборки самого микроконтроллера:
1) — ATmega328P PU;
2) — Светодиоды, кнопки, штырьки на плату (все дешевые) и прочее (для удобства);
3) — Программатор.

Все эти компоненты тоже будут теоретически стоить около 200 — 300 рублей. В итоге, можно сказать, что, чтобы собрать собственный arduino микроконтроллер, надо потратиться примерно в сумме 300-400 рублей (конечно же считая сколько химических компонентов необходимо для изготовления одного микроконтроллера).

Следующим шагом будет являться разработка и проектирование проекта микроконтроллера, то есть такие её стадии, как:

  1. Подготовка всех компонентов на своём рабочем столе;
  2. Изготовление шаблона печатной платы и очистка стеклотекстолита очистителем или растворителем;
  3. Распечатка шаблона печатной платы на стеклотекстолите при помощи лазерного принтера;
  4. Обработка и травление, собственно, печатной платы;
  5. Снова же очистка и обработка печатной платы очистителем или растворителем (я использую уайт-спирит);
  6. Обработка печатной платы в растворе солей олова(лужение дорожек печатной платы необходимо для того, чтобы схема оставалась рабочей на долгое время);
  7. Сверление отверстий сверлом;
  8. Установка в отверстия печатной платы электронных компонентов;
  9. Обработка отверстий флюсом и разогревание паяльника;
  10. Пайка компонентов;
  11. И, наконец, подготовка к работе компьютера и микроконтроллера и прошивка arduino ide.

Впрочем, весь процесс может проходить в течении 2-3 часов, смотря на то, какие у кого навыки в изготовлении собственных печатных плат и к пайке электронных компонентов. Итак, пришло время сказать вот такое выражение: » В теории всё понятно, а как на деле». А то мы, радиолюбители и профессионалы, не только ради теорий и знаний занимаемся электроникой.

Часть № 3. Реализация проекта

Все этапы работы я покажу по фото и опишу их с помощью комментариев.

Также необходимо начертить схему для печатной платы.

Кнопка потребуется для сброса системы,светодиод присоединен к выводам 13-ый пин ATmega328P PU и земля для индикации состояния микроконтроллера, кварцевый резонатор нужен именно 16 МГц, так как при меньшей частоте микроконтроллер либо будет работать медленно и даже очень, либо вовсе работать не будет. Пять проводов находящихся на верхней стороне схемы необходимы для программирования через программатор или arduino uno. Питаться схема может по двум проводам либо на дне печатной платы , на двух штырьках, либо два крайних штырька на её поверхности.

Читайте также  Резисторы. кодовая маркировка фирмы philips

Теперь начну подробнее описывать аспекты каждого из этапов.

1) На этом этапе необходимо подготовить все компоненты для создания печатной платы. Ножницы необходимы для того, чтобы разрезать стеклотекстолит. Перчатки, соответственно, для чистоты рук и гигиены. На рисунке также имеется уже готовая печатная плата с необработанной поверхностью. Тряпка нужна для обработки печатной платы (на втором этапе). Стол лучше, конечно, выбрать другой, по ровнее.

2) Уайт-спирит наливаем в контейнер объемом, как крышка, выливаем на тряпку, не ждём, пока она засохнет, и переходим к следующему действию. А затем очищаем и обрабатываем стеклотекстолит, если уж очень грязно, то придётся задействовать шкурку (бумага). Он будет готов к дальнейшей работе только после того, как он станет очищен на 100%. После оставляем будущую печатную плату высыхать, чтобы бумага со схемой не намокла и не испортила нам настроение.

3) По моему мнению, схема получилась довольно таки красивая. Все аккуратно и четко стоит на своём месте. Для того, чтобы распечатать схему на стеклотекстолите необходимо ровно положить шаблон на очищенный текстолит и начинать утюжить. Утюг стоит двигать равномерно по всей площади печатной платы, в течение времени равной не менее трёх минут. Надо ждать до того момента, когда абсолютно весь чернильный рисунок расплавит с я. И тогда отличный результат будет неизбежен.

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

4) На этом этапе меньше всего будет хлопот. Потребуется только лишь ваше терпение и время. Опустите печатную плату в пластиковую ёмкость с раствором хлорного железа. Растворить в ёмкости хлорное железо в воде надо в соотношении 12, то есть 100 мл воды теплой и 50 г. хлорного железа.Вылить в плоскую пластмассовую миску. Этим раствором можно будет пользоваться достаточно много. В течение 30-60 минут необходимо ждать, опустив печатную плату в раствор хлорного железа, пока плата протравиться, то есть лишняя медь уйдет с стеклотекстолита. Контролируйте ход травления плату. Вынимать следует при помощи пластмассового пинцета. Если процесс травления идёт долго то можно увеличить температуру раствора до 50-70 градусов, или добавить в раствор ещё хлорного железа.

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

6) Процесс на этом этапе то не является сложным, так как тут тоже требуется лишь терпение и время. Необходимо просто положить печатную плату в раствор солей олова,но не затягивать, всего лишь держать в растворе 10 минут, если передержать половину дня, то вся схема может просто отшелушится и растворится. Вообще, раствор предназначен для быстрого покрытия оловом печатных плат или медных деталей простым и технологичным способом для предотвращения окисления и подготовки поверхности под пайку в домашних условия. Раствор же использовать при комнатной температуре в полиэтиленовой посуде. Деталь надо предварительно зачистить и обезжирить, и при этом толщина покрытия составит 1 мкм. В одном литре раствора можно залудить до 50 км дм поверхности возможно многократное использование. Не рекомендуется совместное хранение свежего и отработанного раствора. Срок годности состава без ухудшения свойств до двух лет.

7) Отверстия следует делать очень тонким сверлом чтобы умело и точно можно было бы припаивать электронные компоненты. Желательно чаще пользоваться флюсом или канифолью (сосновой) , так как с помощью них можно отлично паять.

8) Только лишь точная установка всех компонентов может с успехом повлиять на удобство пайки компонентов. Необходимо чётко все разместить , чтобы место осталось свободное на печатной плате и к тому же чтобы помочь самому себе, то есть тебе легче будет припаивать компоненты, если будет свободное пространство.

9) Этот пункт нет смысла описывать, так как в нём всё ясно

10) Паяйте как можно аккуратнее, если хотите получить отличный мини аналог Arduino Uno.

11) После всех предыдущих этапов я надеюсь у вас уже есть стоящий прототип и теперь можно приступать к настройке компьютера и программирования микроконтроллера.

Необходимо подключить провода именно так:

Мини аналог RST RX TX +5V GND (считая слева направо на правой картинке.)
| | | | |
Arduino Uno RST RX TX +5V GND

И после этого можно легко программировать микроконтроллер прямо с Arduino IDE ка Arduino Uno.

Часть № 4. Заключение

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

Тут представлен стабилизатор напряжения на lm7805ct (5 вольт). Если он будет перегреваться, всё тепло будет идти на стеклотекстолит.

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

Примечание редакции сайта: К сожалению, автор статьи не нашел нужным рассказать про заливку bootloader’а, без чего данный проект не является законченным. Про заливку бутлодера читайте в статье Arduino своими руками с USB портом

Как сделать свою собственную плату Arduino Uno

В уроке мы покажем вам, как сделать свою собственную плату Arduino Uno своими руками, используя микроконтроллер ATmega328p IC. В итоге вы сможете понимать как в дальнейшем делать аналоги любых плат, плюс создавать свои. Может быть вы даже откроете свою компанию по производству плат и микроконтроллеров.

Так как Ардуино является платформой с открытым исходным кодом, довольно легко узнать о внутренностях и деталях всего того, что делает Arduino тем, чем она является. Таким образом, в этом уроке мы рассмотрим схему Arduino Uno, немного изменим ее в соответствии с нашими потребностями, изготовим под нее печатную плату и припаяем необходимые компоненты для создания финального продукта.

Мы не будем использовать какие-либо SMD-компоненты для создания своей версии Arduino Uno, потому что не у всех есть паяльная станция, а иногда найти SMD-компоненты очень сложно. Кроме того, наш метод в большинстве случаев дешевле, чем компоненты SMD. Для тех кто, только начинает разбираться в электронике — технологию поверхностного монтажа печатных плат также называют ТМП (технология монтажа на поверхность), SMT (англ. surface mount technology) и SMD-технология (от англ. surface mounted device — прибор, монтируемый на поверхность), а компоненты для поверхностного монтажа также называют «чип-компонентами».

Шаг 1. Изменения в оригинальной версии

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

Изменения будут следующими:

  • Мы не будем использовать какие-либо компоненты SMD. Все элементы будут в формате сквозных отверстий.
  • Мы не нашли ни одного чипа FTDI в формате сквозного отверстия, поэтому преобразование USB в TTL не будет выполняться. Для программирования нового Arduino будет использоваться отдельная отладочная плата FTDI.
  • Оригинальный Arduino использует компаратор Mosfet, чтобы определить, подключаем ли мы плату с помощью источника питания USB или постоянного тока. Но в нашей версии мы будем вручную переключать это с помощью перемычки.
  • Традиционно используется микросхема LP2985 от Texas Instruments, чтобы получить источник питания 3,3 В на борту. Но из-за недоступности платы в формате TH мы будем использовать простой линейный регулятор. Таким образом, LM1117 должен быть очевидным выбором, но чтобы сохранить стоимость изготовления еще ниже, мы будем использовать LM317 с R1 и R2 как 240E и 390E соответственно.
  • Последнее, что нужно на плате, — это достаточное количество линий питания и два разъема для каждого порта IO ввода-вывода. Поэтому мы будем размещать ряд разъемов папа и мама вокруг платы, что поможет подключить большее количество устройств непосредственно к Arduino.

Учитывая все изменения, мы можем записать окончательный список компонентов.

Шаг 2. Необходимые компоненты

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

  • Микроконтроллер Atmel Atmega328p-pu
  • 28-контактная база IC
  • 16 МГц кварцевый генератор
  • конденсатор 22 пФ — 2 шт.
  • конденсатор 100 нФ — 4 шт.
  • Электролитический конденсатор 100 мкФ — 3 шт.
  • 3 мм красный светодиод — 2 шт.
  • 330E 1/4W резистор — 2 шт.
  • 240E 1/4W резистор — 1 шт.
  • 390E 1/4W резистор — 1 шт.
  • 10K 1/4W резистор — 1 шт.
  • Кнопка для сброса
  • Диод общего назначения 1N4007
  • Линейный регулятор напряжения 7805
  • Линейный регулятор переменного напряжения LM317
  • DC разъем мама
  • 2-контактный винтовой клеммный блок
  • много разъемов «папа» и «мама»
Читайте также  Измеритель емкости с точностью до пикофарада на базе cmos инверторов

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

Вам также понадобится программатор USBASP ICSP или конвертер USB в TTL, такой как FTDI для программирования Arduino с вашего компьютера.

Вот проектная спецификация от компании Easyeda:

Собираем все компоненты и переходим к следующему шагу.

Шаг 3. Рисуем окончательную схему

Чтобы нарисовать окончательную схему, использовали Easyeda, набор инструментов EDA на основе веб-технологий. На этом портале очень просто рисовать большие схемы. Также это онлайн сервис. Таким образом, благодаря удобству использования что-то лучшее найти сложно. Рекомендуем вам использовать в своих проектах. Схема, которая разработана может быть скачена по ссылке ниже, PDF документ:

Шаг 4. Создаем печатную плату

Как только схема завершена, пришло время сделать печатную плату. Мы использовали веб-сайт JLCPCB (ссылка), чтобы сделать печатную плату. Эти ребята являются одними из лучших в производстве печатных плат в последние дни.

После завершения проектирования схемы преобразуйте ее в печатную плату и спроектируйте печатную плату на веб-сайте easyEDA (ссылка). Будьте терпеливы. Ошибка на этом шаге испортит вашу печатную плату. Проверьте несколько раз перед генерацией файла gerber. Вы также можете проверить 3d модель вашей платы здесь. Нажмите на создание файла gerber и оттуда вы можете напрямую заказать эту плату через JLCPCB. Загрузите файлы gerber, выберите правильную спецификацию, ничего не меняйте в этом разделе. Оставьте как есть. Это достаточно хорошие настройки для старта. Разместите заказ. Вы получите его через 1-2 недели.

Шаг 5. Пайка компонентов

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

Одна вещь, которую стоит пояснить, заключается в том, что значения конденсаторов не обязательно должны быть идеальными. Нечто близкое к тем величинам, что мы обсуждали выше, вполне будет работать. То же самое касается резисторов. Но сохраните значения R1 и R2 LM317.

Одна вещь, которую вы можете найти странной, что у arduino, который мы сделали, есть две кнопки сброса. На самом деле, когда разрабатывали макет, использовали четырехконтактную кнопку для справки. Но во время пайки стало понятно, что у нас её нет. Поэтому мы припаяли 2 двухполюсных переключателя сброса на место. Там нет ничего особенного.

Шаг 6. Запуск загрузчика на микроконтроллере

Если вы используете конвертер USB — TTL для программирования микроконтроллера, тогда загрузчик Arduino должен быть установлен в новый чип atmega328p. Об этом мы сделаем следующий большой урок. После этого процесс загрузки кода будет точно таким же, как и в обычной Arduino.

Если вы используете программатор ICSP, то есть программатор USBASP, тогда этот шаг не нужен. Но процесс загрузки кода немного отличается.

Шаг 7. Программируем Ардуино

Подключите коммутационную плату к Arduino и подключите её к компьютеру. Откройте диспетчер устройств и наблюдайте за com-портом конвертера usb — ttl. В Arduino IDE выберите com-порт и плату правильно. Теперь здесь начинается сложная часть.

Если ваша плата FTDI имеет вывод DTR и она подключена для сброса, просто сохраните программу и загрузите ее в Arduino как обычно. Ошибки не будет. Но если у вас нет пина DTR, как у нас, то, прежде чем нажать кнопку загрузки, удерживайте кнопку сброса на плате, а затем нажмите кнопку загрузки. Удерживайте кнопку до тех пор, пока программа не скомпилируется, когда IDE говорит «загрузка», затем отпустите переключатель сброса. Затем код будет загружен.

Шаг 8. Итоговый результат

Здесь вы можете увидеть, что мы загрузили 3-контактный код в новую arduino, и все работает, как и предполагалось. Используя только 3 контакта, мы контролируем 6 светодиодов с промежутком 200 мс между ними. Мы проверяли другие программы, все они работают без нареканий.

Системный интегратор

Самодельный Arduino, UNO совместимый, на макетке и с USB-DATA кабелем

В нашем самодельном Arduino микроконтроллер ATmega328P-PU работает на частоте 16 МГц, есть USB интерфейс, кнопка сброса и схема сброса в начале загрузки скетчей. И самое главное, в микроконтроллер зашит bootloader (загрузчик) Arduino Uno.

Таким образом, наш самодельный Arduino максимально совместим с Arduino UNO, но благодаря тому, что наш Arduino собран на макетной плате Breadboard Half (BREADBOARD — 456 HOLES) размером 82х59 мм., он получился более удобным в эксплуатации.

Основное преимущество самодельного Arduino, собранного на макетной плате в том, что его размер может не превышать размеров аналогичных моделей, собранных промышленным способом на печатных платах. В то же время, на макетной плате еще остается много места для создания своих устройств на базе Arduino. Например, этот самодельный Arduino можно успешно использовать для программирования микроконтроллеров в DIP-8, DIP-14, DIP-16, DIP-20 и DIP-24 корпусах. Если удалить схему сброса и сместить микроконтроллер ATmega328P-PU к краю макетной платы, можно будет программировать и микроконтроллеры в DIP-28 корпусах, и тиражировать Arduino. Схему самодельного Arduino можно повторить на значительно большей макетной плате и использовать для всестороннего тестирования своих устройств и программ.

Кроме того, цена комплекта для самодельного Arduino, Uno совместимого, существенно ниже чем у готовых моделей.

Ниже приводим монтажную схему самодельного Arduino, UNO совместимого, на микроконтроллере ATmega328P-PU.

Принципиальная схема самодельного Arduino, UNO совместимого, на микроконтроллере ATmega328P-PU:

Обратите внимание , в цепи DTR установлен конденсатор емкостью 2 мкФ. На линии DTR со стороны преобразователя USB-UART (микросхема CP2101 и т.п.) на время передачи устанавливается сигнал низкого уровня. В момент отрицательного перепада сигнала на линии DTR, RC цепочкой (10 кОм и 2 мкФ) на 1 ножке микроконтроллера формируется короткий отрицательный импульс RESET. Это позволяет по инициативе IDE ARDUNO сбрасывать микроконтроллер и запускать на нем, программу bootloader (загрузчик) перед передачей скетчей (прошивок).

Замечание , когда Вы будете использовать Ваш Arduino в качестве ISP программатора других микроконтроллеров, разрывайте цепь DTR, вынимая конденсатор 2 мкФ. Это предотвратит запуск на Вашем Arduino программы bootloader. Ваш Arduino должен работать в качестве ISP программатора под управлением скетча ArduinoISP из примеров к программе Arduino IDE.

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

  • 14 входов/выходов 6 из которых могут использоваться как выходы ШИМ (с широтно импульсной модуляцией);
  • 6 аналоговых входов.

Каждый из 14 цифровых входов/выходов Arduino может быть настроен как вход или выход, используя функции pinMode(), digitalWrite() и digitalRead() на языке C в программе Arduino IDE. Цифровые входы/выходы работают при напряжении 5 В.

На принципиальной электрической схеме самодельного Arduino синим цветом нанесены надписи в точности повторяющие маркировку на разъемах оригинального Arduino UNO R3.

Reset Низкий уровень сигнала на выводе перезагружает микроконтроллер.

0 . 13 Входы/выходы. Из них:

11. Выходы с ШИМ с разрешением 8 бит. Управление скважностью сигнала на выходе при помощи функции analogWrite().

A0 . A5 Аналоговые входы каждый разрешением 10 бит. Диапазон измеряемых напряжений 0 . 5 В.

AREF Опорное напряжение для аналоговых входов. Позволяет изменить верхний предел измеряемого напряжения на входах A0 . A5. Используется с функцией analogReference(). Внешнее напряжение рекомендуется подключать к выводу AREF через резистор 5 кОм.

С программным обеспечением некоторые выводы имеют специальное назначение:

0 (RX) и 1 (TX) для передачи данных по UART (порт последовательной передачи данных). Используется программой bootloader.

2 и 3 Инициализация внешнего прерывания. Используется с функцией attachInterrupt().

10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Для обмена данными по протоколу SPI, для чего используется библиотека SPI.

4 (SDA) и 5 (SCL) Для осуществления связи по протоколу I2C (TWI). Используется библиотека Wire.

Подбор USB-DATA кабеля вместо USB-UART модуля для самодельного Arduino.

В современных сотовых телефонах микросхема USB-UART встроена в телефон и кабель от них нам не подходит. В старых телефонах, для связи телефона с компьютером по USB интерфейсу использовался USB-DATA кабель, в который была встроена микросхема USB-UART, такой кабель нам и нужен.

Убедиться, что мы нашли или купили подходящий кабель можно следующим образом:

  • Под Windows, при подключении кабеля к USB интерфейсу компьютера, в операционной системе появится новое устройство.
  • Под Linux, необходимо подключить USB кабель к компьютеру и выполнить команду lsusb

Обратите внимание на последнюю строку. В системе появился Sony-Ericsson / Samsung DataCable. Отличная новость! Но, чтобы развеять сомнения, запустим программу Arduino. Под Windows, возможно, предварительно необходимо будет установить драйвер для кабеля.

В программе Arduino установите Сервис / Последовательный порт / порт на который подключился Ваш USB-DATA кабель. Запустите Сервис / Монитор порта . Соедините на кабеле провода RXD с TXD. В моем кабеле оказалось 5 проводов. Два провода питание 5В вычислить легко с помощью тестера, или светодиода с резистором. Так же сразу определите полярность питания. Три оставшихся провода RXD, TXD и DTR. DTR полезен, но не обязателен. И з них RXD и TXD можно вычислить с помощью Монитора порта, поочередно соединяя по 2 провода из трех (3 комбинации).

Читайте также  Остронаправленный высокочувствительный микрофон

В Мониторе порта в верхней строке наберите какое нибудь сообщение и нажмите кнопку послать:

Сообщение вернулось, значит мы нашли провода RXD и TXD:

С USB-DATA кабеля срежьте разъем «К телефону». Припаяйте к проводам кабеля коннекторы. Я, например, взял соединительные провода папа-папа, разрезал их пополам и припаял к проводам USB-DATA кабеля.

Переходник USB-UART сделанный из USB-DATA кабеля от телефона Sony-Ericsson.

Еще один USB-DATA кабель подходит на роль USB-UART интерфейса:

Это кабель китайского производства для телефона Nokia. По середине кабеля установлена пластмассовая коробочка с микросхемой CP2101 на маленькой плате.

К этой плате я и припаял выводы +5V GND RXD TXD и DTR.

Переходник USB-UART сделанный из USB-DATA кабеля от телефона Nokia.

Конечно же, можно воспользоваться и готовым интерфейсом USB-UART, например, на микросхеме CP2102.

Но у него свои недостатки — не распаяна линия DTR и вместе с кабелями, он более громоздкий, +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 кОм к питанию. Работает и так и так, тут больше вопрос религии 🙂