Главная » Arduino
Призовой фонд
на сентябрь 2018 г.
1. 1000 руб.
Neru5
2. Регулируемый паяльник 60 Вт
Паяльник
3. 200 руб.
От пользователей

Arduino Pro Mini и UniProf

В китайском интернет-магазине AliExpress была куплена отладочная плата с микроконтроллером ATmega328P, совместимая с Arduino Pro Mini и рассмотренная в предыдущей статье. В статье была показана распаковка, комплектация и быстрая проверка работоспособности. Было приведено краткое описание и основные отличия от оригинальной отладочной платы. Предыдущую статью вы можете посмотреть по ссылке.

http://cxem.net/arduino/arduino233.php

Если кто не знаком с данным вариантом отладочной платы, то рекомендую прочитать предыдущую статью, а в этой же статье я подробно опишу как использовать отладочную плату Arduino Pro Mini без BootLoader-а и как работать с ней без использования среды разработки Arduino IDE. Так же покажу Мой вариант простейшего самодельного COM-ISP программатора для прошивки микроконтроллеров AVR и отладочных плат на их основе.

Отладочная плата Arduino Pro Mini представляет из себя печатную плату с установленным микроконтроллером Atmega328P и минимально необходимой обвязкой для него. В отличие от обычного, отдельно купленного микроконтроллера Atmega328P, в установленный на Arduino Pro Mini микроконтроллер загружена небольшая программа, которая называется BootLoader. Эта программа производит самопрограммирование микроконтроллера во время нажатия кнопки "Upload" в среде Arduino IDE и производит коммуникацию со средой разработки по интерфейсу UART через выводы 0 (RX) и 1 (TX) отладочной платы. 

На самом деле это весьма удобно, когда преобразователь интерфейса USB-UART установлен на самой отладочной плате, как например в случае с платами Arduino UNO или Arduino Nano. Но рассматриваемая в данной статье отладочная плата выбрана не случайно, так как в своём составе она не имеет указанного преобразователя интерфейса, и для её программирования в любом случае придётся подключать отдельный программатор, будь то преобразователь USB-UART, или другой. Существует ещё несколько разновидностей отладочных плат Arduino без преобразователя интерфейса, и описываемый здесь способ применим и к ним.

Считывать и записывать программы мы будем по интерфейсу внутрисхемного программирования ISP, для которого стандартно отведено шесть выводов, и на отладочной плате Arduino Pro Mini это выводы:

  • 11 - MOSI, 
  • 12 - MISO, 
  • 13 - SCK,
  • RST - сброс,
  • VCC - стабилизированное напряжение питания +5 В,
  • GND - общий провод,

Это стандартные выводы шины внутрисхемного программирования ISP, имеющейся у большинства микроконтроллеров AVR, и по этой шине можно записывать/считывать программу и FUSE-биты в/с микроконтроллер. Для данного интерфейса существует распространённый разъём с шестью или десятью контактами:

Распиновка разъёма внутрисхемного программирования

Что же Нам даёт программирование по шине ISP? Оно имеет как преимущества, так и недостатки, и один из недостатков, это использование на два провода больше, чем в случае с UART. Зато появляется возможность напрямую работать с памятью микроконтроллера и загружать уже скомпилированные программы сторонними средствами. Больше нет необходимости в BootLoader-е и удалив его освобождается 2 Кбайт пространства в области программной памяти. Так же можно считывать программы из памяти микроконтроллера и менять его настройки с помощью установки нестандартных FUSE-бит. Простыми словами после удаления программы-загрузчика микроконтроллер перестаёт быть привязанным к среде разработки Arduino IDE.

COM-ISP программатор

Для начала представляю Вашему вниманию схему и фотографии применённого здесь простейшего COM-ISP программатора. Он очень распространён и весьма популярен, так как не содержит дефицитных радиоэлементов и прост в изготовлении. Единственное условие для его использования - это наличие COM-порта на Вашем компьютере. Программатор состоит из нескольких диодов и резисторов с добавленным мною фильтром питания прошиваемого микроконтроллера на дросселе и конденсаторе:

Схема COM-ISP программатора для AVR

Для питания программируемого микроконтроллера используется USB-кабель, а дроссель фильтра питания можно установить с индуктивностью 0,2-0,5 mH, или же совсем отказаться от него. Цвета выводов программатора на схеме обозначены в соответствии с моим вариантом сборки, в Вашем же случае эти цвета могут отличатся и быть по Вашему усмотрению. Сборка выполнена навесным монтажом на выводах COM-порта и полностью умещается в его корпусе:

COM-ISP программатор для AVR

COM-ISP программатор для AVR

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

COM-ISP программатор для AVR

COM-ISP программатор для AVR

В интернете можно найти много разновидностей данного программатора, и как и все остальные, мой вариант при испытаниях показал простоту использования и надёжность. Главное правило при этом - не использовать слишком длинные проводники от самого программатора до микроконтроллера - их рекомендуемая длина составляет до 15 см.

Добавление программатора в среду разработки

Перейдём к Нашей отладочной плате и немного доработаем среду разработки Arduino IDE под себя. Во время доработки была установлена и использовалась среда разработки Arduino IDE версии 1.8.2. В других версиях могут быть отличия.

По умолчанию программатора COM-ISP нет в списке программаторов Arduino IDE, и его поддержку нужно добавить в конфигурационный файл, а точнее нужно будет прописать его в двух файлах Arduino IDE. Путь первого файла \hardware\arduino\avr\programmers.txt считая от корневого каталога, где установлена и находится Arduino IDE, а второго \hardware\tools\avr\etc\avrdude.conf

\hardware\arduino\avr\programmers.txt

 

\hardware\tools\avr\etc\avrdude.conf

 

Здесь и в дальнейшем все изменения в конфигурационных файлах нужно производить редактором, корректно отображающим переход строки, таким как например Notepad++​. Представляю Вам шаблоны для добавления программатора. В текстовом документе "programmers.txt" в самом начале нужно прописать следующие строки:

andro.name=AndroCOM
andro.communication=serial
andro.protocol=andro
andro.program.protocol=andro
andro.program.tool=avrdude
andro.program.extra_params=-P{serial.port}

 

 В файле же "avrdude.conf" до программатора "avrisp" нужно будет добавить вот такую запись:

programmer
  id    = "andro";
  desc  = "Andro COM programmer, reset=4 sck=7 mosi=3 miso=8";
  type  = "serbb";
  connection_type = serial;
  reset = 4;
  sck   = 7;
  mosi  = 3;
  miso  = 8;
;

Всё это должно выглядеть следующим образом:

programmers.txt

avrdude.conf

На моём примере я показал, как можно добавить простой самодельный COM-ISP программатор в среду Arduino IDE, а Вы, изменяя параметры можете добавить программатор по своему усмотрению. После запуска среды программатор должен появиться на вкладке "Tools" в пункте "Programmer":

Добавленный программатор

 

Добавление поддержки платы без загрузчика

Так как в дальнейшем планируется всегда программировать рассматриваемую здесь плату через интерфейс ISP, то настало время избавится от программы-загрузчика в памяти микроконтроллера, которая позволяет загружать рабочие программы через последовательный интерфейс UART, и добавить поддержку отладочной платы Arduino Pro Mini без bootloader-а в среду разработки Arduino IDE. Для этого нужно отредактировать текстовый документ с описанием поддерживаемых отладочных плат и добавить в него запись с характеристиками нашей платы и указать необходимые FUSE-биты. Текстовый документ с описанием поддерживаемых отладочных плат находится по пути \hardware\arduino\avr\boards.txt считая от корневого каталога среды разработки Arduino IDE:

\hardware\arduino\avr\boards.txt

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

## Arduino Pro or Pro Mini (5V, 16 MHz no boot) w/ ATmega328
## -------------------------------------------------
pro.menu.cpu.16MHzatmega328nb=ATmega328 (5V, 16 MHz no boot)

pro.menu.cpu.16MHzatmega328nb.upload.maximum_size=32768
pro.menu.cpu.16MHzatmega328nb.upload.maximum_data_size=2048
pro.menu.cpu.16MHzatmega328nb.upload.speed=9600

pro.menu.cpu.16MHzatmega328nb.bootloader.low_fuses=0xFF
pro.menu.cpu.16MHzatmega328nb.bootloader.high_fuses=0xD9
pro.menu.cpu.16MHzatmega328nb.bootloader.extended_fuses=0xFD

pro.menu.cpu.16MHzatmega328nb.build.mcu=atmega328p
pro.menu.cpu.16MHzatmega328nb.build.f_cpu=16000000L

Поясню что изменилось по сравнению с такой же платой с загрузчиком и что означают эти строки:

  • Указывание максимальной используемой памяти микроконтроллера в 32 кБайт;
  • Значение high-fuses 0xD9 или же, что то же самое 11011001 в двоичной системе.

Эти FUSE-биты устанавливаются в микроконтроллере при нажатии на вкладке "Tools" пункта "Burn Bootloader" и указывают микроконтроллеру не выделять место в памяти для программы-загрузчика и отключают переход к загрузчику после сброса. Запись надо добавить в том месте, где находится описание параметров "Arduino Pro or Pro Mini" и она должна выглядеть следующим образом:

boards.txt

После успешного добавления и сохранения изменений, при запуске Arduino IDE, на вкладке "Tools", при выбранной плате "Arduino Pro or Pro Mini", в пункте "Processor" должен появится вариант "ATmega328 (5V, 16 MHz no boot)". Для работы с отладочной платой без использования программы-загрузчика нужно выбрать именно этот вариант:

ATmega328 (5V, 16 MHz no boot)

Прежде чем начать работать с платой без загрузчика и программировать её, нужно установить конфигурационные FUSE-биты в микроконтроллере. Так как с помощью Arduino IDE установка FUSE-бит происходит во время загрузки bootloader-а, то после выбора добавленной нами платы нужно нажать на пункт "Burn Bootloader" как описывалось ранее. Запись программы-загрузчика в этом случае не произойдёт, но будут запрограммированы необходимые FUSE-биты. Для этого нужно соединить программатор с отладочной платой по приведённой выше распиновке шины внутрисхемного программирования ISP и подключив программатор к COM-порту компьютера и подав питание через USB-кабель произвести вышеуказанные действия:

Соединение самодельного программатора с отладочной платой

Соединение самодельного программатора с отладочной платой

Соединение самодельного программатора с COM-портом

Соединение самодельного программатора с COM-портом

Так как в добавленном нами варианте платы без загрузчика мы не указали путь к HEX-файлу bootloader-а, то в среде Arduino IDE при нажатии на пункт "Burn Bootloader" произойдёт запись только FUSE-бит и будет выдана ошибка, что не найден файл bootloader-а:

Не найден файл бутлоадера

Arduino: 1.8.2 (Windows), Board: "Arduino Pro or Pro Mini, ATmega328 (5V, 16 MHz no boot)"

avrdude: can't open input file C:\arduino-1.8.2\hardware\arduino\avr/bootloaders/{bootloader.file}: No such file or directory
avrdude: read from file 'C:\arduino-1.8.2\hardware\arduino\avr/bootloaders/{bootloader.file}' failed
Error while burning bootloader.

Это не критично, и если Вы дошли до этого этапа и у Вас точно такая же ошибка, значит необходимые FUSE-биты установились и можно приступить к дальнейшему использованию платы. Вы можете писать и компилировать программы в Arduino IDE и загружать их с помощью ISP-программатора, полностью используя всю память микроконтроллера под свои нужды. Получается выигрыш в 2 кБ, и это не так уж и много, но тем, кто постоянно работает с внутрисхемным программированием или производит запись HEX-файлов сторонними программами bootloader просто не нужен.

Для достоверности и полной убеждённости в работоспособности платы после таких манипуляций, в микроконтроллер была загружена программа из стандартного примера Arduino IDE, мигающая светодиодом без функции "Delay"

Мигание светодиодом без функции delay

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

Мигание светодиодом с периодом 4 секунды

Убедившись в работоспособности и корректной отработке временных интервалов с данным способом загрузки самодельным программатором в микроконтроллер без bootloader-а, далее была проверена работа программы из предыдущей статьи, в которой описывалась сама отладочная плата. Указанная программа по сигналу с датчика препятствия на определённое время плавно включает освещение, и ещё более плавно выключает его по истечению заданного периода. При загрузке программ нестандартным программатором в микроконтроллер без программы-загрузчика нужно не забывать указывать подключённый программатор и производить загрузку через него из вкладки "Sketch"  выбрав опцию "Upload Using Programmer". Компилирование и загрузка с применёнными настройками прошли успешно и упомянутая ранее программа загрузилась в память микроконтроллера:

Загрузка программы в микроконтроллер без bootloader-а

Работа с отладочной платой через Uniprof

Так же для загрузки скомпилированных HEX-файлов в микроконтроллер можно воспользоваться описанным здесь самодельным COM-ISP программатором и программой Uniprof, но по умолчанию она не поддерживает микроконтроллер Atmega328, так как его подписи и данных нет в каталоге подписей микроконтроллеров программы Uniprof. Для того, что бы Uniprof опознала Atmega328 и могла работать с ним, нужно создать текстовый документ в директории "SIGNATURES" с названием микроконтроллера и прописать в нём необходимую информацию, включая подпись микроконтроллера, адреса памяти и поддерживаемые FUSE-биты:

;                  Atmega328
;
; 				(c)Andro Feb-2018
;--------------
$95
$14
$7FFF
$3FF
64
	[o]
;-- LOCK --
LB1(1)
LB2(1)
BLB01(1)
BLB02(1)
BLB11(1)
BLB12(1)
-
-
;       FUSE 
CKSEL0(0)
CKSEL1(1)
CKSEL2(0)
CKSEL3(0)
SUT0(0)
SUT1(1)
CKOUT(1)
CKDIV8(0)
; ----------fuse high
BOOTRST(1)
BOOTSZ0(0)
BOOTSZ1(0)
EESAVE(1)
WDTON(1)
SPIEN(0)
DWEN(1)
RSTDISBL(1)
; ----------fuse ext
BODLEVEL0(1)
BODLEVEL1(1)
BODLEVEL2(1)
-
-
-
-
-

 

;                  Atmega328P
;
; 				(c)Andro Feb-2018
;--------------
$95
$0F
$7FFF
$3FF
64
	[o]
;-- LOCK --
LB1(1)
LB2(1)
BLB01(1)
BLB02(1)
BLB11(1)
BLB12(1)
-
-
;       FUSE 
CKSEL0(0)
CKSEL1(1)
CKSEL2(0)
CKSEL3(0)
SUT0(0)
SUT1(1)
CKOUT(1)
CKDIV8(0)
; ----------fuse high
BOOTRST(1)
BOOTSZ0(0)
BOOTSZ1(0)
EESAVE(1)
WDTON(1)
SPIEN(0)
DWEN(1)
RSTDISBL(1)
; ----------fuse ext
BODLEVEL0(1)
BODLEVEL1(1)
BODLEVEL2(1)
-
-
-
-
-

Я создал и заархивировал два текстовых документа для микроконтроллеров Atmega328 и Atmega328P, и распаковав эти файлы в папку "SIGNATURES" программы Uniprof Вы сможете добавить поддержку указанных микроконтроллеров в программу:

Каталог подписей программы Uniprof

Данные файлы вы можете скачать по ссылкам в конце статьи

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

mega328p в программе Uniprof

С этого момента Я подробно, с иллюстрациями, опишу как пользоваться программой Uniprof для чтения и записи программ и FUSE-бит микроконтроллера. Так же Я покажу как скомпилировать и загрузить программу, написанную в среде Arduino IDE, используя самодельный COM-ISP программатор и программу Uniprof.

Программа Uniprof является превосходным инструментом для работы с микроконтроллерами AVR. Она имеет простой и понятный дружелюбный вид, очень удобна и умеет считывать и записывать FUSE-биты, считывать программную память и область EEPROM микроконтроллера, и сохранять считанные данные в файл, а так же записывать данные из файла в микроконтроллер. Имеется функция сравнения данных в памяти микроконтроллера с данными в файле и функция "Торомоз" для работы с низкоскоростными микроконтроллерами.

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

После запуска программы Uniprof и опознавания ею микроконтроллера, для работы с FUSE-битами нужно нажать кнопку "FUSE" на панели инструментов. Перед этим действием рекомендуется установить галочку "Торомоз" для избежания ошибок чтения/записи:

FUSE в программе Uniprof

После нажатия на кнопку "FUSE" откроется небольшое окно с четырьмя колонками с перечнем поддерживаемых данным микроконтроллером FUSE-бит. Нажав в нужной колонке кнопку "Read" можно считать данные, записанные в соответствующей ячейке, и установив необходимые значения, записать их в микроконтроллер нажатием на кнопку "Write" :

Чтение/Запись FUSE-бит

Для считывания памяти программ микроконтроллера нужно нажать кнопку "Read" на панели инструментов программы Uniprof с установленной галочкой "PROGRAM" :

Считывание памяти программ

Далее начнётся процесс считывания данных, прогресс которого отображается в самой нижней части программы:

Процесс считывания данных

После успешного завершения, содержание ячеек памяти программ отобразится в таблице слева:

Отображение содержимого ячеек памяти программ

Содержимое памяти микроконтроллера можно сохранить в файл для дальнейшего его использования. Для этого, с установленной галочкой "HEX", нужно нажать на кнопку "HEX" в панели инструментов, и указав расположение сохраняемого файла и задав его имя, сохранить файл на компьютере:

Сохранение данных в файл

Кроме считывания данных с памяти микроконтроллера и сохранения их в файл можно так же загрузить данные из файла в память микроконтроллера. Так где же взять файл с готовой рабочей программой для загрузки в микроконтроллер? Можно использовать файл со считанными данными из другого микроконтроллера, при условии, что микроконтроллеры абсолютно одинаковые и работают с одинаковыми настройками. Или же взять скомпилированный файл из какой-нибудь среды разработки. Далее я покажу как можно скомпилировать и загрузить программу из среды разработки Arduino IDE с помощью Uniprof.

Среда разработки Arduino IDE позволяет осуществить быстрый старт по программированию микроконтроллеров AVR не углубляясь в знания языка программирования Си или Ассемблера. Существует много надёжных форумов, посвящённых Arduino, где можно найти готовые исходные коды (скетчи) на любой вкус. В среде разработки Arduino IDE можно легко скомпилировать программу в HEX-файл, а потом уже забрав его куда угодно, можно загрузить в соответствующий микроконтроллер любым удобным и возможным способом.

Для этого в среде разработки, открыв исходный текст программы и выбрав отладочную плату с соответствующим микроконтроллером, на вкладке "Sketch" нужно нажать на пункт "Export compiled Binary" или на сочетание горячих клавиш "Ctrl+Alt+S"

Экспорт HEX-файла

После указанных действий начнётся компилирование HEX-файла программы, который в случае успешного завершения будет сохранён в каталог со скетчем:

Экспорт HEX-файла

В дальнейшем для записи программы в микроконтроллер не понадобится среда разработки Arduino IDE и компилирование исходного текста. Готовый HEX-файл можно отправить тому, у кого совсем нет среды разработки, но есть возможность записи программы в микроконтроллер, например с помощью UniProf. Прежде чем записать новую программу в кристалл, его предварительно нужно очистить. Для этого в Uniprof на панели инструментов надо нажать на кнопку с красной надписью "Erase"

Кнопка "Стирание" в программе Uniprof

Так как после совершения данного действия будет произведено стирание памяти микроконтроллера, то вслед за нажатием на кнопку "Erase" будет сделан запрос на подтверждение данного действия:

Подтверждение запроса на стирание памяти микроконтроллера

После подтверждения на стирание памяти микроконтроллера произойдёт очистка кристалла и будет выдано сообщение о готовности:

Стирание памяти микроконтроллера

Теперь уже можно произвести запись новой программы в чистый микроконтроллер, для чего надо открыть HEX-файл с кодом программы нажатием на кнопку "HEX" в панели инструментов:

Открывание HEX-файла

После выбора и открывания HEX-файла таблица слева заполнится содержанием его кода, которым теперь можно заполнить ячейки памяти микроконтроллера нажатием на кнопку "Prog" в панели инструментов:

Открытый HEX-файл в программе Uniprof

Как записать программу в микроконтроллер

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

Процесс записи исполняемого кода в память микроконтроллера

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

FUSE-биты в программе UniProf

Если на каком-то этапе работы с микроконтроллером необходимо сравнить записанные в него данные с данными из исходного файла, то в программе Uniprof следует открыть файл с исполняемым кодом и на панели инструментов нажать на кнопку "Test". После этого начнётся считывание данных с кристалла и сравнение содержимого ячеек памяти с таблицей:

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

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

При завершении считывания памяти микроконтроллера будет выдано сообщение, в котором, при совпадении данных с кристалла и HEX-файла, будет указано, что содержание обеих источников идентично:

Совпадение содержимого памяти микроконтроллера с данными исходного файла

На этом программирование микроконтроллера Atmega328P без надобности butloader-а, установленного на отладочную плату Arduino Pro Mini, осуществляемое использованием среды разработки Arduino IDE и/или программы UniProf, подошло к концу. В другой статье будет показан подобный способ программирования микроконтроллера Atmega88, установленного на плате от использованного и отслужившего свой срок устройства, рассмотренного в статье по ссылке.

Так же в другой статье был рассмотрен светодиодный драйвер с возможностью диммирования. А так как используемый здесь исполняемый код предназначен для управления освещением с задействованием ШИМ, то для проверки, упомянутый светодиодный драйвер вместе с мощным светодиодом был подключен к, запрограммированной описанным методом, отладочной плате выводом "Dim" для управления яркостью светодиода:

Подключение светодиодного драйвера к отладочной плате

Подключение светодиодного драйвера к отладочной плате

Подключение светодиодного драйвера выводом "Dim"

Подключение светодиодного драйвера выводом "Dim"

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

Подключение светодиодного драйвера к отладочной плате

Свечение светодиода

Подключение светодиодного драйвера к отладочной плате

Подключение светодиодного драйвера к отладочной плате

Свечение светодиода

Проверив работоспособность описанного в статье метода на практике и наглядно показав пример работы запрограммированного данным способом микроконтроллера, тему статьи можно считать исчерпанной. Если Вы не читали предыдущие статьи, то настоятельно рекомендую хотя бы мельком просмотреть их, так как там подробно описаны отладочная плата Arduino Pro Mini с программой управления освещением и модуль светодиодного драйвера со сверхъярким светодиодом белого свечения.

Ссылки на связанные статьи:

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

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Список радиоэлементов для сборки COM-ISP программатора
USB РазъёмUSB Type A male1 для подачи питанияПоиск в Utsource В блокнот
COM РазъёмDB9 female1 подключение к COM-портуПоиск в Utsource В блокнот
ISP РазъёмDupont Wire Female Pin6 подключение к микроконтроллеруПоиск в Utsource В блокнот
1N4148 Выпрямительный диод
1N4148
3 высокочастотный диодПоиск в Utsource В блокнот
1k Резистор
1 кОм
3 Поиск в Utsource В блокнот
1.8k Резистор
1.8 кОм
3 Поиск в Utsource В блокнот
510 Резистор
0.51 кОм
1 Поиск в Utsource В блокнот
100 Электролитический конденсатор100 мкФ1 фильтр питанияПоиск в Utsource В блокнот
0.27 mH Дроссель0.27mH1 фильтр питанияПоиск в Utsource В блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (7) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
0
NStorm #
2018 год на дворе. Atmega, COM порт, Uniprof... зачем всё это сейчас? COM порты почти ушли, а USBAsp стоит доллар у китайцев...
Ответить
+1
Smelter2 #
И не говорите: на всех современных материских платах COM присутствует, почти все цифровые устройства RS-232 умеют: начиная от контроллеров последних моделей накопителей HDD, всевозможных ИБП и заканчивая любым сетевым оборудованием от домашних роутеров, до серъёзных коммутаторов. Ну и "по мелочам" типа АТС любых операторов связи, спутниковое оборудование и т.д. и т.п.
Боюсь COM переживёт ваших правнуков. А так, да - "почти ушли" :-)
Отредактирован 17.08.2018 23:26
Ответить
0
N1! #
Шел 2018 год, прошиваю pro mini другой дуиной (mega2560), 2+2 провода , выставляю в среде arduino nano , ставлю перемычку gnd-rst на Меге и нажимаю ресет на pro mini во время прошивки.
Но вам видимо нравятся извращения.
Ответить
+1

[Автор]
andro #
Я наверное плохо объяснил для чего это всё, но думаю кому нужно, тот поймёт. А на счёт COM-портов замечу, что недавно был куплен современный компъютер с указанным разъёмом, а так же у всех современных телевизоров, ресиверов и многих других устройств имеется COM-порт и возможность программирования и управления через него.
Ответить
+1
Starik #
Уважаемый andro! Большое спасибо за Вашу публикацию. Давно хотел попробовать программировать "mini", но смутно представлял подключение этих модулей к компьютеру. Вы рассказали об одном из вариантов решения данной проблемы и тем расширили мой кругозор. COM-порт у моего компьютера имеется. Хорошо Вы пишете - подробно и понятно. Пишите ещё...
Ответить
+1

[Автор]
andro #
Глубоко признателен Вам за отзыв, и буду рад, если мои старания кому то помогут. У меня была Arduino UNO, но потом специально была куплена Pro Mini для большей гибкости в использовании. Это может понадобится там, где нужен "чистый" микроконтроллер с минимальной обвязкой. Ещё раз благодарю, такие люди как Вы вселяют надежду и дают стимул. Удачи Вам с подключением!
Отредактирован 20.08.2018 09:56
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Модуль измерения тока на ACS712 (30А)
Модуль измерения тока на ACS712 (30А)
Конструктор регулируемого преобразователя напряжения LM317 Конструктор - Гитарная педаль Remote Delay 2.5
вверх