Руководство по arduino для начинающих

Oscillator Circuit:

The Arduino Pro Mini board comes with an onboard oscillator which can be an 8MHz or 16MHz oscillator depending on the Arduino Pro mini-board voltage. The majority of the pro mini board has an onboard ceramic oscillator and there are few Arduino pro mini boards with a crystal oscillator.

Ceramic resonators are constructed from high stability piezoelectric ceramics. Featuring built-in load capacitance, these SMD ceramic resonators eliminate the need for external load capacitors. With a low profile and small package size, these ceramic resonators offer an economic use of space and the opportunity for high-density mounting.

In the case of a ceramic capacitor, you will just have to connect the oscillator directly with the pins without worrying about external capacitors as we do in the case of crystal oscillators. The following figure is helpful in illustrating this idea.

The Onboard Ceramic Oscillator On Arduino Pro Mini Board

Following are the oscillators that can be found on Arduino Pro Mini

  • 3.3V Board:
  • 5V Board:

Характеристики Arduino Pro Mini

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 г

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 Nano может принести на стол, но ценник все еще может быть проблемой для некоторых. Те, у кого ограниченный бюджет, могут рассмотреть возможность клонирования доски. Официальные нано расходы $ 22, в то время как его аналог-клон более чем в 10 раз дешевле и стоит всего $ 1,80 на AliExpress.

Юлиан Юлет из YouTuber предлагает исчерпывающее руководство по клонированию плат Arduino.

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

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

Arduino Pro Mini: прошивка, программирование

Микропроцессор Arduino Pro Mini разработан без встроенного загрузчика, т.е. запись скетчей в плату производится с использованием внешних программаторов, что значительно затрудняет работу с платой новичкам. Прошивка Arduino Pro Mini производится в среде Arduino IDE, которую можно скачать на сайте разработчика www.arduino.cc. Дополнительные драйвера для Pro Mini Arduino не требуются.


Подключение Pro Mini для прошивки через USB

Pro Mini поддерживает три типа памяти:

Flash–память объемом 16 кБ, используется для хранения прошивки. Когда в контроллер записывается программа, она сохраняется именно во Flash–память. Чтобы очистить Flash–память следует загрузить пустой скетч (программу).

SRAM — это оперативная память объемом 1 кБ на Arduino Pro Mini. Здесь хранятся переменные, создаваемые в скетче. SRAM — это энергозависимая память, при отключении внешнего источника питания — данные удалятся.

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

Что можно и чего нельзя

Ардуино работает на одноядерном и не шибко шустром процессоре. Его тактовая частота — 16 мегагерц, то есть 16 миллионов процессорных операций в секунду. Это не очень быстро, плюс ядро только одно, и оно исполняет одну команду за другой.

Вот какие ограничения это на нас накладывает.

Нет настоящей многозадачности. Можно симулировать многозадачность с помощью приёма Protothreading, но это скорее костыль. Нельзя, например, сказать: «Когда нажмётся такая-то кнопка — сделай так». Вместо этого придётся в основном цикле писать проверку: «А эта кнопка нажата? Если да, то…»

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

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

Полегче со сложной математикой: если вам нужно что-то сложное типа тригонометрических функций, будьте готовы к тому, что Ардуино будет считать их довольно медленно. Для вас это одна строчка кода, а для Ардуино это тысячи операций под капотом. Пощадите.

Отчёты? Ошибки? Только при компиляции. У Ардуино нет встроенных средств сообщить вам, что ему нехорошо. Если он завис, он не покажет окно ошибки: во-первых, у него нет графического интерфейса, во-вторых — экрана. Если хотите систему ошибок или отчётность, пишите её

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

Подготовка и бесконечность

В любой программе для Arduino есть две принципиальные части: подготовительная часть и основной цикл.

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

Основной цикл — это то, что происходит в функции loop(). Ардуино берёт оттуда команды и выполняет их подряд. Как только команды закончились, он возвращается в начало цикла и повторяет всё. И так до бесконечности.

В основном цикле мы описываем все полезные вещи, которые должен делать контроллер: считывать данные, мигать лампами, включать-выключать моторы, кормить кота и т. д.

Configuration to apply

I played with the fuses values with the following tool : http://www.engbedded.com/fusecalc

By default, on the Arduino Pro Mini, the fuses have the following values:

  • Low fuse: 0xFF
  • High fuse: 0xDA
  • Extended fuse: 0xFF / 0x05

We are tying to:

  • Enable the internal oscillator (8Mhz +/- 10%);
  • Keep the startup time at 65ms (to allow the oscillator to stabilize);
  • Divide clock by 8 internally;
  • Set the brown-out detection level at Vcc = 1.8V; (could be disabled for save more energy with )
  • Disable the boot reset vector as we don’t use a bootloader .

Which gives us:

  • Low fuse: 0x62
  • High fuse: 0xDB
  • Extended fuse: 0xFE / 0x06 (or 0xFF / 0x05 for disabling the brown-out detection)

Material

  • USBTinyISP V2 (cheap ISP programmer)
  • Arduino pro mini 3.3V @ 8MHz
  • External power supply @ 3.3V
  • Breadboard, cables…

You can use other ISP programmers and even use an Arduino as an ISP programmer, but the following commands will be dedicated to the USBTinyISP.

Установка Arduino IDE

Прежде чем начать работу с Arduino необходимо установить среду программирования Arduino IDE на ваш компьютер/ноутбук. Все описанные далее шаги по установке данной программной среды будут ориентированы на операционную систему Windows, для остальных операционных систем последовательность действий будет примерно такой же. Если возникнут проблемы с другими системами, то помощь можно найти по следующим ссылкам – для пользователей Mac и пользователей Linux. Перед началом установки Arduino IDE убедитесь что вы обладаете правами администратора на вашем компьютере – это облегчит установку.

Шаг 1. Загрузите Arduino IDE с официального сайта — https://www.arduino.cc/download_handler.php.

Шаг 2. Запустите скачанный exe файл.

Шаг 3. В открывшемся окне кликните на “I Agree” чтобы согласиться с условиями лицензии Arduino.

Шаг 4. В окне опций установки отметьте все галочки (см. рисунок).

Шаг 5. На этом шаге необходимо выбрать место установки Arduino IDE. По умолчанию стоит путь установки в Program files на диске C – крайне рекомендуется оставить именно этот путь.

Шаг 6. На этом шаге вы можете наблюдать как Arduino IDE устанавливается на ваш компьютер (см. рисунок). После того как установка будет завершена нажмите кнопку “completed”.

Шаг 7. После завершения установки запустите на выполнение файл Arduino.exe. Откроется окно IDE с минимумом кода внутри него – см. рисунок.

Сравнение характеристик разных плат Ардуино

Основная характеристика, по которой Ардуино про мини отличается от остальных плат – это размеры. Габариты Arduino Pro Mini составляют всего 1,8 см х 3,3 см. Немного большую длину имеет плата Ардуино Нано – 1,9 см х 4,3 см. Плата Ардуино Уно больше примерно в 2 раза, ее габариты составляют 6,9 см х 5,3 см. Arduino Mega имеет самые крупные габариты – 10,2 см на 5,4 см.

Количество пинов также различно. Ардуино про мини, как Ардуино Нано и Ардуино Уно, имеет 14 цифровых пинов. Ардуино Мега оснащена 54 цифровыми входами/выходами, из которых 15 поддерживают ШИМ.

Важное отличие Arduino Pro Mini от остальных плат – отсутствие прошивки по USB-UART. Остальные микроконтроллеры можно прошить таким способом, кроме Ардуино Нано

Она прошивается с помощью преобразователя rt232.

Модели Ардуино


Платы Arduino

Вот мы и добрались до самих плат Ардуино, которых на данный момент появилось великое множество благодаря открытости платформы: все схемы и исходные коды находятся в открытом доступе, и вы можете сделать свою версию платы и продавать её, чем активно занимаются китайцы. Единственный пункт: слово Arduino – зарегистрированная торговая марка, и свою плату вам придется назвать как-то по-другому, отсюда и появились всякие Искры, Бузины и прочие так называемые Arduino совместимые платы. Разновидностей плат очень много, но используют они одни и те же модели микроконтроллеров. От модели микроконтроллера зависит объем памяти и количество ног, ну и есть некоторые специальные фишки. На большинстве моделей Arduino стоят 8-битные МК от AVR с кварцевым генератором на 16 МГц (либо ниже), то есть по производительности платы на ATmega не отличаются, отличаются только объемом памяти, количеством ног и интерфейсов/таймеров. Модели Ардуино с МК от производителя ARM, например Arduino DUE, в разы мощнее своих собратьев за счёт 32-битного процессора, но это совсем другая история.

Параметр ATtiny85 ATmega328 ATmega32u4 ATmega2560
Кол-во ног 8 32 44 100
Из них доступны 5 23 24 86
Flash память 8 Kb 32 Kb 32 Kb 256 Kb
EEPROM память 512 bytes 1 Kb 1 Kb 4 Kb
SRAM память 512 bytes 2 Kb 2.5 kB 8 Kb
Каналов АЦП 3 (4 с rst) 6 (8 в SMD корпусе) 12 16
Каналов PWM 3 6 7 15
Таймеры 2х 8bit 2х 8bit 2х 8bit 2х 8bit
1х 16bit 2х 16bit 4х 16bit
Serial интерфейс Нет х1 х1 х4
I2C интерфейс Нет Да Да Да
Прерывания 1 (6 PCINT) 2 (23 PCINT) 5 (44 PCINT) 8 (32 PCINT)
Платы на его основе Digispark, LilyTiny Uno, Nano, Pro Mini, Lilypad, Strong Leonardo, Micro, Pro Micro, BS Micro Mega, Mega Pro

Таким образом вы должны сразу понять, что, например, Ардуино Уно=Нано=Про Мини=Лилипад по своим возможностям и взаимозаменяемости. Или Леонардо=Про Микро. Ссылки на недорогие китайские Ардуины вы можете найти у меня на сайте. Точно там же вы найдёте ссылки на кучу датчиков, модулей и другого железа, которое можно подключить к Arduino. О возможностях ардуино по работе с другими железками поговорим в одном из следующих уроках.

Описание обеспечения

Arduino Nano может получать питание через подключение Mini-B USB, или от нерегулируемого 6 – 20 В (вывод 30), или регулируемого 5 В (вывод 27), внешнего источника питания. Автоматически выбирается источник с самым высоким напряжением.

Микросхема FTDI FT232RL получает питание, только если сама платформа запитана от USB. Таким образом при работе от внешнего источника (не USB), будет отсутствовать напряжение 3.3 В, генерируемое микросхемой FTDI, при этом светодиоды RX и TX мигают только при наличие сигнала высокого уровня на выводах 0 и 1.

На Arduino Nano доступны следующие контакты для доступа к питанию:

  • Vin : Напряжение от внешнего источника питания (не связано с 5 В от USB или другим стабилизированным напряжением). Через этот вывод можно как подавать внешнее питание, так и потреблять ток, если к устройству подключён внешний адаптер.
  • 5V : На вывод поступает напряжение 5 В от стабилизатора платы. Данный стабилизатор обеспечивает питание микроконтроллера ATmega328. Запитывать устройство через вывод 5V не рекомендуется — в этом случае не используется стабилизатор напряжения, что может привести к выходу платы из строя.
  • 3.3V : 3,3 В от стабилизатора микросхемы FT232RL. Максимальный ток вывода — 50 мА.
  • GND : земля.
  • IOREF : Вывод предоставляет платам расширения информацию о рабочем напряжении микроконтроллера. В зависимости от напряжения, плата расширения может переключиться на соответствующий источник питания либо задействовать преобразователи уровней, что позволит ей работать как с 5 В, так и с 3,3 В устройствами.

Распиновка и схема платы arduino nano.

Память

Микроконтроллер ATmega328 имеет 32 КБ флеш-памяти для хранения кода программы, 2 КБ используется для хранения загрузчика. ATmega328 имеет 2 КБ ОЗУ и 1 КБ EEPROM.

Ввод / вывод

Каждый из 14 цифровых выводов Nano, используя функции pinMode(), digitalWrite(), и digitalRead(), может настраиваться как вход или выход. Выводы работают при напряжении 5 В. Каждый вывод имеет нагрузочный резистор (стандартно отключен) 20-50 кОм и может пропускать до 40 мА. Некоторые выводы имеют особые функции:

  • Последовательная шина: 0 (RX) и 1 (TX) – Выводы используются для получения (RX) и передачи (TX) данных TTL. Данные выводы подключены к соответствующим выводам микросхемы последовательной шины FTDI USB-to-TTL.
  • Внешнее прерывание: 2 и 3 – Данные выводы могут быть сконфигурированы на вызов прерывания либо на младшем значении, либо на переднем или заднем фронте, или при изменении значения. Подробная информация находится в описании функции attachInterrupt().
  • ШИМ: 3, 5, 6, 9, 10, и 11 – Любой из выводов обеспечивает ШИМ с разрешением 8 бит при помощи функции analogWrite().
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) – Посредством данных выводов осуществляется связь SPI, которая, хотя и поддерживается аппаратной частью, не включена в язык Arduino.
  • LED: 13 – Встроенный светодиод, подключенный к цифровому выводу 13. Если значение на выводе имеет высокий потенциал, то светодиод горит. На платформе Nano установлены 8 аналоговых входов, каждый разрешением 10 бит (т.е. может принимать 1024 различных значения). Стандартно выводы имеют диапазон измерения до 5 В относительно земли, тем не менее имеется возможность изменить верхний предел посредством функции analogReference().
  • I2C: 4 (SDA) и 5 (SCL) – Посредством выводов осуществляется связь I2C (TWI).
  • AREF – Опорное напряжение для аналоговых входов. Используется с функцией analogReference().
  • Reset – Низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino.

Настройка параметров загрузчика

Последнее время применяю Aduino Pro Mini 5В с модулями NRF24L01+, требующих для питания 3.3В. Для питания таких плат от низкого напряжения нужно отключить во фьюзах контроль напряжения питания. Для этого открываем файл c:\Program Files (x86)\Arduino\hardware\arduino\boards.txt и прописываем в нем характеристики желаемой прошивки:

atmega328_16.name=Atmega328_16 (3.3V, 16 MHz external)
atmega328_16.upload.protocol=arduino
atmega328_16.upload.maximum_size=32256
atmega328_16.upload.speed=115200
atmega328_16.bootloader.low_fuses=0xff
atmega328_16.bootloader.high_fuses=0xde
atmega328_16.bootloader.extended_fuses=0x07
atmega328_16.bootloader.path=optiboot
atmega328_16.bootloader.file=optiboot_atmega328.hex
atmega328_16.bootloader.unlock_bits=0x3F
atmega328_16.bootloader.lock_bits=0x0F
atmega328_16.build.mcu=atmega328p
atmega328_16.build.f_cpu=16000000L
atmega328_16.build.core=arduino
atmega328_16.build.variant=standard

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

atmega328_16.name=Atmega328_16(3.3V,16MHz external)

atmega328_16.upload.protocol=arduino

atmega328_16.upload.maximum_size=32256

atmega328_16.upload.speed=115200

atmega328_16.bootloader.low_fuses=0xff

atmega328_16.bootloader.high_fuses=0xde

atmega328_16.bootloader.extended_fuses=0x07

atmega328_16.bootloader.path=optiboot

atmega328_16.bootloader.file=optiboot_atmega328.hex

atmega328_16.bootloader.unlock_bits=0x3F

atmega328_16.bootloader.lock_bits=0x0F

atmega328_16.build.mcu=atmega328p

atmega328_16.build.f_cpu=16000000L

atmega328_16.build.core=arduino

atmega328_16.build.variant=standard

После этого шьем выбираем тип контроллера «Atmega328_16 (3.3V, 16 MHz external)» и пишем загрузчик.

Программируя «перешитый» Arduino Pro Mini через стандартный порт не нужно забывать устанавливать нужный тип контроллера

Характеристики Arduino Pro Mini

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 г

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 г

1Программатор для Arduino

  • Разъём типа USB-A используется, понятно, для подключения программатора к компьютеру.
  • ISP-соединитель нужен для подключения к программируемой плате.
  • Джампер JP1 контролирует напряжение на выводе VCC ISP-коннектора. Оно может быть 3,3 В или 5 В. Если целевое программируемое устройство имеет собственный источник питания, нужно убрать перемычку.
  • Джампер JP2 используется для перепрошивки самого программатора; в данной статье этот вопрос не рассматривается.
  • Перемычка JP3 нужна, если тактовая частота целевого устройства ниже 1,5 МГц.
  • Светодиоды показывают: G – питание подаётся на программатор, R – программатор соединён с целевым устройством.

USBasp-программатор и назначение его частей

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 г

Input and Output

Each of the 14 digital pins on the Pro Mini can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 3.3 or 5 volts (depending on the model). Each pin can provide or receive a maximum of 40 mA and has an internal pull-up resistor (disconnected by default) of 20-50 kOhms. In addition, some pins have specialized functions:

Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data. These pins are connected to the TX-0 and RX-1 pins of the six pin header.

External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. See the attachInterrupt() function for details.

PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite() function.

SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI communication, which, although provided by the underlying hardware, is not currently included in the Arduino language.

LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH value, the LED is on, when the pin is LOW, it’s off.

The Pro Mini has 6 analog inputs, each of which provide 10 bits of resolution (i.e. 1024 different values). Four of them are on the headers on the edge of the board; two (inputs 4 and 5) on holes in the interior of the board. The analog inputs measure from ground to VCC. Additionally, some pins have specialized functionality:

I2C: 4 (SDA) and 5 (SCL). Support I2C (TWI) communication using the Wire library.

There is another pin on the board:

Reset. Bring this line LOW to reset the microcontroller. Typically used to add a reset button to shields which block the one on the board.

See also the mapping between Arduino pins and ATmega168 ports.

Программирование Arduino Pro Mini

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

Вполне вероятно, вам надо будет установить драйвера для FTDI Basic Breakout или аналогичного конвертера, когда вы подключите плату с конвертером впервые.

После того как драйвера для FTDI и Arduino установлены, можно переходить к программированию. Предлагаем начать с самого популярного скетча: Blink. Откройте Areuino IDE, после этого откройте скетч Blink, который находится в

File > Examples > 01.Basics > Blink:

Перед загрузкой программы на Pro Mini, надо сообщить оболочке для программирования, какую именно плату вы используете. Для этого надо выбрать Tools > Board и там из списка выбрать Arduino Pro или Pro Mini.

После этого возвращаемся в Tools > Processor и выбираем ATmega328 (3.3V, 8MHz). Эта настройка сообщает IDE, что надо компилировать код с учетом частоты 8 МГц.

После этого надо выбрать серийный порт, к которому вы подключили Pro Mini с помощью FTDI Basic Breakout. В Windows это будет что-то вроде COM2, COM3, и т.д. и т.п. На Mac это будет что-то вроде /dev/tty.usbserial-A6006hSc.

Наконец то все готово к загрузке программы на вашу Arduino Pro Mini. Нажмите кнопку Upload (стрелка вправо под меню). После этого красный и зеленый светодиоды RX/TX на вашем USB конвертере загорятся и в строке состояния Arduino IDE появится надпись «Done Uploading». Вуаля, светодиод на Arduino Pro Mini начал мигать! Хоть на плате Mini не уместились некоторые компоненты обвязки, самый важный из них — светодиод — на плате есть!

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

Arduino Pro Mini вид сверху

Arduino Pro Mini вид снизу

Данная плата предназначена для использования в готовом устройстве. Поэтому у этого микроконтроллера нет встроенной микросхемы для связи по USB-UART. Так же нет и разъемов USB для подключения и прошивки. Это позволяет сильно уменьшить размеры платы, а также ее стоимость. Для подключения к компьютеру и прошивки используется специальный программатор. Существует две версии данной платы: с питанием 3,3 В и частотой 8 МГц и с питанием от 5 В с частотой 16 МГц. В младшей версии этой ардуинки используется чип ATmega168. Этот чип обладает меньшим объемом flash-памяти, энергонезависимой памяти, а так же пониженной тактовой частотой. Так как цена разных версий Arduino Pro Mini практически не отличается мы поговорим о старшей версии с чипом ATmega328 и тактовой частотой 16 МГц.

Прошиваем AVR при помощи FabISP мимикрирующего под USBTiny44/USBTiny85 с 6 выводами ISP

Модуль FabISP является детищем FabLab MIT (того самого, Массачусетского Технологического). По сути FabLab — мастерская при университетах, где студенты могут сваять что-то своими руками. Вот один из студентов и навяаял внутрисхемный программатор для AVR на основе USBTinyIPS. Ознакомиться с его творчеством, равно как и скачать драйвера под программатор можно на страничке отчета студента по проделанной работе. Страничка уже находится в архиве, поэтому не ясно как долго она просуществует. Но FabISP используется в учебных курсах и видимо не скоро совсем уйдет с арены.

FabISP в исполнении китайских товарищей.

Интересная особенность. Через 6-ти пиновый кабель, который, кстати не поставляется вместе с модулем, FabISP может питать и микроконтроллер. В таком случае не требуется дополнительное питание, как у AVRISP mkii. Так же хочу заметить, что оригинальный FabISP требует предварительной прошивки и программатора, по типу того же AVRIPS. Но с Китая модули (GY ARDUINO ISP V2) приходят уже прошитыми, что существенно облегчает задачу.

Прошивка ATmega328P посредством AVRDUDESS через FabLAB USBTiny

Я не стал устанавливать драйвера со странички студента, а установил их от Lady Ada (изобретателя USBTiny). После установки драйверов программатор определился как Atmel USB Devices – USBtiny. Для того, чтобы программатором можно было пользоваться, необходимо распаять, если она у вас не распаяна, перемычку SJFAB (в некоторых нотациях это перемычка обзывается как SJ1). Перемычка используется для возможности программирования самого программатора. Более того на плате присутствует и вторая перемычка SJ2 (или же SJVCC). Она отвечает за подачу питания на микроконтроллер с программатора. Если ее распаять, то для микроконтроллера потребуется внешнее питание. Ознакомиться со схемой можно все с того же сайта MIT.

При прошивке через FabISP необходимо обратить внимание, что поскольку программатор использует порт USB, то в AVRDUDESS необходимо так же выбрать порт USB. Никакого моста на последовательные порты не создается

При прошивке в Arduino IDE в качестве программатора выбираем USBTiny. Порт выбирать не требуется. В среде отсутствует возможность выбрать USB, поэтому опция просто игнорируется, AVR находит программатор самостоятельно.

Соответственно, при помощи FabISP можно прошивать внутрисхемно, в том числе и загрузчик, как при помощи AVRDUDE, так и напрямую из Arduino IDE (порт можно не указывать, загружаем через меню Sketch – Upload Using Programmer или Burn bootloader, в качестве программатора выбираем USBtinyISP).

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Семинар по технике
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: