Оглавление
- Программирование для платы Uno
- Описание платы
- Arduino Pro Mini ATmega328 3.3V/8MHz 5V/16MHz
- Питание Arduino Pro и Arduino Pro Mini может получать питание: через кабель FTDI, от платы-конвертора, или от регулируемого источника питания 3.3 В или 5 В (зависит от модели платформы) через вывод Vcc, или от нерегулируемого источника через вывод RAW.Выводы питания:
- Память Микроконтроллер ATmega168 имеет: 32 кБ флеш-памяти для хранения кода программы (2 кБ используется для хранения загрузчика), 2 кБ ОЗУ и 1 кБ EEPROM Микроконтроллер ATmega328 имеет: 16 кБ флеш-памяти для хранения кода программы (2 кБ используется для хранения загрузчика), 1 кБ ОЗУ и 512 байт EEPROM
- Входы и Выходы Каждый из 14 цифровых выводов Pro, используя функции pinMode(), digitalWrite(), и digitalRead(), может настраиваться как вход или выход. Выводы работают при напряжении 3,3 В. Каждый вывод имеет нагрузочный резистор (стандартно отключен) 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:
- Существует дополнительный вывод на платформе:
- Примеры работы для Arduino
- Характеристики платы
- Arduino Mini
- Applications of Arduino Pro Mini
- Характеристики
- Прошивка arduino pro mini
- Прошивка WeMos, примеры скетчей
- Скетчи на ATtiny84
- Arduino Pro Mini ATmega168 3.3V/8MHz 5V/16MHz
- Подключение устройств
- A Comparison of the Characteristics of the Different Arduino Boards
- Как преодолеть аппаратные ограничения
- Заключение
Программирование для платы Uno
Для написания программ (скетчей) для контроллер Ардуино вам нужно установить среду программирования. Самым простым вариантом будет установка бесплатной Arduino IDE, скачать ее можно с официального сайта.
После установки IDE вам нужно убедиться, что выбрана нужная плата. Для этого у Arduino IDE в меню “Инструменты” и подпункте “Плата” следует выбрать нашу плату (Arduino/Genuino Uno). После выбора платы автоматически изменятся параметры сборки проекта и итоговый скетч будет скомпилирован в формат, который поддерживает плата. Подключив контроллер к компьютеру через USB, вы сможете в одно касание заливать на него вашу программу,используя команду “Загрузить”.
Сам скетч чаще всего представляет собой бесконечный цикл, в котором регулярно опрашиваются пины с присоединенными датчиками и с помощью специальных команд формируется управляющее воздействие на внешние устройства (они включаются или выключаются). У программиста Ардуино есть возможность подключить готовые библиотеки, как встроенные в IDE, так и доступные на многочисленных сайтах и форумах.
Написанная и скомпилированная программа загружается через USB-соединение (UART- Serial). Со стороны контролера за этот процесс отвечает bootloader.
Более подробную информацию о том, как устроены программы для платы Ардуино можно найти в нашем разделе, посвященном программированию.
Описание платы
Свойства arduino pro mini аналогичны, как и у платы Ардуино Уно и Нано. Их отличие заключается в невозможности прошить Pro Mini по USB-UART. Вместо этого для создания связи с компьютером используется проводник FTDI с преобразователем интерфейса или дополнительная плата Sparkfun. Также есть отличия по скорости, с которой работает чип. У arduino про мини скорость ниже, чем у Ардуино уно, но это практически не сказывается на проектах.
Работать с Ардуино про мини нужно аккуратно. Если пользователь сожжет чип, подав на него чрезмерное напряжение, его будет невозможно вытащить и заменить.
Разъемы не припаяны к платформе. Произвести подключение можно как через разъемы, так и навесным монтажом. Ножки можно припаять.
Существует 2 модели микроконтроллера arduino pro mini – на 3,3 В и 5 В. В первой используется тактовая частота 8 МГц, вторая работает на 16 МГц. Какая именно это модель, должно быть указано на корпусе.
Скетч в микроконтроллер традиционно записывается через среду разработки Arduino IDE. Для загрузки кода потребуются специальные переходники. Изначально продается с уже установленной прошивкой.
Технические характеристики микроконтроллера arduino pro mini:
- Рабочее напряжение 3,3 В и 5 В (в зависимости от модели);
- 14 пинов, 6 из которых используются как выводы ШИМ;
- Постоянный ток для входа и выхода 40 мА;
- Суммарный ток выводов – не более 200 мА;
- 16 Кб флэш памяти, 2 Кб используются для загрузчика;
- 1 Кб оперативной памяти;
- 512 байт eeprom;
- Тактовая частота – 8 МГц или 16 МГц в зависимости от модели;
- I2c интерфейс;
- Размеры платы 18х33 мм.
Питание можно подавать тремя способами:
- Через переходник FTDI;
- При подаче стабилизированного напряжения на контакт Vcc;
- При подаче напряжения на контакт RAW.
Какие проекты можно реализовать на базе Ардуино Про Мини:
Управляемые конструкции для квадрокоптера;
- Таймер;
- Устройство для анализа влажности почвы;
- Автоматический полив растений;
- Устройство для измерения осадков и скорости ветра;
- Автоматизация аквариума.
И многие другие проекты для дома и дачи.
Arduino Pro Mini ATmega328 3.3V/8MHz 5V/16MHz
Микроконтроллер | ATmega328P |
Рабочее напряжение | 3.3 В или 5 В (в зависимости от модели) |
Напряжение питания (рекомендуемое) | 3.35-12 В (модель 3.3 В) или 5-12 В (модель 5 В) |
Напряжение питания (предельное) | 3.35-20В |
Цифровые входы/выходы | 14 (6 из которых могут использоваться как выходы ШИМ) |
Аналоговые входы | 6 |
ШИМ (PWM) пины | 6 |
Постоянный ток через вход/выход | 40 мА |
Максимальный выходной ток вывода 3.3V | 50 мА |
Flash-память | 32 Кб из которых 2 Кб используются загрузчиком |
SRAM | 2 Кб |
EEPROM | 1 Кб |
Тактовая частота | 8 МГц (модель 3.3 В) или 16 МГц (модель 5 В) |
Встроенный светодиод | 13 |
Длина | 33.0 мм |
Ширина | 18.0 мм |
Вес | 5 г |
Питание
Arduino Pro и Arduino Pro Mini может получать питание: через кабель FTDI, от платы-конвертора, или от регулируемого источника питания 3.3 В или 5 В (зависит от модели платформы) через вывод Vcc, или от нерегулируемого источника через вывод RAW.Выводы питания:
Память
Микроконтроллер ATmega168 имеет: 32 кБ флеш-памяти для хранения кода программы (2 кБ используется для хранения загрузчика), 2 кБ ОЗУ и 1 кБ EEPROM
Микроконтроллер ATmega328 имеет: 16 кБ флеш-памяти для хранения кода программы (2 кБ используется для хранения загрузчика), 1 кБ ОЗУ и 512 байт EEPROM
Входы и Выходы
Каждый из 14 цифровых выводов Pro, используя функции pinMode(), digitalWrite(), и digitalRead(), может настраиваться как вход или выход. Выводы работают при напряжении 3,3 В. Каждый вывод имеет нагрузочный резистор (стандартно отключен) 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:
Существует дополнительный вывод на платформе:
Reset. Низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino.
Примеры работы для Arduino
В качестве примера подключим дисплей к управляющей плате Arduino Uno.
Подключение к Arduino
Для упрощения работы с LCD-дисплеем используйте встроенную библиотеку Liquid Crystal. В ней вы найдёте примеры кода с подробными комментариями.
Для вывода первой программы приветствия, воспользуйтесь кодом вроде этого:
Существует два способа вывода кириллицы на текстовые дисплеи:
Рассмотрим оба способа более подробно.
Таблица знакогенератора
Дисплейный модуль хранит в памяти две страницы знакогенератора, которые состоят из различных символов и букв.
Для вывода символа на дисплей необходимо передать его номер в шестнадцатеричной системе из таблицы знакогенератора.
Так букве Я соответствует код B1 в шестнадцатеричной системе. Чтобы передать на экран строку «Яndex», необходимо в явном виде с помощью последовательности \x## встроить в строку код символа:
Сравните две строки кода для вывода надписи «Яeee»:
Используя полученную информацию выведем на дисплей сообщение «Привет, Амперка!»:
Переключение страниц знакогенератора
Дисплейный модуль хранит в памяти две страницы знакогенератора. По умолчанию установлена нулевая страница. Для переключения между страницами используйте методы:
Дисплей не может одновременно отображать символы разных страниц.
Рассмотрим пример, в котором одна и та же строка будет отображаться по-разному — в зависимости от выбранной страницы.
Использование библиотеки LiquidCrystalRus
Совсем не обязательно мучатся со знакогенератором, чтобы вывести русский символ. Для решения проблемы скачайте и установите библиотеку LiquidCrystalRus.
Это копия оригинальной библиотеки LiquidCrystal с добавлением русского языка. Добавленный в библиотеку код трансформирует русские символы UTF8 в правильные коды для текстового экрана.
В качестве примера выведем фразу «Привет от Амперки» на дисплей.
Характеристики платы
Техническая сторона Arduino Pro Mini:
- рабочее напряжение, требуемое для нормальной работоспособности – 3,3 и 5 Вольт;
- напряжение, используемое при входе – 3-12 или 5-12 Вольт;
- количество цифровых входов и выходов – 14 штук, 6 из которых эксплуатируются как выходы ШИМ;
- состояние постоянного тока, требуемого для входа и выхода – 40 мА;
- flash-память – 16 Кб, но 2 Кб предназначены для загрузчика;
- оперативная память – 1 Кб;
- eeprom – 512 байт;
- частота тактов – в первой модели 8 МГц, а во второй 16 МГц;
- Arduino pro включает i2c-интерфейс.
Также стоит отдельно сказать про размеры платы — они, на самом деле очень скромные. Многие кто знакомятся с линейкой Ардуино в первый раз всегда удивляются размерам, когда достают контроллер из коробки.
Ниже вы можете оценить плату в дюймах и в сантиметрах.
Arduino Mini
Arduino Mini — вид спереди (без разъемов) | Arduino Mini — вид сзади |
Общие сведения
Arduino Mini — это маленькое микропроцессорное устройство, ориентированное на использование с макетными платами или в приложениях, предъявляющих высокие требования к габаритным размерам. Первоначально устройство было спроектировано на базе микроконтроллера ATmega168, который в настоящее время заменен на микроконтроллер ATmega328 (datasheet). В состав устройства входит: 14 цифровых входов/выходов (из которых 6 могут использоваться в качестве ШИМ-выходов), 8 аналоговых входов и кварцевый резонатор на 16 МГц. Arduino Mini можно прошить с помощью специального USB-Serial адаптера или любого другого преобразователя интерфейсов USB-Serial либо RS232-Serial с TTL-уровнями напряжения.
В новой версии Arduino Mini (R5) обновлена печатная плата под микроконтроллер ATmega328, благодаря чему все компоненты теперь расположены на лицевой стороне платы. Помимо этого, добавлена кнопка сброса. При этом в новой версии Ардуино Mini расположение выводов полностью аналогично предыдущей версии R4.
Внимание: напряжение питания Arduino Mini не должно превышать 9В или не должно быть отрицательным. При несоблюдении этого условия плата может выйти из строя
Характеристики
Микроконтроллер | ATmega328 |
Рабочее напряжение | 5В |
Напряжение питания | 7-9В |
Цифровые входы/выходы | 14 (из которых 6могут использоваться в качестве ШИМ-выходов) |
Аналоговые входы | 8 (4 из которых на внешних выводах) |
Максимальный ток одного вывода | 40 мА |
Flash-память | 32 КБ (из которых 2 КБ используются загрузчиком) |
SRAM | 2 КБ |
EEPROM | 1 КБ |
Тактовая частота | 16 МГц |
Программирование
Arduino Mini программируется с помощью программного обеспечения Ардуино (скачать). Для получения более подробной информации см. справку и примеры.
Для прошивки Arduino Mini можно использовать специальный USB-Serial адаптер или любой другой преобразователь интерфейсов USB-Serial либо RS232-Serial с TTL-уровнями напряжения. Инструкции по прошивке см. на странице «Начало работы с Arduino Mini».
ATmega328 в Arduino Mini выпускается с прошитым загрузчиком, позволяющим загружать в микроконтроллер новые программы без необходимости использования внешнего программатора. Взаимодействие с ним осуществляется по оригинальному протоколу STK500 (описание, заголовочные файлы C).
Тем не менее, микроконтроллер ATmega328 можно прошить и через разъем для внутрисхемного программирования ICSP (In-Circuit Serial Programming), не обращая внимания на загрузчик; информацию о распиновке разъема ICSP для прошивки Mini через загрузчик см. на соответствующей странице. Инструкции по использованию внешнего программатора для прошивки контроллера см. здесь.
Входы и выходы
Каждый из 14 цифровых выводов Arduino Mini может работать в качестве входа или выхода. Уровень напряжения на выводах ограничен 5В. Максимальный ток, который может отдавать или потреблять один вывод, составляет 40 мА. Все выводы сопряжены с внутренними подтягивающими резисторами (по умолчанию отключенными) номиналом 20-50 кОм. Выводы 3, 5, 6, 9, 10 и 11 могут выводить аналоговые величины в виде ШИМ-сигнала; для получения дополнительной информации об этом см. описание функции analogWrite(). Выводы 0 и 1 используются при подключении устройства к компьютеру через адаптер Mini USB (или похожий). Подключение к этим выводам каких-либо внешних цепей может приводить к нарушению USB-соединения с компьютером или препятствовать процессу загрузки в микроконтроллер новых программ.
В Arduino Mini есть 8 аналоговых входов, каждый из которых может представить аналоговое напряжение в виде 10-битного числа (1024 различных значения). Входы 0 — 3 выведены на внешний разъем платы; для подключения к входам 4 — 7 на плате предусмотрены отверстия и распаечные площадки. По умолчанию, измерение напряжения осуществляется относительно диапазона от 0 до 5 В. Однако, верхнюю границу этого диапазона можно изменить, используя вывод AREF и несколько низкоуровневых команд.
См. также соответствие выводов Arduino с выводами микроконтроллера ATmega168/328.
Расположение выводов
Примечание: распиновка выводов в Arduino Mini версий 03 и 04 отличается. Убедитесь, что вы используете схему, соответствующую вашей версии Ардуино.
Распиновка Arduino Mini 03. (совместима с более старыми версиями, за исключением отсутствующего разъема IO7 вверху платы)
Распиновка Arduino Mini 04 и 05
(Обратите внимание, что вывод GROUND на левой стороне платы сместился вниз на одну позицию)
Дополнительная информация
Для начала работы с Arduino Mini см. это руководство.
Дополнительную информацию об Arduino Mini можно найти в разделе Playground.
Applications of Arduino Pro Mini
There are many applications of Arduino Boards, but the small size and ease of use make Arduino Pro Mini stand out from others, especially where space requirement of the project is highly concerned.
- IoT applications.
- Embedded systems.
- Home automation.
- Display Systems.
That’s all for today. We always strive to give you quality work based on your needs and requirements. However, if you are unsure or have any question, you can approach me in the comment section below. I’d love to help you according to best of my knowledge. Keep your suggestions coming; they help us provide you best content so you keep coming back for what we have to offer. Thanks for reading the article.
Характеристики
Arduino Микроконтроллер ATmega32U4
- Архитектура: AVR
- Тактовая частота: 16 МГц
- Напряжение логических уровней: 5 В
- Портов ввода-вывода общего назначения: 20
- Максимальный ток с пина ввода-вывода: 20 мА
- Портов с поддержкой ШИМ: 6
- Портов, подключённых к АЦП: 6
- Разрядность АЦП: 10 бит
- Flash-память: 32 КБ
- EEPROM-память: 1 КБ
- Оперативная память: 2,5 КБ
Linux Микропроцессор Atheros AR9331
- Архитектура MIPS: 400 МГц
- Рабочее напряжение: 3,3 В
- Ethernet: IEEE 802.3 10/100 Мбит/сек
- Wi-Fi: IEEE 802.11b/g/n
- Оперативная память: 64 МБ DDR2
- Flash память: 16 МБ
Общие
- Входное напряжение питания: 5 В
- Максимальный выходной ток пина 3.3V: 50 мА
- Максимальный выходной ток пина 5V: 800 мА
- Габариты: 23×71 мм
Прошивка arduino pro mini
Прошивка arduino pro mini
Миниатюрные размеры платы не позволяют прошить ее без внешней помощи. Есть несколько способов заливки скетча в микроконтроллер:
- Через адаптер USB в TTL;
- Через Ардуино Уно;
- Через SPI интерфейс с помощью любой платы ардуино с разъемом для подключения к компьютеру.
Самым простым методом является первый.
Прошивка через адаптер USB в TTL
В продаже можно найти специальный адаптер – UART переходник. Видов таких переходников много, стоимость каждого изделия невысокая. Советуется приобретать переходники с контактами RST или DTR, они упрощают процесс прошивки.
Для прошивки нужно подключить адаптер в Ардуино: нужно соединить земли с одного и другого устройства, Vcc – на +5В или +3,3 В (в зависимости от модели), RX – TX, TX – RX. Затем конструкцию нужно подключить к компьютеру, установить драйвер и начать прошивку. Компьютер определит, к какому порту подключена плата. Драйвер можно скачать с официального сайта. Скачанный архив нужно распаковать и установить.
Затем нужно запустить среду разработки Adruino IDE, выбрать нужную плату и номер порта и загрузить микропрограмму. Это делается следующим образом:
- Нажать «Загрузить»;
- Затем начнется компиляция – появится надпись «Компиляция скетча»;
После появление надписи «Загружаем» нужно нажать на плате кнопку Reset (в переходниках с RST или DTR нажимать кнопку не нужно).
Важно! Нажатие на Reset должно быть кратковременным.
Скетч будет загружен в микроконтроллер. Об успешном окончании процедуры можно понять по мигающему светодиоду.
Прошивка через Ардуино Уно
Для прошивки потребуется классическая плата Ардуино Уно в DIP корпусе. На ней должен быть специальный разъем, из которого нужно вытащить аккуратно микроконтроллер
Важно делать все действия внимательно, чтобы не погнуть ножки процессора
Проводами нужно подключить arduino pro mini к разъему. Как подключить контакты – RX-RX, TX-TX, GND-GND, 5V-VCC, RST-RST.
После подключения можно начать стандартную загрузку скетча через Arduino IDE.
Прошивка через SPI интерфейс
Этот способ является самым неудобным и трудоемким. Прошивание платы производится в 2 этапа:
Прошивка микроконтроллера Ардуино Уно как ISP программатора;
Настройка среды разработки и загрузка кода в Arduino Pro Mini.
Алгоритм проведения первого этапа:
- Запуск среды разработки Arduino IDE;
- Открытие «Файл» – «Примеры» – «11. ArduinoISP» – «ArduinoISP»;
- Далее «Инструменты» – «Плата» – «Ардуино уно»;
- «Инструменты» – «Порт», и выбирается нужный номер COM порта;
- Далее нужно произвести компиляцию и загрузить код в Ардуино Уно.
Затем обе платы нужно соединить проводниками по приведенной схеме: 5V – VCC, GND – GND, MOSI (11) – MOSI (11), MISO (12) – MISO (12), SCK (13) – SCK (13).
Теперь нужно настроить Arduino IDE для Arduino Pro Mini. Это делается следующим образом:
«Инструменты» – «Плата» – выбор нужной платы Arduino Pro Mini;
- В том же меню выбирается «Процессор» – выбор соответствующего процессора с нужной тактовой частотой;
- Затем нужно установить порт, к которому подключена плата;
- «Инструменты» – «Программатор» – Arduino as ISP;
- Затем нужно загрузить скетч через программатор.
Важно отметить, что загрузка кода должна происходить через специальное меню «загрузить через программатор». Здесь можно запутаться, потому такой способ и неудобен
Загрузка обычным способом приведет тому, что код зальется в Ардуино Уно.
После проведенной загрузки перепрошить микроконтроллер через переходник больше не получится. Придется заливать новый bootloader через «записать загрузчик».
Если при каком-либо виде загрузки прошивки возникают проблемы, нужно проверить подключение платы.
Прошивка WeMos, примеры скетчей
Мигание светодиодами
Сам скетч выглядит следующим образом:
int inputPin = D4; // подключение кнопки в контактам D4 и GND. Можно выбрать любой пин на плате int val = 1; // включение/выключение хранения значения void setup() { pinMode(BUILTIN_LED, OUTPUT); // подключение светодиода, перевод в режим OUTPUT pinMode(inputPin, INPUT); // включение пина для входных данных } void loop() { val = digitalRead(inputPin); // чтение входных данных digitalWrite(BUILTIN_LED, val); // включение/выключение светодиода по нажатию кнопки }
Если все выполнено правильно, нужно нажать кнопку, и светодиод загорится. При повторном нажатии потухнет.
Для автоматического мигания светодиода интервалом в две секунды используется следующий код:
void setup() { pinMode(3, OUTPUT); // инициализация контакта GPIO3 с подключенным светодиодом } void loop() { digitalWrite(2, HIGH); // светодиод загорается delay(2000); // ожидание в течение двух секунд digitalWrite(2, LOW); // светодиод гаснет delay(2000); // ожидание в течение двух секунд }
WeMos и подключение к WiFi для передачи данных на удаленный сервер
В примере будет рассмотрен скетч для создания веб-сервера, благодаря которому можно управлять различными устройствами – лампами, реле, светодиодами и другими. Для работы нужно установить библиотеку ESP8266WiFi.
Фрагменты скетча:
const char* ssid = "****"; //требуется записать имя точки доступа, к которой будет произведено подключение const char* password = "****"; //введение пароля точки доступа, который должен содержать не менее восьми символов WiFiServer server(80); //создание сервера на 80 порту WiFi.begin(ssid, password); // подключение к заданной выше точке доступа, ее имя и пароль pinMode(3, OUTPUT); //присоединение к пину GPIO3 и земле while (WiFi.status() != WL_CONNECTED) //показывает статус подключения, WL_CONNECTED указывает на установку соединения; Serial.println(WiFi.localIP()); //получение IP адреса. Его нужно ввести в строку адреса в браузере для получения доступа к управлению устройством Serial.println(WiFi.macAddress()); //получение MAC адреса Serial.println(WiFi.SSID()); //получение имени сети, к которой подключился WeMos WiFiClient client = server.available(); //проверяет, подключен ли клиент Serial.println("client"); while(!client.available()) //ожидание отправки данных от клиента String req = client.readStringUntil('\r'); Serial.println(req); client.flush(); //Чтение первой строки запроса
Создание точки доступа на WeMos
В данном примере модуль WeMos будет сконфигурирован в качестве самостоятельной точки доступа.
Создание точки доступа выполняется по следующему алгоритму:
- Подключение модуля;
- Запуск среды разработки Arduino IDE;
- Выбор порта, частоты, размера флэш-памяти;
- Запись с коде программы имени сети и создание пароля;
- Компиляция и загрузка скетча;
- Установить скорость 115200;
- Должно произойти подключение к сети, будет получен IP и выведен в терминал;
- Для проверки можно ввести в адресной строке в браузере IP/gpio/1, если все работает корректно, должен загореться светодиод на плате.
Фрагменты программы:
const char *ssid = «****»; //в этой строке нужно задать имя создаваемой сети
const char *password = «»; //указывается пароль сети, если не указывать пароль, то сеть будет открыта
При создании пароля важно помнить, что он должен состоять не менее чем из восьми знаков
WiFiServer server(80);
WiFi.softAP(ssid, password); //создание точки доступа с именем и паролем, которые указывались выше. Если пароль не указывался, softAP(ssid, password) меняется на softAP(ssid)
IPAddress myIP = WiFi.softAPIP(); //получение адреса IP
Serial.print(«AP IP address: «); //вывод полученного адреса в терминал
server.begin(); // запуск сервера
Скетчи на ATtiny84
Итак, у нас Arduino Uno. Как же нам запрограммировать нашу «тиньку»? Для этого используется такое устройство, как программатор. Он необходим для того, чтобы залить в контроллер прошивку.
Мы можем превратить в него нашу Arduino. И делается это элементарно, путем заливки скетча ArduinoISP.
Делаем программатор и собираем схему
Открываем соответствующий скетч «Файл → Примеры → ArduinoISP» и заливаем его. Все, превращение завершено. Теперь необходимо правильно собрать схему, чтобы прошить «тиньку». Обратимся к коду скетча, который был только что залит. Даже не к коду, а к комментарию перед ним.
Сначала подключим светодиоды таким образом, как описано в комментарии, не забывая резисторы. После сборки схемы и подачи питания, светодиод, подключенный к пину 9 «Heartbeat» будет моргать, обозначая нормальное функционирование. Если этого не произошло, то ищите ошибки в подключении.
Теперь надо подключить пины 10-13 к ATtiny. Чтобы узнать распиновку последней, обратимся к даташиту, который можно скачать с сайта Atmel , производителя этих контроллеров. На второй странице расположена картинка, описывающая распиновку.
Основываясь на даташите и комментарии из скетча, можем составить следующую таблицу подключения:
Arduino UNO | ATtiny84 | |
---|---|---|
Reset | 10 | 4 |
MOSI | 11 | 7 |
MISO | 12 | 8 |
SCK | 13 | 9 |
Теперь подключим светодиод и переменный резистор.
Резистор необходимо подключить в пину №6 (PA7), поскольку этот пин может быть входом для аналого-цифрового преобразователя, а светодиод — к любому другому, например, к 10 (PA3).
О нумерации пинов
Стоит немного рассказать о различии нумерации пинов в Arduino и при использовании «чистого» С. В Arduino пины нумеруются последовательно и исключаются системные (питание, земля и т.д.), а в реальности все немного иначе. Все выводы контроллера можно охарактеризовать двумя парметрами: номер порта (порт А, порт В и т.д.) и номер вывода (1..8).
На сайте Arduino можно найти карту пинов. Она выглядит следующим образом:
Для используемой нами ATtiny84 нумерация будет аналогична. В библиотеке Arduino-tiny, о которой речь пойдёт далее, можно найти следующую таблицу соответствия:
// ATMEL ATTINY84 / ARDUINO
//
// +-\/-+
// VCC 1| |14 GND
// (D 0) PB0 2| |13 AREF (D 10)
// (D 1) PB1 3| |12 PA1 (D 9)
// PB3 4| |11 PA2 (D 8)
// PWM INT0 (D 2) PB2 5| |10 PA3 (D 7)
// PWM (D 3) PA7 6| |9 PA4 (D 6)
// PWM (D 4) PA6 7| |8 PA5 (D 5) PWM
// +—-+
В соответсвии с назначением каждой ножки контроллера, аналоговые пины (те, у которых есть вход АЦП) нумеруются в скетче по каналу АЦП.
Напримем, пин сфизическим номером 11 может быть входом для второго канала АЦП (ADC2), поэтому в скетче он будет называться A2.
Теперь необходимо научить среду программирования Arduino понимать тот факт, что мы используем другой контроллер.
Учим среду разработки
Первым делом необходимо скачать библиотеку arduino-tiny , содержащую в себе все необходимое.
Далее заходим в настройки Arduino и смотрим расположение папки со скетчами.
Переходим в эту папку и создаем там новую с названием «hardware». А в ней еще одну, «tiny». Копируем содержимое скачанного ранее архива в эту папку.
И последнее действие — переименовываем файл «Prospective Boards.txt» в «boards.txt». Теперь перезагружем среду разработки и идем в меню «Сервис → Плата».
Можно видеть, то добавилось много новых пунктов.
Программируем ATtiny84
Выбираем в качестве нужного устройства «Сервис → Плата → ATtiny84 @ 8 MHz (internal oscillator; BOD disabled)» поскольку у нас нету внешнего кварца, который задает частоту работы контроллера. В качестве программатора выберем — «Сервис → Программатор → Arduino as ISP».
В качестве кода берем уже написанный нами код для светодиода и подстроечного резистора и изменяем там номера пинов.
// Номер пина для светодиода
// Номер аналогового пина
// В эту переменную считываем значение с аналогового входа
// Настраиваем пин светодиода на выход
// Считываем значение
// val содержит значение из диапазона 0..1023, а диапазон значений для analogWrite
// 0..255. Для этого делим val на 4
Arduino Pro Mini ATmega168 3.3V/8MHz 5V/16MHz
Микроконтроллер | ATmega168PA |
Рабочее напряжение | 3.3 В или 5 В (в зависимости от модели) |
Напряжение питания (рекомендуемое) | 3.35-12 В (модель 3.3 В) или 5-12 В (модель 5 В) |
Напряжение питания (предельное) | 3.35-20 В |
Цифровые входы/выходы | 14 (6 из которых могут использоваться как выходы ШИМ) |
Аналоговые входы | 6 |
ШИМ (PWM) пины | 6 |
Постоянный ток через вход/выход | 40 мА |
Максимальный выходной ток вывода 3.3V | 50 мА |
Flash-память | 16 Кб из которых 2 Кб используются загрузчиком |
SRAM | 1 Кб |
EEPROM | 512 байт |
Тактовая частота | 8 МГц (модель 3.3 В) или 16 МГц (модель 5 В) |
Встроенный светодиод | 13 |
Длина | 33.0 мм |
Ширина | 18.0 мм |
Вес | 5 г |
Подключение устройств
Подключение любых устройств к плате осуществляется путем присоединения к контактам, расположенным на плате контроллера: одному из цифровых или аналоговых пинов или пинам питания. Простой светодиод можно присоединить, используя два контакта: землю (GND) и сигнальный (или контакт питания).
Самый простой датчик потребует задействовать минимум три контакта: два для питания, один для сигнала.
При любом варианте подключения внешнего устройства следует помнить, что использование платы в качестве источника питания возможно только в том случае, если устройство не потребляет больше разрешенного предельного тока контроллера.
Видео с инструкциями:
A Comparison of the Characteristics of the Different Arduino Boards
The main characteristic in which the Arduino pro mini differs from the other boards is the dimensions. The dimensions of the Arduino Pro Mini are only 0,70 x 1.29 inches (1.8 cm x 3.3 cm). The Arduino Nano board is a bit longer at 0.74 x 1.69 inches (1.9 cm x 4.3 cm). The Arduino Uno board is about two times bigger. Its dimensions are 2.71 x 2.08 inches (6.9 x 5.3 cm). The Arduino Mega has the largest dimensions – 4.01 x 2.12 inches (10.2 x 5.4 cm).
The number of pins is also different. Arduino Pro Mini, like Arduino Nano and Arduino Uno, has 14 digital pins. Arduino Mega has 54 digital inputs/outputs, of which 15 support PWM.
Как преодолеть аппаратные ограничения
Большинство распространённых плат имеют аналогичные характеристики, среди них:
- Uno;
- Nano;
- Pro mini;
- и подобные.
Но с развитием ваших навыков разработки в этой среде появляется проблема нехватки мощности и быстродействия этой платформы. Первым шагом для преодоления ограничений является использование языка C AVR.
С его помощью вы ускорите на порядок скорость обращения к портам, частоту ШИМ и размер кода. Если вам и этого недостаточно, то вы можете воспользоваться мощными моделями с аналогичным подходом к разработке. Для этого подойдёт плата Arduino Mega2560. Еще более мощная – модель Due. В противном случае вам стоит ознакомиться с разновидностями одноплатных компьютеров и STM микроконтроллеров.
Ардуино Uno R3 – отличная плата для большинства проектов, которая служит для изучения устройств цифровой электроники.
Заключение
Платы на базе esp8266 – лучший способ организовать работу с сетью в ваших DIY проектах. Вы можете использовать большое количество разнообразных модулей и готовых плат, но WeMos – один из самых удобных способов. Плата похожа на Arduino Uno, достаточно легко подключается к датчикам и прошивается через Arduino IDE.
Уменьшенный аналог WeMos mini вообще можно назвать уникальным устройством, т.к. в очень компактном корпусе вы получаете не только почти все удобства и возможности Arduino, но и полноценный WiFi модуль. Можно даже обойтись без монтажа – просто вставляя различные модули расширения (шилды) WeMos как в матрешке, одну в другу. А недорогая цена делает эту плату абсолютным фаворитом для тех, кто делает умные устройства с возможностью выхода в интернет.