Решение... Советы... Windows 10

Самодельный arduino. Arduino USB сделай сам (DIY). Другие идеи проектов

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

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

Что такое Arduino и для чего оно нужно?

Arduino — это электронный конструктор, который позволяет любому человеку создавать разнообразные электро-механические устройства. Ардуино состоит из программной и аппаратной части. Программная часть включает в себя среду разработки (программа для написания и отладки прошивок), множество готовых и удобных библиотек, упрощенный язык программирования. Аппаратная часть включает в себя большую линейку микроконтроллеров и готовых модулей для них. Благодаря этому, работать с Arduino очень просто!

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

Стартовый набор Arduino

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

Базовый набор ардуино для начинающих: Купить
Большой набор для обучения и первых проектов: Купить
Набор дополнительных датчиков и модулей: Купить
Ардуино Уно самая базовая и удобная модель из линейки: Купить
Беспаечная макетная плата для удобного обучения и прототипирования: Купить
Набор проводов с удобными коннекторами: Купить
Комплект светодиодов: Купить
Комплект резисторов: Купить
Кнопки: Купить
Потенциометры: Купить

Среда разработки Arduino IDE

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

Версия Windows Mac OS X Linux
1.8.2

Язык программирования Ардуино

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

Для программирования Arduino используется упрощенная версия языка C++ с предопределенными функциями. Как и в других Cи-подобных языках программирования есть ряд правил написания кода. Вот самые базовые из них:

  • После каждой инструкции необходимо ставить знак точки с запятой (;)
  • Перед объявлением функции необходимо указать тип данных, возвращаемый функцией или void если функция не возвращает значение.
  • Так же необходимо указывать тип данных перед объявлением переменной.
  • Комментарии обозначаются: // Строчный и /* блочный */

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

Все прошивки для Arduino должны содержать минимум 2 функции. Это setup() и loop().

Функция setup

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

// переменные с пинами подключенных устройств int switchPin = 8; int ledPin = 11; // переменные для хранения состояния кнопки и светодиода boolean lastButton = LOW; boolean currentButton = LOW; boolean ledOn = false; void setup() { pinMode(switchPin, INPUT); pinMode(ledPin, OUTPUT); } // функция для подавления дребезга boolean debounse(boolean last) { boolean current = digitalRead(switchPin); if(last != current) { delay(5); current = digitalRead(switchPin); } return current; } void loop() { currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) { ledOn = !ledOn; } lastButton = currentButton; digitalWrite(ledPin, ledOn); }

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

int switchPin = 8 ;

int ledPin = 11 ;

// переменные для хранения состояния кнопки и светодиода

boolean lastButton = LOW ;

boolean currentButton = LOW ;

boolean ledOn = false ;

void setup () {

pinMode (switchPin , INPUT ) ;

pinMode (ledPin , OUTPUT ) ;

// функция для подавления дребезга

boolean debounse (boolean last ) {

boolean current = digitalRead (switchPin ) ;

if (last != current ) {

delay (5 ) ;

current = digitalRead (switchPin ) ;

return current ;

void loop () {

currentButton = debounse (lastButton ) ;

if (lastButton == LOW && currentButton == HIGH ) {

ledOn = ! ledOn ;

lastButton = currentButton ;

digitalWrite (ledPin , ledOn ) ;

В этом скетче я создал дополнительную функцию debounse для подавления дребезга контактов. О дребезге контактов есть на моем сайте. Обязательно ознакомьтесь с этим материалом.

ШИМ Arduino

Широтно-импульсная модуляция (ШИМ) — это процесс управления напряжением за счет скважности сигнала. То есть используя ШИМ мы можем плавно управлять нагрузкой. Например можно плавно изменять яркость светодиода, но это изменение яркости получается не за счет уменьшения напряжения, а за счет увеличения интервалов низкого сигнала. Принцип действия ШИМ показан на этой схеме:

Когда мы подаем ШИМ на светодиод, то он начинает быстро зажигаться и гаснуть. Человеческий глаз не способен увидеть это, так как частота слишком высока. Но при съемке на видео вы скорее всего увидите моменты когда светодиод не горит. Это случится при условии что частота кадров камеры не будет кратна частоте ШИМ.

В Arduino есть встроенный широтно-импульсный модулятор. Использовать ШИМ можно только на тех пинах, которые поддерживаются микроконтроллером. Например Arduino Uno и Nano имеют по 6 ШИМ выводов: это пины D3, D5, D6, D9, D10 и D11. В других платах пины могут отличаться. Вы можете найти описание интересующей вас платы в

Для использования ШИМ в Arduino есть функция Она принимает в качестве аргументов номер пина и значение ШИМ от 0 до 255. 0 — это 0% заполнения высоким сигналом, а 255 это 100%. Давайте для примера напишем простой скетч. Сделаем так, что бы светодиод плавно загорался, ждал одну секунду и так же плавно угасал и так до бесконечности. Вот пример использования этой функции:

// Светодиод подключен к 11 пину int ledPin = 11; void setup() { pinMode(ledPin, OUTPUT); } void loop() { for (int i = 0; i < 255; i++) { analogWrite(ledPin, i); delay(5); } delay(1000); for (int i = 255; i > 0; i--) { analogWrite(ledPin, i); delay(5); } }

// Светодиод подключен к 11 пину

int ledPin = 11 ;

void setup () {

pinMode (ledPin , OUTPUT ) ;

void loop () {

for (int i = 0 ; i < 255 ; i ++ ) {

analogWrite (ledPin , i ) ;

delay (5 ) ;

delay (1000 ) ;

for (int i = 255 ; i > 0 ; i -- ) {

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

Этот вариант Arduino-контроллера, если уж не самый простой, то уж наверняка самый доступный для самостоятельного изготовления. В основе - уже ставшая классической схема Arduino на контроллере ATMega8.

Всего разработано два варианта:

  • Модульный
  • Одноплатный

Модульный вариант

Этот вариант контроллера состит из трех плат:

Одноплатный вариант

Все тоже самое, только на одной плате:

Плата выполнена из одностороннего фольгированного текстолита и может быть повторена в домашних условиях с использованием, наприрмер, ЛУТ-технологии. Размеры платы: 95x62

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

После сборки платы - необходимо "прошить" контроллер, загрузить в него "bootloader" - загрузчик. Для этого потребуется программатор. Берем чистый контроллер типа ATMega8, устанавливаем его в программатор, подключаем к компьютеру. Я использовал программатор Программатор AVR ISP mkII c адаптером ATMega8-48-88-168 . Программируем с помощью Arduino IDE, она сама выставит необходимые fuse bits. Последовательность такая:

1. Выбор программатора (Сервис > Программатор > AVRISP mkII). Если этот программатор используется впервые - необходимо установить драйвер AVRISP-MKII-libusb-drv.zip . Если используется не AVRISP mkII, а другой программатор, то из списка нужно выбрать нужный.

2. Выбор платы для микроконтроллера (Сервис > Плата > Arduino NG or older w/ ATmega8). Если используется не ATmega8, а другой микроконтроллер, то и платку нужно выбирать соответствующую ему.

3. Запись bootloader (Сервис > Записать загрузчик).

4. Устанавливаем контроллер на плату, и все, Arduino готова к работе.

Добрый день. С появлением arduino робототехника, автоматика и другие радио изделия стали нам более доступными. Раньше представить было трудно что с такой простотой можно писать прошивки для микроконтроллеров, с появлением arduino заниматься робототехникой могут даже детишки. Простота платформы arduino позволяет забыть о побитовых операциях и регистрах avr которые использовались повсеместно. Но так как платформа универсальная то и микроконтроллер тоже выбран универсальный. Например в arduino uno предусмотрен atmel atmega328p что даволи излишне для простой обработки нажатий на кнопки, а если делать сразу партию устройств то придется заплатить за незадействованную мощь.

Но так как arduino ide свободно распространяемая, любой без труда может написать дополнения и библиотеки, зачастую они могут быть очень полезными. В данной статье пойдет речь о библиотеке плат на основе ATmega8, ATmega48, ATmega88, ATmega168 под названием Mini Core. Данная библиотека позволят писать скетчи arduino под более слабые микроконтроллеры чем atmega328p, а это позволяет удешевить стоимость устройства за счет рационального использования мощности.

Почему именно эти микроконтроллеры:

  1. Данные микроконтроллеры с теми же выводами и архитектурой и имеют минимальные отличия от atmega328p(заменяемые)
  2. Они дешевые и популярные(некоторые дешевле доллара)
  3. Они все имеют DIP и TQFP корпуса

Данная библиотека поддерживает все индексы микросхемы кроме PB (т.е. A, P, PA), например не стоит использовать ATMEGA168PB-AU.

Микросхемы по характеристикам:

Atmeg328 atmega168 atmega88 atmega48 atmega8
Flash 32 кб 16 кб 8 кб 4 кб 8 кб
ОЗУ 2 кб 1 кб 1 кб 512 б 1 кб
ПЗУ 1 кб 512 б 512 б 256 б 512 б
Каналы ШИМ 6 6 6 6 3

Пора от теории перейти к практике установим Mini Core, для установки понадобиться Arduino IDE версии 1.6.4 и выше. Если у вас нет Arduino или она старше качаем ее с оф. Сайта .

1. Для установки делаем следующее:

2. Запускаем Arduino IDE

3. Откройте меню « Файл» ⇒ «Настройки» .

4. После вышеупомянутых операций закрываем настройки и переходим в меню Откройте меню « Инструменты» ⇒ «Плата:"........."» ⇒ « Менеджер плат...».

5. В менеджере плат выбираем нашу библеотеку и нажимем установка:

Примечание . Если вы используете Arduino IDE 1.6.6, вам может потребоваться закрыть диспетчер плат, а затем снова открыть его.

После установки в меню « Инструменты» ⇒ «Плата:"........."» появятся варианты плат с нашими микроконтроллерами.

Самый удобный вариант для использование данных микроконтроллеров это взять arduino uno с микросхемой в корпусе dip и заменить на нужную. Также можно собрать плату с несложной обвязкой:

Для тех кому нужна распиновка микросхем фото ниже:

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

Настройки тактовой частоты:

  • 16 МГц внешний генератор (по умолчанию)
  • 20 МГц внешний генератор
  • 18.432 Mhz внешний генератор *
  • 12 МГц внешний генератор
  • 8 МГц внешний генератор
  • 8 МГц внутренний генератор **
  • 1 МГц встроенный генератор

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

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

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

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

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

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

1) Стеклотекстолит (100x200 мм на все случаи жизни);
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. Питаться схема может по двум проводам либо на дне печатной платы, на двух штырьках, либо два крайних штырька на её поверхности.

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

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

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

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

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

4) На этом этапе меньше всего будет хлопот. Потребуется только лишь ваше терпение и время. Опустите печатную плату в пластиковую ёмкость с раствором хлорного железа. Растворить в ёмкости хлорное железо в воде надо в соотношении 1\2, то есть 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 можно сделать и за более дешёвую сумму чем в магазинах и я надеюсь, что эта статья не позволила вам потратить ваше время зря. Всем кто читал - спасибо, а кто будет комментировать и учитывать мои промахи, тем двойное спасибо, так как я буду признавать свои ошибки и, надеюсь, в будущем буду исправлять их.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
МК AVR 8-бит

ATmega328P

1 DIP В блокнот
Зарубежные Светодиод 2 Зелнный и синий