Что такое ардуино своими руками. Делаем Arduino с нуля. Копируем Arduino uno – питание

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

Этот вариант 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 готова к работе.

На мой взгляд собирать UNO именно в том виде, в котором она представлена в оригинале нет смысла. Я всегда пользуюсь вот этой схемой:

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

Копируем Arduino uno – питание

Во-первых в этой схеме только одно напряжение – то, которым питаешь микроконтроллер. В arduino uno есть стабилизатор – ей подаешь 5 вольт, она еще и 3.3 выдает на соседний пин. За всю мою практику мне ни разу не понадобилось сразу и 5, и 3.3 вольта в одной схеме. То есть используется либо 5, либо 3.3, но никогда вместе. Все девайсы, экраны и датчики, рассчитанные на 3.3, всегда втыкались 5 вольт и все работало. Естественно надо прочитать даташит (документацию) на эти самые датчики, возможно у вас что-то мегачувтсвительное к входному напряжению и ему реально нужно 3.3 вольта. Тогда можно поставить стабилизатор напряжения и снизить до 3.3 вольт. Как обычно есть пара способов:

Вообще с питанием много всяких извращенных схем, но это основные подходы.

USB для нашего UNO

Тут тоже есть два подхода. Есть такая штука, называется ISP:


Это такой разъем)) Для того, чтобы заставить работать наш новый UNO, нужен микроконтроллер. Если ты просто пойдешь в магаз и купить Atmega326 ты конечно будешь молодец, но работать сразу это все не будет – в нее надо зашить загрузчик Arduino. для этого как ни странно нужна вторая Arduino. Уже рабочая Хз где ты ее достанешь, купишь в Китае или попросишь у друга погонять. В принципе подойдет любая. Назовем ее условно программатор. А подключать надо так:

pin name: not-mega: mega(1280 and 2560) reset: 10: 53 MOSI: 11: 51 MISO: 12: 50 SCK: 13: 52

pin name : not - mega : mega (1280 and 2560 )

reset : 10 : 53

MOSI : 11 : 51

MISO : 12 : 50

SCK : 13 : 52

Если вы достали где-то в качестве программатора Arduino Mega то используйте для подключения последний столбец. Если программатором служат другие ардуины – тогда второй. В первом столбце указаны ноги вашей новой купленной атмеги. Далее в рабочую ардуино (программатор) заливаем скетч из образцов с названием ArduinoISP:

И вот тут у нас два варианта:

  1. Можно прошить загрузчик и тогда в дальнейшем наш микроконтроллер можно прошивать через Serial порт и вторая ардуина-программатор нам больше не нужна.
  2. Либо можно прошивать через программатор сразу наш скетч без загрузчика – и тогда у нас после запуска будет все работать быстрее на пару секунд. Это делается с помощью меню файл –> загрузить через программатор

Если с вторым вариантом все ясно.. То первый требует разъяснений. Жмем Инструменты – Программатор – Arduino. А потом Инструменты – Записать загрузчик.

После этого отключаем Arduino и теперь нам понадобится USB to ttl serial Converter. После того, как мы его достали, его надо подключить к reset, d0 (rx), d1(tx) нашей только что прошитой атмеги.

Суть та же, только не забудьте добавить резистор и конденсатор на reset (см. первый вариант).

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

Микроконтроллеры – отличная основа для большого количества устройств. По сути своей они напоминают компьютер: постоянная память; оперативная память; вычислительное ядро; тактовая частота.

Среди многих семейств и видов МК новички часто выбирают контроллеры AVR Atmega. Однако язык программирования может показаться сложным, поэтому преподаватель из Италии решил разработать простую и удобную плату для обучения.

Родилась Arduino ATmega8, на основе которой можно собрать очень удобное и простое устройство.

С этими платами от Ардуино вы получаете целый ряд преимуществ:

  • готовая разведенная печатная плата со всеми необходимыми компонентами и разъёмами;
  • микроконтроллеры Atmega;
  • возможность программировать без программаторов – через ЮСБ порт;
  • питание от любого источника 5-20 вольт;
  • простой язык программирования и возможность использования чистой C AVR без переделок платы и прошивки.
  • Частота ATmega8: 0-16 МГц
  • Напряжение ATmega8: 5 В
  • Частота ATmega8L: 0-8 МГц
  • Частоат ATmega8A: 0-16 МГц

В реальности почти все микроконтроллеры при рабочем напряжении в 5 вольт работают с частотой 16 мегагерц, если участвует внешний кварцевый резонатор. Если брать внутренний генератор, то частоты составят: 8, 4, 2 и 1 МГц.

Распиновка Arduino ATmega8

Ниже приводим распиновку атмега8, которую можно также найти на официальном сайте производителя:

Добавление устройств АТмега

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

Вносим следующие изменения в файл hardware/arduino/boards.txt :

Atmega8o.name=ATmega8 (optiboot 16MHz ext) atmega8o.upload.protocol=arduino atmega8o.upload.maximum_size=7680 atmega8o.upload.speed=115200 atmega8o.bootloader.low_fuses=0xbf atmega8o.bootloader.high_fuses=0xdc atmega8o.bootloader.path=optiboot50 atmega8o.bootloader.file=optiboot_atmega8.hex atmega8o.bootloader.unlock_bits=0x3F atmega8o.bootloader.lock_bits=0x0F atmega8o.build.mcu=atmega8 atmega8o.build.f_cpu=16000000L atmega8o.build.core=arduino:arduino atmega8o.build.variant=arduino:standard ############################################################## a8_8MHz.name=ATmega8 (optiboot 8 MHz int) a8_8MHz.upload.protocol=arduino a8_8MHz.upload.maximum_size=7680 a8_8MHz.upload.speed=115200 a8_8MHz.bootloader.low_fuses=0xa4 a8_8MHz.bootloader.high_fuses=0xdc a8_8MHz.bootloader.path=optiboot a8_8MHz.bootloader.file=a8_8MHz_a4_dc.hex a8_8MHz.build.mcu=atmega8 a8_8MHz.build.f_cpu=8000000L a8_8MHz.build.core=arduino a8_8MHz.build.variant=standard ############################################################## a8_1MHz.name=ATmega8 (optiboot 1 MHz int) a8_1MHz.upload.protocol=arduino a8_1MHz.upload.maximum_size=7680 a8_1MHz.upload.speed=9600 a8_1MHz.bootloader.low_fuses=0xa1 a8_1MHz.bootloader.high_fuses=0xdc a8_1MHz.bootloader.path=optiboot a8_1MHz.bootloader.file=a8_1MHz_a1_dc.hex a8_1MHz.build.mcu=atmega8 a8_1MHz.build.f_cpu=1000000L a8_1MHz.build.core=arduino a8_1MHz.build.variant=standard ############################################################## a8noboot_8MHz.name=ATmega8 (no boot 8 MHz int) a8noboot_8MHz.upload.maximum_size=8192 a8noboot_8MHz.bootloader.low_fuses=0xa4 a8noboot_8MHz.bootloader.high_fuses=0xdc a8noboot_8MHz.build.mcu=atmega8 a8noboot_8MHz.build.f_cpu=8000000L a8noboot_8MHz.build.core=arduino a8noboot_8MHz.build.variant=standard

Таким образом, если мы перейдем в меню Сервис → Плата , то увидим устройства:

  • ATmega8 (optiboot 16MHz ext)
  • ATmega8 (optiboot 8 MHz int)
  • ATmega8 (optiboot 1 MHz int)
  • ATmega8 (no boot 8 MHz int)

Платы Arduino

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

Сердце платы – микроконтроллер семейства AVR. Изначально был применён микроконтроллер atmega8, но его возможности не безграничны, и плата подвергалась модернизации и изменениям. Стандартная плата, которая наиболее распространена у любителей – это плата версии UNO, существует много её вариаций, а её размеры сравнимы с кредитной карточкой.

Плата – полный аналог большего собрата, но в гораздо меньших размерах, версия arduino atmega168 была самой популярной и недорогой, но её сменила другая модель – arduino atmega328, стоимость которой аналогична, а возможности больше.

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

Клеммная колодка – отличный способ сделать надёжное разъёмное соединение и быстро выполнить изменения в схеме прототипов ваших устройств. Для тех, кому не хватает стандартных разъёмов, есть более крупные и мощные платы, например, на atmega2560, у которой доступно полсотни портов для работы с периферией.

На фото изображена плата . На её основе можно собрать довольно сложного робота, систему умного дома или 3d-принтер на ардуино.

Не стоит думать, что младшие версии слабы, например, микроконтроллер atmega328, на котором построены модели Uno, nano, mini и другие, имеет вдвое больше памяти по сравнению с 168 моделью – 2 кб ОЗУ и 32 кб Flash памяти. Это позволяет записывать более сложные программы в память микроконтроллера.

Проекты на основе Arduino ATmega

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

Пример 1

Можно сделать тестер с 11 функциями на микроконтроллере atmega32.

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

  1. Прозвонка цепи с возможностью измерять падение напряжения на переходе диода.
  2. Омметр.
  3. Измеритель ёмкости.
  4. Измерение активного сопротивления конденсатора или ESR.
  5. Определение индуктивности.
  6. Возможность счёта импульсов.
  7. Измерение частоты – пригодится в диагностике, например, для проверки ШИМ источника питания.
  8. Генератор импульсов – тоже полезен в ремонте.
  9. Логический анализатор позволит просмотреть содержимое пачек цифровых сигналов.
  10. Тестер стабилитронов.

Пример 2

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

Пример 3

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

Для этого вам понадобится:

  1. Arduino uno или atmega
  2. Tft дисплей 5 дюйма.
  3. Небольшой набор обвязки.

Или его упрощенный аналог на плате Nano и дисплее от nokia 5110.

Такой осциллографический пробник станет полезным для автоэлектрика и мастера по ремонту радиоэлектронной аппаратуры.

Пример 4

Бывает, что управляемые модули удалены друг от друга или возможностей одной ардуино не хватает – тогда можно собрать целую микроконтроллерную систему. Чтобы обеспечить связь двух микроконтроллеров стоит использовать стандарт RS 485.

На фото приведен пример реализации такой системы и ввода данных с клавиатуры.

Цветомузыка на микроконтроллере Arduino ATmega8

Для школьной дискотеки можно собрать ЦМУ на 6 каналов.

Транзисторы VT1-VT6 нужно подобрать с учетом мощности ваших светодиодов. Это силовые компоненты – они нужны, потому что мощности микроконтроллера не хватит, чтобы запустить мощные лампы или светодиоды.

Если вы хотите коммутировать сетевое напряжение и собрать цветомузыку на лампах накаливания, вместо них нужно установить симисторы и драйвер. Дополнить каждый канал ЦМУ вот такой конструкцией:

Ардуино своими руками

Atmega2560 – хоть и мощный и продвинутый контроллер, но проще и быстрее собрать первую плату на atmega8 или 168.

Левая часть схемы – это модуль связи по USB, иначе говоря, USB-UART/TTL конвертер. Его, вместе с обвязкой, можно выбросить из схемы, для экономии места, собрать на отдельной плате и подключать только для прошивки. Он нужен для преобразования уровней сигнала.

DA1 – это стабилизатор напряжения L7805. В качестве основы можно использовать целый ряд avr микросхем, которые вы найдете, например, серии, arduino atmega32 или собрать arduino atmega16. Для этого нужно использовать разные загрузчики, но для каждого из МК нужно найти свой.

Можно поступить еще проще, и собрать всё на беспаечной макетной плате, как это показано здесь, на примере 328-й атмеги.

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


Давайте же приступим!

Шаг 1.Введение.


Вопросы,как и что сделать,а вообще зачем оно мне?

После серфа по тоннам информации об Arduino…от изготовления светодиодного кубика,до создания «Умного дома»,до изготовления летающих дронов…
вы,как и я,лихорадочно начали искать более-менее приемлимую инфу об изготовлении этой всемогущей платы.
«Черт возьми,хочу такую!» или «Я хочу сделать это.Прямо сейчас.»И в голове крутятся все возможные применения этого устройства,
руки сами начинают искать детали для платы,заходите в интернет,а там:
АРДУИНО.Всего за 25$.
И все.
Все комбинации выпали из головы.
Безнадега.
Не знаете,как жить дальше.
И тут вы натыкаетесь на этот сайт!
Вы спасены!
Ведь именно сейчас мы с вами соберем ARDUINO-совместимую плату за 15 минут и всего за примерно 300 рублей!

Шаг 2.Приобретите это немедля!


Вам необходимы эти компоненты:
-Макетная плата
-ATMega 328(примечание переводчика: можно использовать также ATMega 8,168)
-Готовая плата Arduino(*и снова переводчик-вместо ардуины можно использовать любой программатор,хоть «5 проводков»)
-1 резонатор на 16мГц
-3 резистора на 100Ом
-1 резистор на 10кОм
-2 конденсатора на 22pF
-3 светодиода(красный,желтый и зеленый)
-1 батарея типа»Крона»(9 вольт) с ответной частью
-USB-кабель
-1 стабилизатор напряжения «КРЕНка»
-Компьютер,ноутбук с установленной Arduino IDE.
И все.

Шаг 3.Начало сборки.


Возьмите макетку и закрепите микроконтроллер так,чтобы его ножки не были замкнуты(он должен стоять над «канавкой»)

Шаг 4.Подключение КРЕНки.

Поместите КРЕНку на макетку рядом с МК.
Распиновка КРЕНки:
-VCC(питание снаружи)
-GND(Земля.Общий контакт)
-Output(Выход)
Подсоедините черный провод к GND.Соедините его другой конец с шиной «GND» на макетке.
VCC подключите к шине питания+ на макетке.
И Output киньте туда,где будет питание чипа.

Шаг 5.Проводим питание к МК.


Хорошенько изучите распиновку АТМеги.
Соедините Output КРЕНки и GND макетки соответственно с Output(7 и 20 пин) и GND(8 и 22 пин) МК.

Шаг 6.Добавим точности.



Подключите конденсатор на 22pF между GND и 9 пином АТМеги.
И второй конденсатор между 10 пином АТМеги и,опять же,землей.
Добавьте резистор на 10кОм между 5v и RESET(1 пин).

Шаг 7.Добавляем светодиоды.

Воткните провод в любое место платы.
Подключите резистор 100Ом к одному из концов провода(см.картинку)
Длинную ножку диода (+) желтого диода подсоедините к другому концу резистора.
Короткую ножку(-) подключите к земле.
Повторите для красного и зеленого диодов.

Шаг 8.Подключаем все это к ARDUINO.
Далеко зашли мы,однако!

Подключите желтый диод к 9 пину Arduino.
Желтый диод отображает работу программатора.
Подключите красный диод к 8 пину Ардуины.
Он загорается,если что-то пошло не так.
И зеленый диод подключите к 7 пину.
Он показывает статус заливки bootloader’а.
Подсоедините 4 провода(на картинке-3 желтых и зеленый) к пинам АТМеги на макетке(см.рисунок).
А затем эти провода к 10-13 пинам Ардуино.
Не забудьте соединить 5 и GND Ардуины и макетки!

Шаг 9.Программирование.
Фух,добрались и до заливки бутлоадера.
Как,спросите вы?
АК вот так!
1)Запустите Arduino IDE.
2)Выберите Файл-Примеры-Arduino ISP.
3)Скомпилируйте скетч и залейте его в Ардуину.
После заливки скетча Вы увидите,что желтый диод начал мигать.
Теперь добавьте резистор на 100 Ом между землей и Reset Ардуины.

Шаг 10.Собственно заливка загрузчика.


В Arduino IDE выберите:
Tools-Board-Arduino Duemilkanove with AtMega 328(* Если вы используете не АТМегу 328,найдите в списке модель с тем контроллером,который установлен у вас)
Tools-Programmer-Arduino as ISP.
И снова в меню Tools.Зайдите и нажмитье «Burn Bootloader»
Прошивка начнется(займет около минуты)
На экране появится надпеись «Done Burning Bootloader»

Если что-то пойдет не так,загорится красный диод,то не получилось.Обращайтесь в личку или на [email protected] .
Вуаля!У вас есть свой Ардуино!
Счастливой работы!

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

Итак, дорогие читатели, представляю вашему вниманию нашу версию клона Ардуино. Встречайте Paduino FT232RL

Как уже говорилось выше, плата имеет недостаток - лишена возможности питания от юсби порта. Однако, благодаря использованию микросхемы FT232RL, на плате присутствует выход 3.3В. Также к доп. функционалу хочется отнести наличие джампера автоматической загрузки (ENABLE), а также джампера (JP LED13), позволяющего отключить не всегда используемый светодиод подключенный к пину под номером 13.

Также, вдобавок к уже имеющемуся выходу Vin на Arduino, был добавлен выход VTG INPUT . На мой взгляд, стандартный вывод Vin имеет ряд недостатков, хотя с другой стороны плюсов. К недостаткам можно отнести потерю напряжения на диоде (0.6-0.8 вольта), также при запитывании Arduino не от разъема питания, а непосредственно от гребенок мы теряем защиту от переполюсовки т.к. выход Vin на схеме расположен после защитного диода. На выводе VTG INPUT мы же всегда имеем напряжение равное входному без каких либо потерь, а также при запитывании Arduino через гребенки функционал защиты от переполюсовки сохраняется т.к. на схеме выход расположен перед защитным диодом. К достоинствам вывода Vin можно отнести то, что при правильно поданном питании на нем всегда будет плюс, в противном же не будет ничего, в то время как на VTG INPUT либо минус либо плюс.

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

Так, как ФТшка в данной сборке использует только землю и сигнальные линии USB порта, то, полистав даташит, повесим на неё обвязку в следующей конфигурации:

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

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

Приставляем Фтшку к плате, отцентровываем, смачиваем ножки флюсом, берем на жало паяльника припой в очень малом количестве, и быстро проходимся по каждой ножке. Если вы в пайке новичок, и еще не научились паять быстро, в одно касание, советую делать интервал в 10-15 секунд после каждой ножки.

Что касается размеров, то Paduino выходит не на много больше оригинальной Arduino.

Все, с изготовлением разобрались. Для работы в среде Arduino в память контроллера осталось лишь залить bootloader .

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

Для начала необходимо скачать среду Arduino. Скачать последнюю версию можно на сайте производителя .

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

Если при подключении драйвер на FT232RL не уcтановился в автоматическом режиме, тогда скачаваем драйвер на свою ОС с сайта производителя FTDI.

В комментариях к статье, человек указал на возможность конфликта новых драйверов на FT232RL с сайта производителя. В связи с этим лучше установить драйвер из среды Arduino IDE (arduino-1.0.5-windows\arduino-1.0.5\drivers\FTDI USB Drivers)

Открываем скачанную идешку и выбираем плату. Плата будет отображаться как Arduino NG or older w/ATmega 8 при использовании контроллера ATmega 8, либо как Arduino NG or older w/ATmega 168 при использовании ATmega168.

Затем выбираем COMport к которому подключена плата. У меня кабель определился под девятым номером.

Для проверки работоспособности зальем в контроллер тестовую программку-мигалку, выполнив следующие действия

После успешной загрузки вы должны увидеть следующее

Если все заработало, то поздравляю вас. Вы собственноручно собрали полноценный клон USB Arduino.

В архиве лежит шаблон под ЛУТ и список деталей.

Открываем изображение => Печать => Во всю страницу

Для облегчения распайки smd компонентов с обратной стороны платы, где нет маркировки, приведу картинку.

Хочется отметить, что на smd конденсаторах нет маркировки номиналов, но для облегчения распайки на картинке я их нанес. 104 - 0,1 мкФ, 22 - 22пФ.