Arduino mini размеры. Arduino Pro Mini – распиновка и подключение. Установка драйвера для программатора

Arduino + два сервопривода + плата зарядки + плата повышающего преобразователя + старый аккумулятор + кучка радиодеталей + кусок фанеры + тумблер = сбылась мечта идиота!
Много текста, для тех, кто любит читать. Много спойлеров, для тех, кто любит читать «по диагонали». Видео, для тех, кто любит видео. Скетч, для тех, кто любит сразу скопировать и запустить «на коленке». Фото, фото, фото. Кот, для любителей котов.

Не совсем дисклеймер

Это мой первый проект, не считая мигания светодиодом, Hello world и т.п. По традиции надо предварительно посыпать голову пеплом, на предмет того, что код далек от совершенства и обязательно ввязаться в спор по этому поводу. А также по поводу частичной скопированности кода у другого проекта, попросить не бить сильно и т.д. Но этого не будет. Код идеален! Потому что работает, нравится мне и сделан для себя.
Интересующимся дам совет: не бойтесь, вступайте в бой, лопатьте горы кода, стройте свои мегапирамиды из разных операторов. Со временем придет и стиль, и утонченность, и идеал.
Пока в памяти контроллера есть место - вам ни чего не страшно. Упретесь в стену - будете оптимизировать. И это тоже развитие. Оно важно.
Большая книга по программированию на С - да, полезно. Но, на первых порах, гораздо полезнее иметь под рукой краткий справочник по командам и держать в закладках несколько ссылок на работу с простыми примерами, библиотеками и т.п., вроде , или той же Амперки.
И еще, мне очень помогают блок-схемы. Прямоугольник, ромбик, овал. Кто сталкивался - понимает. Делаю сейчас один проект - без блок-схемы никак. Для меня, лучше несколько дней рисовать - перерисовывать на бумаге, чтобы яснее представить себе весь ход работы программы, чем набросать кучу кода и зашиться в нем, т.к. я не обладаю умением охватить весь код силой своей программистской мысли, в виду малого опыта.
Желающим повторить или сделать по-своему – отвечу на все вопросы.
В пустые споры по моей письменной грамотности, стилю, дизайну, коду и нужности изделия и т.п., вступать не буду. Если допустил где-то в обзоре суровый косяк – исправлю или допишу.

Что такое «Самое бесполезное устройство» можете загуглить сами. Я натолкнулся на него случайно . Этот код и был взят за основу, т.к. сам по себе он не запустился, да и сценарии хотелось сделать свои.

Лирическое отступление

Говорят, после сорока, особенно, когда уже очень после сорока, нужно стараться «разминать» мозги. И что изучение языков - лучшая разминка. И не только в таком возрасте. К языкам я не очень, а журнал «Здоровье» как бы советует… В общем, решил я изучить что-то новое для себя. Электроника для меня не в новинку, хоть и забыл я ее уже по большей части, но вот программирование ни когда не было родным. Я его побаивался. Но тут совпало много знаков свыше: журнал «Здоровье», который рекомендует изучить что-то новое, давняя мечта разобраться (хоть немного) в программировании (хоть чего) и youtube, в котором только ленивый не рассказывает про то, как мигать светодиодом с помощью умной платы за доллар с копейками.
До этого я неплохо управлял миганием светодиода с помощью двух транзисторов, конденсатора и пары сопротивлений, но теперь, говорят, это не комильфо. Значит надо быть в тренде.


Очень мне понравилось это бесполезное, в прямом смысле слова, устройство. Увидел – влюбился. Хочу, и всё! Как детская мечта! Но возраст внес свои коррективы. Хочу именно сам сделать, а не купить. Тем более, что в продаже простые устройства. Я же натолкнулся на «интеллектуальное», а таких в продаже я не нашел. Тем более – надо делать!
И опять, Arduino. А я в нем ни бум-бум. Значит надо разбираться. Алиэкспресс в помощь. Начал с Ардуин. Понимал, что путь к изучению будет тернист и жертвы неизбежны. Поэтому заказал пять разных. Пусть себе горят, если что. Отладка схемы происходила на Uno от другого продавца. Но, так как в конечном устройстве оказалась именно эта плата - ее и вынес в заглавие.
Кроме ардуинок, заказал огромное количество всякого разного барахла, как ардуиносовместимого, так и околоардуинового. Здесь расскажу только о том, что пригодилось в данном изделии.

Arduino Pro Mini


Доставка быстрая, упаковка в виде стандартного антистатического пакета и конверта с внутренней пупырчатой поверхностью. Продавец общительный, русскоязычный.
На 328 чипе. 3,3 вольта, 8МГц. Почему именно так? Да по ошибке. Хотел на 5 вольт, 16МГц, а купил эту. Сам виноват. Впрочем, для данного проекта не критично - поставил лишний преобразователь напряжения. Собственно и всё. Огромных отличий от других Mini я не нашел. Фирменное отличие - черный текстолит(?) Из косяков: на плате не работает пин RAW. Но и это не остановило. Хотя, с ним мог бы сэкономить преобразователь на 3,3 В. гребенки не распаяны. Плата сделана добротно.
Почему так кратко? Потому что про этого продавца и его платы уже есть пристрастный (п.18). Желающие найдут легко. Пересказывать его не имеет смысла. Я в комментах к нему тоже вставил свои пять копеек. И с продавцом напереписывался вдоволь.


Сервопривод SG90


$3.2 за партию две штуки.
Описывать особенно нечего. Слабый сервопривод со средней точностью позиционирования, которая сильно зависит от скорости перемещения. Зато копеечный. Для привода крышки - с лихвой, для «руки» - на грани возможностей. Для работы нужно 5 вольт, но для управления достаточно и 3,3. Пробовал управлять через преобразователь и напрямую от ардуино - разницы нет. Поэтому преобразователь уровней сэкономил.


Контроллер зарядки и преобразователь питания


$2.28 за пять штук. С защитой. Пока заряжается - горит красный светодиод, окончание зарядки - синий светодиод. Обзор здесь был.


$0.50 за штуку. Доставка, правда, платная, но я брал в этом магазе еще целый ворох всякой всячины, поэтому доставка не напрягла. USB гнездо выпаял для облегчения веса))) На выходе выдает 5,12 вольт.





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


TTL преобразователь


$1.5 за штуку. Вообще-то я заказал сначала . Он в два раза дешевле. Но, по каким-то странным причинам, он пал смертью храбрых. Я так и не понял, чем я его убил. По этой причине проект застопорился на месяц, пока не пришел новый, более продвинутый - не надо давить reset. Это ли не прогресс?


Остальное из запасников

Регулятор напряжения1117Т-3,3V в корпусе TO220, конденсаторы 1500,0х6,3 и 470,0х16, два конденсатора по 0,1 мкФ, белый светодиод и микропереключатель от детской машинки, резистор 220 Ом. Аккумулятор валялся несколько лет без дела. Когда-то я разобрал сгоревший (в прямом смысле) портативный DVD-проигрыватель. Из хорошего там только аккумуляторы и уцелели. Вот один из них и пригодился. Вольтаж 3,7 V, емкости я в маркировке не нашел.
Клеевой пистолет, резинка для денег, два крючка от… лифчика (спасибо супруге. Дорогая, я тебя люблю!), два мебельных шканта, четыре шурупа, четыре клейких отбойника для мебельных дверей, кусок макетной платы, провода, разъемы.


Сложнее обстояло дело с корпусом. Было перепробовано множество коробок. Коробка из пластика от часов Tissot оказалась хрупкой, частично картонной. Но металлические завесы от нее подошли. Одна даже в запасе осталась. Пробовал готовые корпуса от парфюма, коробку от вина, от конфет. В итоге, решил сделать сам.
Качественная фанера, скорее всего березовая, нашлась в детском наборе для выжигания. Ребенок вырос - набор остался. С одной стороны был нанесен рисунок, зато другая сторона выглядела прямо-таки сказать, отлично

Прямо-таки сказать, отлично

В школе у нас был трудовик. В возрасте. В общем и целом - замечательный человек. Его уважали. Когда мы проходили электричество, на примере батарейки, лампочки и ключа, он прочитал нам лекцию.
«В батарейке живет ток. Вот выходит он из плюса и пошел по проводам. Идет, идет, вдруг бац - ключ на пути. И ключ разомкнут. Ток понимает, что дальше идти некуда. Он развернулся и ушел в батарейку. И лампочка не горит. Замыкаем ключ. Ток опять пошел, дошел до ключа, прошел через него, прошел через лампочку и вернулся в батарейку. И лампочка горит, прямо-таки сказать, отлично.» С тех пор и есть такая фраза в лексиконе, как синоним чего-то неожиданно удачного.




Пробовал резать фанеру ножовкой, лобзиком - всё не то. Сколы, которые потом трудно убрать, не ровная кромка. Нашел выход - острый канцелярский нож. Замечательно прорезает половину фанеры с одной стороны, и половину с другой. Потом чуть-чуть наждачкой и всё в ажуре. Зато, при хорошей металлической линейке и постоянно остром лезвии, получается идеальный срез и ровная линия.
Конечно, не без косяков - под наклейкой Hand made скрывается банальная дырка. Просверлил по центру, для тумблера. А серва не влезла. Пришлось смещать тумблер в бок и закрывать дырку. Меня такие трудности не пугают.
Описывать каждый свой чих по изготовлению устройства не вижу смысла. Я опишу некоторые моменты. А уж имеющий руки - да сделает.
Коробку собрал на термоклей. Самого клея не жалел. Держится отменно. Не скрипит, не люфтит. Быстро, дешево и сердито. Да и вообще, как вы заметили, практически всё держится на этом клее. Рекомендую. Очень ускоряет процесс сборки. Микрик выключения приклеил изнутри на левую стенку - виднеется на фото немного.
Крышку прикрепил на завесу.

С завесой намучился. Много экспериментировал. Хотел, чтобы крышка располагалась именно сверху коробки, а не внутри. Даже согнул несколько вариантов скоб-завес из скрепок. По потом вспомнил, что в процессе экспериментов на глаза попались завесы из коробки часов Tissot. Такие добротные, швейцарские (китайские?).
Завеса вещь важная. Ее качество очень важно для общей внешней красоты устройства.
Основной тумблер нужен помягШе, тогда и работать будет полегШе.
Крышку возвращает в закрытое положение резинка. Ее не нужно выбирать очень жесткой - серва справится, но, при центральном расположении завесы, крышку будет перекашивать.
В случае с фанерой, покрытие лаком обязательно - пачкается сильно. Я применил бесцветный цапон-лак. Просто потому, что другого под рукой не оказалось.
Серву, которая управляет «рукой» лучше расположить по-другому. Не сбоку, а спереди от тумблера. Тогда «рука» может быть попроще в изготовлении - г-образная, вместо п-образной. Ширину коробки можно уменьшить и тумблер расположить по центру.
Серву крышки лучше развернуть на 180 градусов, тогда в коде проще будет ассоциировать градусы этой сервы с работой крышки. У меня наоборот, поэтому открывание - это уменьшение градусов. А у «руки» наоборот. И правильнее толкать крышку с той же стороны, с которой ее тянет назад резинка.
Коробку не стоит делать слишком маленькой. Будет не удобно пользоваться. А вот более плоской - допустимо. Коробка легкая и если она будет площе, будет устойчивее. Удобнее будет толкать тумблер пальцем не придерживая коробку.
Из двух кусков макетной платы сделал что-то типа шилда. Ардуину впаял без разъемов. Намертво. Мне не жалко.


А вот всю периферию сделал на разъемах. Так удобнее.
Конденсатор большой емкости по питанию ардуины (3,3 вольт) обязателен. Без него ардуина «виснет».
У меня нет сборочных чертежей устройства. Оно на столько простое, что можно применить много других простых решений, на которых строится вся механика. На видео, как моем, так и других подобных устройств, можно видеть применяемые варианты приводов.

#include #include Servo doorServo; //сервопривод крышки Servo handServo; //сервопривод руки Bounce bouncer = Bounce(12, 40); //создаем экземпляр класса Bounce для 12 вывода тумблера int pos = 0; //переменная начальной позиции int pos1door = 70; //начальное положение сервопривода крышки int pos2door = 30; //конечное положение сервопривода крышки int pos1hand = 10; //начальное положение сервопривода руки int pos2hand = 160; //конечное положение сервопривода руки int r; //случайное число, от которого зависит вариант выключения тумблера #define LED_PIN 11 // номер выхода,подключенного к светодиоду int ledState = LOW; // этой переменной устанавливаем состояние светодиода long previousMillis = 0; // храним время последнего переключения светодиода #define INTERVAL 30UL // интервал между включение/выключением светодиода void setup() { pinMode(LED_PIN, OUTPUT); pinMode(12, INPUT); //переключаем 12 вывод в режим входа digitalWrite(12, 1); //включаем на нем подтягивающий резистор Serial.begin(9600); //установка порта на скорость 9600 бит/сек. Для отладки. Потом можно убрать. doorServo.attach(9); //назначаем сервопривод крышки на пин 9 handServo.attach(10); //назначаем сервопривод руки на пин 10 doorServo.write(pos1door); //устанавливаем в начальную позицию сервопривод крышки handServo.write(pos1hand); //устанавливаем в начальную позицию сервопривод руки } void loop() { if (bouncer.update()) { if (bouncer.read()==0) { //если кнопка нажата { r = random(0,11); //генерируем случайное число jn 0 до 10 Serial.println®; if (r == 0) { move_0(); } //вызов функции по случайному числу else if (r == 1) { move_1(); } else if (r == 2) { move_2(); } else if (r == 3) { move_3(); } else if (r == 4) { move_4(); } else if (r == 5) { move_5(); } else if (r == 6) { move_0(); } else if (r == 7) { move_1(); } else if (r == 8) { move_4(); } else if (r == 9) { move_3(); } else if (r == 10) { move_0(); } } } } } // Библиотека функций. Общий принцип: открыть крышку - высунуть руку и выключить тумблер - убрать руку - закрыть крышку //а уж вариантов как это красиво обставить................ void move_0(){ //простой вариант: открыли-выключили-закрыли //открываем крышку for(pos = pos1door; pos >= pos2door; pos -=3) { doorServo.write(pos); delay(15); } //высовываем руку for(pos = pos1hand; pos <= pos2hand; pos +=3) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand; pos >= pos1hand; pos -=3) { handServo.write(pos); delay(15); } //закрываем крышку for(pos = pos2door; pos <= pos1door; pos +=3) { doorServo.write(pos); delay(15); } } void move_1(){ //простой вариант 2: открыли-выключили-закрыли //открываем крышку for(pos = pos1door; pos >= pos2door; pos -=1) { doorServo.write(pos); delay(15); } delay(1000); //высовываем руку for(pos = pos1hand; pos <= pos2hand; pos +=1) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand; pos > <= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_2(){ //задумчивый вариант 2: приоткрыли-закрыли-открыли-выключили-закрыли //открываем крышку for(pos = pos1door; pos >= pos2door+15; pos -=5) { doorServo.write(pos); delay(15); } delay(1000); //закрываем крышку for(pos = pos2door+15; pos <= pos1door; pos +=5) { doorServo.write(pos); delay(15); } delay(1000); //открываем крышку for(pos = pos1door; pos > <= pos2hand+2; pos +=5) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand+2; pos >= pos1hand; pos -=5) { handServo.write(pos); delay(15); } //закрываем крышку for(pos = pos2door; pos <= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_3(){ //дерганый вариант: приоткрыли-подергали - закрыли-открыли-выключили-закрыли //открываем крышку for(pos = pos1door; pos >= pos2door+15; pos -=1) { doorServo.write(pos); delay(50); } delay(500); //дергаем крышку for(int i=1; i <=8; i ++) { doorServo.write(pos2door+18); delay(80); doorServo.write(pos2door+15); delay(80); static unsigned long previousMillis = 0; if(millis() - previousMillis > INTERVAL) { previousMillis = millis(); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); } } delay(500); //закрываем крышку for(pos = pos2door+15; pos <= pos1door; pos +=1) { doorServo.write(pos); delay(50); } delay(1000); //открываем крышку for(pos = pos1door; pos >= pos2door; pos -=5) { doorServo.write(pos); delay(15); } //высовываем руку for(pos = pos1hand; pos <= pos2hand+2; pos +=5) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand+2; pos >= pos1hand; pos -=5) { handServo.write(pos); delay(15); } //закрываем крышку for(pos = pos2door; pos <= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_4(){ //открываем крышку delay(2000); for(pos = pos1door; pos >= pos2door+15; pos -=5) { doorServo.write(pos); delay(50); } delay(500); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); delay(2000); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); delay(500); //закрываем крышку for(pos = pos2door+15; pos <= pos1door; pos +=5) { doorServo.write(pos); delay(50); } delay(1000); //открываем крышку не полностью for(pos = pos1door; pos >= pos2door+15; pos -=1) { doorServo.write(pos); delay(50); } delay(2000); //открываем крышку полностью for(pos = pos2door+15; pos >= pos2door; pos -=1) { doorServo.write(pos); delay(15); } //высовываем руку for(pos = pos1hand; pos <= pos2hand-35; pos +=1) { handServo.write(pos); delay(35); } delay(1000); //высовываем руку for(pos = pos2hand-35; pos <= pos2hand+3; pos +=4) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand+3; pos >= pos1hand; pos -=7) { handServo.write(pos); delay(15); } //закрываем крышку for(pos = pos2door; pos <= pos1door; pos +=7) { doorServo.write(pos); delay(15); } delay(500); //открываем крышку for(pos = pos1door; pos >= pos2door+20; pos -=5) { doorServo.write(pos); delay(50); } delay(300); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); delay(500); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); delay(100); //закрываем крышку for(pos = pos2door+20; pos <= pos1door; pos +=1) { doorServo.write(pos); delay(50); } } void move_5(){ //возня for(int i=1; i <=2; i ++) { for(pos = pos1door; pos <= pos1door+45; pos +=5) { doorServo.write(pos); delay(50); } for(pos = pos1door+45; pos >= pos1door; pos -=5) { doorServo.write(pos); delay(50); } delay(100); } //дергаем крышку for(int i=1; i <=3; i ++) { doorServo.write(pos1door-6); delay(80); doorServo.write(pos1door-3); delay(80); } delay(300); //открываем крышку digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos1door; pos >= pos2door+25; pos -=5) { doorServo.write(pos); delay(50); } delay(500); //открываем крышку digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2door+25; pos >= pos2door+10; pos -=5) { doorServo.write(pos); delay(50); } //открываем крышку digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2door+10; pos >= pos2door-5; pos -=2) { doorServo.write(pos); delay(50); } //высовываем руку for(pos = pos1hand; pos <= pos2hand-35; pos +=9) { handServo.write(pos); delay(35); } delay(1000); //убираем руку for(pos = pos2hand-35; pos >= pos2hand-70; pos -=1) { handServo.write(pos); delay(15); } delay(1000); //высовываем руку for(pos = pos2hand-70; pos <= pos2hand+3; pos +=9) { handServo.write(pos); delay(15); } delay(50); //убираем руку for(pos = pos2hand+3; pos >= pos1hand; pos -=7) { handServo.write(pos); delay(15); } //закрываем крышку digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2door-5; pos <= pos1door+3; pos +=5) { doorServo.write(pos); delay(50); } }

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


В принципе, схема понятна из скетча. Но я ее все-таки приведу. Уж простите за качество - как смог. Плату преобразователя взял немного другую - в «анфас» не нашел нужной.


Особых пояснений по скетчу нет. Разве что момент добавления угла поворота на несколько градусов, когда скорость сервы большая. Заметил, что если «рука» выскакивает резко, то она не выключает тумблер. Явно это от низкого качества сервоприводов. Поэтому нужно добавить немного к углу вылета «руки». Подозреваю, что при повторении эти добавочные градусы могут быть у вас другими. Зависит от плеча «руки».
И про программы. Пока шесть программ. Вызываются через генерацию случайного числа. Причем простые программы (0, 1 и 2) вызываются чаще обычных. Всем моим тестировщикам показалось, что более навороченные программы должны быть редким приятным бонусом, тогда появляется некая интрига. Так и сделал.
Для любителей цифр - размер коробки: длина - 150мм, высота - 70мм, ширина - 65мм.

Youtube сильно ухудшил качество. Если нужно глянуть в оригинале - качайте. 21 МБ.
Здесь в скетч внесено изменение, позволяющее увидеть все шесть программ по очереди, чтобы вы имели представление обо всех. В жизни, как я писал, у них псевдо-случайный порядок.



Зарядка производится через микро-USB обычным зарядником от мобильного. Автономность сильно зависит от частоты использования. Иногда несколько суток, а иногда за день «убиваю».


Напоследок.
Проект, тем не менее, вполне можно дорабатывать и дорабатывать. Можно придумывать новые сценарии. Можно добавить пищалку и озвучить устройство. Например пусть «рычит», типа злится, если время между выключением и включением тумблера очень короткое. Можно, как в исходном проекте, добавить перемещение коробочки в разные стороны.
Можно встроить проверку случая, когда «рука», по какой-то причине, не выключила тумблер (например на холоде, серва не дотягивает до нужного угла совсем немного) и скорректировать угол на один раз, написав специально для такого случая какую-нибудь «нервную» программу выключения. Можно поставить Nano и программировать через USB, не разбирая каждый раз устройство.

Да и вообще – можно сделать аккуратнее. Много всяких можно. Собственно именно этим я и предлагаю заняться тем, кого это заинтересовало.
Может я упустил что-то. Крупноват обзор получился для такого простого устройства. Вот за это могу извиниться.
Теперь кот и спасибо за то, что дочитали до конца.

Отладочная плата Arduino Pro Mini построена на микроконтроллере ATmega328. Она имеет 14 цифровых входных/выходных выводов (6 из которых могут использоваться в качестве ШИМ выходов), 6 аналоговых входов, кварцевый резонатор, кнопку перезагрузки и отверстия для монтажа выводных разъемов. Шестипиновый разъем может быть подключен к FTDI кабелю для подачи питания от USB и для установки связи с платой.

Arduino Pro Mini предназначена для полупостоянной установки в устройства. Плата поставляется без предустановленных разъемов, позволяя вам использовать различные типы разъемов или припаивать провода напрямую. Существует две версии Arduino Pro Mini. Первая работает с 3,3В и 8МГц, вторая - с 5В и 16МГц.

Arduino Pro Mini была разработана и производится SparkFun Electronics.

Технические характеристики

Микроконтроллер ATmega328 *
Питание платы 3,35-12 В (для модели 3,3В) или 5-12 В (для модели 5В)
Рабочее напряжение 3,3В или 5В в зависимости от модели
Цифровые входные/выходные выводы 14
ШИМ каналы 6
UART 1
SPI 1
I2C 1
Аналоговые входные выводы 6
Внешние прерывания 2
Постоянный ток через входные/выходные выводы 40 мА
Флеш-память 32 Кб, из которых 2 Кб используются загрузчиком *
Оперативная память SRAM 2 Кб *
Энергонезависимая память EEPROM 1 Кб *
Тактовая частота 8 МГц (версии 3,3В) или 16 МГц (версии 5В)

Более старые платы были оснащены микроконтроллером ATmega168 со следующими характеристиками:

  • флеш-память: 16 Кб;
  • SRAM: 1 Кб;
  • EEPROM: 512 б.

Документация

Схемы, разводка платы

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

Питание

Arduino Pro Mini может питаться через FTDI кабель, подключенный к ее шестипиновому разъему, или стабилизированным источником напряжения 3,3В или 5В (в зависимости от модели) через вывод Vcc. Стабилизатор напряжения на плате может работать с постоянными напряжениями до 12 вольт. Если вы будете подавать на плату нестабилизированное напряжение, используйте вывод RAW, а не VCC. На плате расположены следующие выводы питания:

  • RAW для подачи на плату нестабилизированного напряжения;
  • VCC для подачи на плату стабилизированного напряжения 3,3 или 5 вольт;
  • GND вывод земли.

Память

ATmega328 обладает 32 килобайтами флэш-памяти для хранения кода программы (из которых 2 килобайта используется загрузчиком), 2 килобайтами SRAM и 1 килобайтом EEPROM (которая может быть считана и записана с помощью библиотеки EEPROM).

Входы и выходы

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

Также некоторые выводы обладают специальными функциями:

  • последовательный порт: 0 (RX) и 1 (TX) . Выводы используются для приема (RX) и передачи (TX) последовательных данных с TTL уровнями. Эти выводы подключены к выводам TX0 и RX1 шестипинового разъема;
  • внешние прерывания: 2 и 3 . Эти выводы могут быть сконфигурированы для вызова прерывания по фронту или по спаду импульса или по изменению уровня на выводе. Смотрите работу с прерываниями на Arduino для более подробной информации;
  • ШИМ: выводы 3, 5, 6, 9, 10 и 11 . Обеспечивают 8-битный ШИМ выход с помощью функции analogWrite() ;
  • SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) . Эти выводы поддерживают связь через SPI ;
  • светодиод: 13 . Встроенный светодиод подключен к цифровому выводу 13. При высоком уровне на выводе светодиод загорается, при низком - гаснет.
  • I2C: A4 (SDA) и A5 (SCL) . Поддерживают связь через TWI с помощью библиотеки Wire ;

Arduino Pro Mini имеет 8 аналоговых входов, каждый из которых обеспечивает 10-битное разрешение (т.е. 1024 разных значений). Четыре из них расположены на разъемах на краю платы, два (входы 4 и 5) - на отверстиях на плате. Аналоговые выводы измеряют напряжение от нуля до VCC.

И еще один вывод на плате:

  • Reset . Низкий уровень на этом выводе приводит к перезагрузке микроконтроллера. Обычно используется для добавления кнопки сброса на платы расширения, закрывающей доступ к кнопке сброса на самой плате Arduino.

Связь

Плата Arduino Pro Mini обладает рядом возможностей для связи с компьютером, с другой платой или с другими микроконтроллерами. ATmega328 обеспечивает аппаратный UART порт, доступный на цифровых выводах 0 (RX) и 1 (TX), для последовательной связи с TTL уровнями. Arduino IDE включает в себя монитор последовательного порта, который позволяет посылать и принимать от платы простые текстовые данные через USB соединение.

Библиотека SoftwareSerial позволяте организовать последовательную связь через любые цифровые выводы Arduino Pro Mini.

ATmega328 также поддерживает связь через I2C (TWI) и SPI. Arduino IDE включает в себя библиотеку Wire для упрощения использования шины I2C. Для связи через SPI смотрите техническое описание на ATmega328.

Программирование

Arduino Pro Mini может быть запрограммирована с помощью Arduino IDE.

ATmega328 на Arduino Pro Mini поставляется с уже зашитым загрузчиком, что позволяет вам загружать в микроконтроллер новый код программы без использования внешнего аппаратного программатора. Связь осуществляется с помощью протокола STK500.

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

Автоматическая (программная) перезагрузка

Вместо того, чтобы требовать физического нажатия кнопки перезагрузки перед прошивкой кода новой программы, Arduino Pro Mini спроектирована таким образом, что она позволяет перезагружать ее с помощью программного обеспечения, запущенного на подключенном компьютере. Один из выводов 6-пинового разъема подключен к линии сброса ATmega328 через конденсатор 100 нФ. Этот вывод подключает одну из линий управления потоком преобразователя USB/последовательный порт, подключенную к разъему: RTS при использовании FTDI кабеля, DTR при использовании адаптера Sparkfun. Когда на этой линии появляется низкий уровень на достаточно долгое время, микросхема перезагружается. Arduino IDE использует эту возможность, чтобы позволить вам загрузить код, просто нажав кнопку загрузки в Arduino IDE. Такая архитектура позволяет уменьшить таймаут загрузчика, поскольку процесс прошивки всегда синхронизирован со спадом сигнала на линии RESET.

Однако эта система может приводить и к другим последствиям. При подключении Arduino Pro Mini к компьютерам, работающим на Mac OS X или Linux, микроконтроллер будет сбрасываться при каждом соединении программного обеспечения с платой (через USB). На следующие полсекунды после сброса на Arduino Pro Mini активизируется загрузчик. Несмотря на то, что загрузчик запрограммирован игнорировать посторонние данные (т.е. все данные, не касающиеся процесса прошивки новой программы), он может перехватить несколько первых байт данных из посылки, отправляемой плате сразу после установки соединения. Соответственно, если в программе, работающей на Arduino Pro Mini, предусмотрено получение от компьютера каких-либо настроек или других данных при первом запуске, убедитесь, что программное обеспечение, с которым взаимодействует Arduino Pro Mini, осуществляет отправку спустя секунду после установки соединения.

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

Arduino Pro Mini - это устройство на базе микроконтроллера ATmega328. В его состав входит: 14 цифровых входов/выходов (из них 6 могут использоваться в качестве ШИМ-выходов), 8 аналоговых входов, кварцевый резонатор, кнопка сброса и контактные площадки для впаивания разъемов. Шестиконтактный разъем может служить для питания и взаимодействия с платой через USB посредством FTDI-переходника либо макетной платы Sparkfun.

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

Существует две версии Pro Mini: одна работает от 3.3В при частоте 8 МГц, другая - от 5В при 16 МГц.

Arduino Pro Mini разработан и изготовлен фирмой SparkFun Electronics.

Схема и исходный проект

Характеристики

Микроконтроллер ATmega168 или ATmega328
Рабочее напряжение 3.3В или 5В (в зависимости от модели)
Напряжение питания 3.35-12В (для модели 3.3В) или 5 - 12В (для модели 5В)
Цифровые входы/выходы 14 (из них 6 могут использоваться в качестве ШИМ-выходов)
Аналоговые входы 8
Максимальный ток одного вывода 40 мА
Flash-память 16 КБ (из которых 2 КБ используются загрузчиком)
SRAM 1 КБ
EEPROM 512 байт
Тактовая частота 8 МГц (для модели 3.3В) или 16 МГц (в модели 5В)

Питание

Arduino Pro Mini может быть запитан от различных источников:

  • через макетную плату;
  • через переходник FTDI , подсоединенный к шестиконтактному разъему;
  • от стабилизированного источника питания с напряжением 3.3В или 5В (в зависимости от модели), подключенного к выводу Vcc.

Кроме того, на плате есть встроенный стабилизатор напряжения, благодаря которому допускается подавать на плату напряжение питания величиной до 12В. Если для питания платы используется нестабилизированный источник питания, убедитесь, что он подсоединен к выводу "RAW", а не VCC.

Ниже перечислены выводы питания, расположенные на плате:

  • RAW. Для питания платы от нестабилизированного источника напряжения.
  • VСС. Стабилизированное напряжение 3.3В или 5В.
  • GND. Выводы земли.

Память

Объем флеш-памяти программ микроконтроллера ATmega328 составляет 32 КБ (из которых 2 КБ используются загрузчиком). Микроконтроллер также имеет 1 КБ памяти SRAM и 512 байт EEPROM (из которой можно считывать или записывать информацию с помощью библиотеки EEPROM).

Входы и выходы

Связь

Arduino Pro Mini предоставляет ряд возможностей для осуществления связи с компьютером, еще одним Ардуино или другими микроконтроллерами. В ATmega328 имеется приемопередатчик UART, позволяющий осуществлять последовательную связь посредством цифровых выводов 0 (RX) и 1 (TX). В пакет программного обеспечения Ардуино входит специальная программа, позволяющая считывать и отправлять на Ардуино простые текстовые данные через USB-соединение.

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

Автоматический (программный) сброс

Чтобы каждый раз перед загрузкой программы не требовалось нажимать кнопку сброса, Arduino Pro Mini спроектирован таким образом, который позволяет осуществлять его сброс программно с подключенного компьютера. Один из выводов шестиконтактного разъема соединен с выводом RESET микроконтроллера ATmega328 через конденсатор номиналом 100 нФ. При подключении компьютеру этот вывод также связан с одной из линий, участвующих в аппаратном управлении потоком данных, идущих через преобразователь USB-Serial: при использовании кабеля FTDI - с линией RTS, при использовании макетной платы Sparkfun - с линией DTR. Когда на этой линии появляется ноль, вывод RESET, соответственно, также переходит в низкий уровень на время, достаточное для перезагрузки микроконтроллера. Данная особенность используется для того, чтобы можно было прошивать микроконтроллер всего одним нажатием кнопки в среде программирования Ардуино. Такая архитектура позволяет уменьшить таймаут загрузчика, поскольку процесс прошивки всегда синхронизирован со спадом сигнала на линии RESET.

Однако эта система может приводить и к другим последствиям. При подключении Pro Mini к компьютерам, работающим на Mac OS X или Linux, его микроконтроллер будет сбрасываться при каждом соединении программного обеспечения с платой. После сброса на Pro Mini активизируется загрузчик на время около полсекунды. Несмотря на то, что загрузчик запрограммирован игнорировать посторонние данные (т.е. все данные, не касающиеся процесса прошивки новой программы), он может перехватить несколько первых байт данных из посылки, отправляемой плате сразу после установки соединения. Соответственно, если в программе, работающей на Ардуино, предусмотрено получение от компьютера каких-либо настроек или других данных при первом запуске, убедитесь, что программное обеспечение, с которым взаимодействует Ардуино, осуществляет отправку спустя секунду после установки соединения.

Физические характеристики

Габаритные размеры печатной платы Arduino Pro Mini: 1.8 см х 3.3 см.

Это одна из самых простых и миниатюрных плат Ардуино. На ней только минимум компонентов: микроконтроллер, кварцевый резонатор, блокировочные конденсаторы, два светодиода и стабилизатор напряжения.

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

Размеры платы Arduino Pro Mini всего 18 x 33 мм, что позволяет применять ее в проектах критичных к габаритам электроники.

Плата поставляется без впаянных разъемов. Это дает возможность выбрать свой способ подключения платы: впаять разъемы или выполнить соединение пайкой проводов.

Естественно, простота и миниатюрные размеры платы отразились на ее стоимости. Это одна из самых дешевых плат Ардуино. На момент написания статьи (февраль 2017 г.) по моей плата Arduino Pro Mini с микроконтроллером ATmega328 стоит всего 180 руб.

Все вышесказанное делает привлекательным применение Arduino Pro Mini:

  • в проектах с ограниченными конструктивными размерами;
  • при отсутствии необходимости связи с компьютером;
  • при серийном выпуске;
  • при ограничениях на стоимость изделия.

Платы выпускаются в модификациях:

  • тип микроконтроллера ATmega168 или ATmega328;
  • напряжение питания 3,3 или 5 В.

В варианте с микроконтроллером ATmega168 объемы всех типов памяти (ОЗУ, FLASH и EEPROM) уменьшены в 2 раза.

В вариантах с питанием 3,3 В уменьшена тактовая частота с 16 до 8 мГц.

Характеристики платы Arduino Pro Mini.

Большей частью плата имеет такие же параметры, как и другие платы Ардуино с микроконтроллерами ATmega168/328.

Тип микроконтроллера ATmega168 ATmega328
Архитектура AVR
Напряжение питания микроконтроллера 3,3 или 5 В (в зависимости от модификации)
Напряжение питания платы 3,35 - 12 В (модификация 3,3 В) или 5,2 – 12 В (модификация 5 В)
Тактовая частота 8 мГц (модификация 3,3 В) или 16 мГц (модификация 5 В)
Объем оперативной памяти (SRAM) 1 кбайт 2 кбайт
Объем памяти программ (FLASH) 16 кбайт 32 кбайт
Объем энергонезависимой памяти (EEPROM) 512 байт 1 кбайт
Дискретные входы/выходы 14 (6 могут быть использованы для генерации ШИМ сигналов)
Аналоговые входы 6 или 8 входов
Максимально-допустимый ток цифрового выхода 40 мА (суммарный ток выводов не более 200 мА)
Размеры платы 18 x 33 мм

Назначение выводов платы Arduino Pro Mini.

Питание.

Arduino Pro Mini может получать питание следующими способами.

  • От внешнего стабилизированного источника питания напряжением 5 В. В этом случае используется вывод VCC.
  • От USB порта компьютера через преобразователь интерфейсов USB-UART, подключенный к 6 контактному разъему платы. Используется вывод VCC 6 контактного разъема.
  • От внешнего не стабилизированного источника питания напряжением до 12 В. В этом случае используется встроенный стабилизатор напряжения платы. Питание подключается через вывод RAW.

Схема питания платы Arduino Pro Mini выглядит так.

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

В качестве стабилизатора напряжения питания микроконтроллера используется микросхема MIC5205. Это линейный стабилизатор с низким падением напряжения.

При внешнем питании платы через вывод RAW этот стабилизатор может быть использован для питания внешнего устройства через вывод VCC. Ток потребления ограничен нагрузочной способностью MIC5205 и не должен превышать 150 мА. Кроме того необходимо учитывать максимально-допустимую мощность рассеивания стабилизатора. По этой ссылке можно получить подробную информацию о MIC5205 и расчете максимальной мощности для этого стабилизатора.

Входы и выходы платы.

  • Все выводы, аналоговые или цифровые, могут работать в диапазоне от 0 до 5 В (от 0 до 3,3 В для модификации платы с питанием 3,3 В).
  • Для дискретного вывода в режиме выхода втекающий или вытекающий ток не должен превышать 40 мА. Суммарный ток выводов микроконтроллера должен быть не более 200 мА.
  • Все выводы микроконтроллера подключены к источнику питания через подтягивающие резисторы сопротивлением 20-50 кОм. Подтягивающие резисторы могут быть отключены программно.
  • Если на любой аналоговый или дискретный вход подать напряжение ниже 0 В или свыше 5 В (свыше 3,3 В для модификации с питанием 3,3 В), то оно будет ограничено защитными диодами микроконтроллера.

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

Цифровые выводы. У платы есть 14 цифровых выводов. Каждый из них может работать в режиме входа и выхода. Некоторые выводы еще имеют дополнительные функции.

Последовательный интерфейс UART : выводы 0(RX) и 1(TX). Используются для обмена данными по интерфейсу UART и загрузки программы в микроконтроллер из Arduino IDE. Плата не содержит преобразователя интерфейса USB-UART. Для связи с компьютером необходимо использовать внешний конвертер интерфейсов.

Входы внешних прерываний: выводы 2 и 3. К выводам могут быть подключены сигналы внешних аппаратных прерываний.

ШИМ: выводы 3,5,6,9, 10, 11. На этих выводах может быть сформирован аппаратным способом сигнал ШИМ. После сброса в системе установливаются параметры ШИМ: 8 бит, 500 Гц.

Интерфейс SPI: выводы 10 (SS), 11 (MOSI), 13 (SCK). Выводы аппаратного последовательного интерфейса SPI.

Интерфейс I2C: выводы 4 (SDA) и 5 (SCL). Сигналы аппаратного интерфейса I2C.

Светодиод: вывод 13. К этому выводу подключен светодиод общего назначения. Светится при высоком уровне сигнала на выводе 13.

Аналоговые входы: A0…A8. 6 или 8 аналоговых входов, предназначенных для измерения напряжения. Разрядность АЦП – 10 бит, что соответствует 1024 градациям сигнала. Время измерения порядка 100 мкс. Для сохранения точности выходное сопротивление источника сигнала не должно превышать 10 кОм.

RST. Сигнал сброса микроконтроллера. Низкий уровень приводит к перезагрузке системы. Вывод RST на 6 контактном разъеме имеет несколько другое назначение и используется при загрузке программы в микроконтроллер.

На плате есть 2 светодиода.

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

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

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

С платой Arduino Pro Mini все сложнее. Некуда подключать стандартный USB кабель.

Затем автоматически появляется сообщение “Загрузка”.

В этот момент Arduino IDE инициирует импульс низкого уровня на выходе DTR. DTR это один из сигналов управления передачей данных COM порта. Обычно он формируется на выходе встроенного преобразователя интерфейсов USB-UART.

Во всех платах Ардуино сигнал DTR подключен к выводу сброса микроконтроллера через конденсатор емкостью 0,1 мкФ. Получается простейшая дифференцирующая цепочка с постоянной времени 1 мс.

У платы Arduino Pro Mini внутреннего конвертера интерфейсов нет, поэтому сигнал DTR выведен на 6 контактный разъем. Схема сброса от сигнала DTR для Arduino Pro Mini выглядит так.

Независимо от длительности импульса DTR на входе ”RESET” микроконтроллера будет сформирован короткий импульс сброса.

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

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

Из всего вышесказанного становится понятно, что если плату Arduino Pro Mini подключить через полноценный конвертер интерфейсов с сигналами RXD, TXD и DTR, то загрузка будет происходит совершенно так же, как и в других платах Ардуино со встроенным преобразователем интерфейсов. Дополнительно можно использовать для питания платы сигнал 5 В интерфейса USB. Или 3,3 В для плат с питанием 3,3 В.

Для подключения внешнего преобразователя интерфейсов предназначен 6 контактный разъем платы Arduino Pro Mini (при необходимости его можно впаять). Разъем содержит все сигналы, необходимые для загрузки программы в плату.

Надо только учитывать, что на некоторых платах сигналы RXI и TXO 6 контактного разъема могут соответствовать сигналам RXD и TXD микроконтроллера, а могут и быть включены наоборот. Например, как на этой плате.

Лучше прозвонить цепи выводов RXI и TXO. На моей плате сигналы соответствуют. Схема подключения конвертера USB-UART к моей плате выглядит так.

Обратите внимание, что сигнал DTR надо подключать к выводу RST именно на 6 контактном разъеме. Он соединен с входом сброса микроконтроллера через дифференцирующий конденсатор. На плате есть еще один вывод RST. Он подключен непосредственно ко входу “RESET” микроконтроллера.

В качестве внешнего USB-UART конвертера можно использовать любой модуль, например, или модуль . Не забудьте установить на компьютер драйвер для модуля преобразователя интерфейсов.

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

Другой способ – использовать кнопку ”RESET” платы Arduino Pro Mini.

При загрузке программы ее надо вовремя нажать. В момент, когда появилось сообщение ”Загрузка” в окне Arduino IDE необходимо кратковременно нажать эту кнопку. На это есть время примерно 1 секунда. В принципе это сделать несложно, но когда голова забита разработкой программы такая простая операция несколько напрягает.

В следующем уроке собираюсь начать новую большую тему – обмен данными между платами Ардуино.

Рубрика: . Вы можете добавить в закладки.

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

Arduino Pro Mini 5 В

Эта версия снабжена микроконтроллером ATmega328. В отличии от своего младшего собрата, он имеет вдвое большие объемы энергонезависимой и flash памяти. И может похвастаться тактовой частотой в 16 МГц. Узнать о способах прошивки этого микроконтроллера вы можете в моей статье:

Характеристики

  • Микроконтроллер: ATmega168 или ATmega328
  • Предельное напряжение питания: 3,3-12 В и 5-12 В
  • Цифровых вводов/выводов: 14
  • ШИМ: 6 цифровых пинов могут быть использованы как выводы ШИМ
  • Аналоговые выводы: 8
  • Максимальная сила тока: 40 mAh с одного вывода и 400 mAh со всех выводов.
  • Flash память: 16 кб
  • SRAM: 1 кб
  • EEPROM: 512 байт
  • Тактовая частота: 8 МГц и 16 МГц

Подключение питания к Arduino Pro Mini

Этот микроконтроллер можно питать тремя способами:

  • Переходником FTDI, подключенному к 6 соответствующим пинам.
  • Подавая стабилизированное напряжение на вывод Vcc. 3,3 В или 5 В в зависимости от версии
  • Подавая напряжение на вывод RAW. 3,3-12 В или 5-12 В в зависимости от версии

Как уже было написано выше, плата имеет 14 цифровых пинов. На плате они помечены порядковым номером. Они могут быть как входом так и выходом. Рабочее напряжение этих пинов составляет 3,3 В или 5 В.

Аналоговые пины на плате помечены ведущей «A». Эти пины являются входами и не имеют подтягивающих резисторов. Они измеряют поступающее на них напряжение и возвращают значение от 0 до 1024 при использовании функции analogRead(). Эти пины измеряют напряжение с точностью до 0,005 В.

Широтно-импульсная модуляция (ШИМ) Arduino Pro Mini

ШИМ выходы у этой платы никак не помечены. Нужно просто запомнить номера цифровых выводов, которые подключены к широтно-импульсному генератору. У Arduino Pro Mini есть 6 выводов ШИМ, это пины 3, 5, 6, 9, 10 и 11. Для использования ШИМ у Arduino есть специальная функция .

Другие пины:

  • 0(Rx) и 1(Tx) используются для передачи данных по последовательному интерфейсу.
  • Выводы 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) рассчитаны для связи по интерфейсу SPI.
  • Так же на выводе D13 имеется встроенный в плату светодиод.
  • А4 (SDA) и А5 (SCL) могут использоваться для связи с другими устройствами по шине I2C. Подробнее про этот интерфейс вы можете почитать на википедии . В среде разработке Arduino IDE есть встроенная библиотека «wire.h» для более легкой работы с I2C.

Физические характеристики

Arduino Pro Mini имеет следующие размеры: длина 33 мм и ширина 18 мм, а весит всего около 10 грамм. Расстояние между выводами равняется 2,54 мм.