Перейти к содержимому

Как использовать шаговый двигатель в тинкеркад

  • автор:

Привод стрелки шаговым двигателем

Попробовав переключать стрелки с сервоприводом, я быстро понял, что этот вариант мне не подходит — сервопривод слишком большой и мощный, плюс он двигается по кругу, а не линейно.

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

Кандидат в приводы стрелок

Моторчики эти существуют в двух вариантах: с полукольцом (на фото) и с ушком за которое можно закрепить что-то винтом.

Для проверки сделал тягу из проволоки 0.5 мм., которая прекрасно держится за выступ с полукольцом, собрал схему с ардуино, стабилизатором питания AMS1117 и драйвером MX1508, взял элементарный скетч для шагового двигателя, настроил движение на 450 шагов + ресет на 500, и результат оказался очень хорошим:

У меня стрелки Peco с достаточно мощной пружиной, которая обеспечивает нужное прижимание остряка, демонтировать пружину не требуется. Мотор запитан от стабилизатора 3.3 В, чтоб преодолевать сопротивление пружины, а при встрече с препятствием пропускать шаги не повреждая ничего вокруг. Тяга из проволоки сама тоже немного пружинит, а так же пружинит в местах крепления к стрелке и редуктору. Плюс есть небольшой люфт в крепеже тяги к стрелке и редуктору, что дополнительно защищает стрелку от повреждения при переключении, т.е. финальные доли миллиметра остряк проходит под действием родной пружины в стрелке, а тяга его догоняет.

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

Схема в стиле кишки наружу

На фото выше первая сборка прототипа декодера для управления шаговым двигателем привода стрелки. Схема управления шаговым двигателем крайне простая. Схема для чтения DCC-пактов сложнее, но тоже ничего сверхъестественного. Схемы и программы для ардуино легко гуглятся, а сложности и вопросы решаются на форумах. Ноу-хау только в том, чтоб совместить все в одном и научить правильно работать.

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

Изначально планировался всего один вариант исполнения привода, но на практике их получилось несколько для разных вариантов размещения.

Первый чертеж привода

Для проектирования 3D-моделей приводов я освоил FreeCAD, который не лишен недостатков, но для моих целей оказался гораздо удобнее браузерного Tinkercad. Разработка каждого варианта заняла много времени как на проектирование, так и на тестирование результата, и породила много пластикового брака. Описывать тонкости процесса нет смысла, в целом все сводилось к измерениям, проектированию, печати, проверке; и так много раз. В результате появилось несколько жизнеспособных вариантов приводов. Так же в процессе разработки проволочная тяга была заменена пластиковой, которую легче воспроизвести и выглядит она лучше, а сам редуктор на вариант с ушком вместо полукольца для возможности использования винтов в креплении тяги.

Накладной привод

Размещается непосредственно рядом со стрелкой на поверхности макета. Максимально нагляден и удобен в обслуживании, но занимает достаточно много места.

P10227-190514.jpg

Обычная крышкаКомпактная крышка

GP35 с выступающими частями проходит привод со стандартной крышкой

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

Так же есть дополнительная компоновка, где мотор утоплен ниже уровня «земли», чтоб габарит привода был не выше рельса.

Утопленный привод

Утопленный привод

Привод на макете

И еще один вариант компоновки с мотором ниже уровня «земли», но развернутым зеркально. Такой вариант используется в тех местах, где нет возможности разместить привод на противоположной стороне стрелки.

Зеркальный привод без крышки

Зеркальный привод на макете

Накладной привод с датчиком положения

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

P10503-121443.jpgP10503-121421.jpg

На тяге «гребенка» с шагом 1 мм, на перевод стрелки приходится 4 срабатывания датчика, это вполне достаточно для контроля положения. Красный пластик «прозрачный» для датчика, поэтому окрашен в черный цвет.

Туннельный привод

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

P10321-004411.jpg P10321-004417.jpgP10321-004428.jpg

Туннельный привод на макете

Позднее сделал еще одну компоновку для туннельного привода, где мотор расположен ниже уровня земли и закрыт сверху плоской крышкой.

Туннельный привод 2

Туннельный привод 2 в сборе

Туннельный привод на макете

Кассетный привод

Эта компоновка была разработана для минимизации видимой части привода. Редуктор мотора расположен перпендикулярно плоскости стрелки, на съемной кассете. Большая часть расположена ниже уровня макета, видимой остается лишь тяга и плоскость основания.

P10320-010556.jpg P10320-010610.jpg P10320-010727.jpg P10320-010837.jpgP10320-010901.jpg

Кассетный привод на макете

Подмакетный привод

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

P10325-234152.jpgP10325-234247.jpg

Очевидным недостатком такой компоновки является сложность обслуживания, невозможность размещения в толстых подмакетниках (например из ЭППС как у меня) и невозможность размещения в районе ребер жесткости, которые заблокируют возможность доступа к приводу снизу.

Arduino DCC step motor shield

Мне требовалось устройство, на котором можно было бы отладить схему и ПО декодера, а так же использовать для перевода приводов, пока не готовы печатные платы. Использовать сборку в стиле «кишки наружу» на макетной плате (фото выше) было крайне неудобно, поэтому был сделан шилд для ардуино уно.

Arduino DCC step motor shield

Шилд разделен на 2 платы: приемник DCC-сигнала и плата управления двигателем. На приемнике предусмотрена кнопка ручного управления, а на плате управления двигателем предусмотрен переключатель выбора питания драйвера от стабилизатора 3.3В или от 5В.

Декодер для шагового двигателя

Декодер для одного привода

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

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

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

Платы для декодера

Для сборки декодера требуются минимальные навыки владения паяльником. Для включения режима программирования (записи CV) предусмотрен отдельный переключатель, это позволяет программировать нужный декодер не снимая с макета.

Программное обеспечение декодера (прошивка) создана на основе открытых библиотек для ардуино и, конечно же, моего «ноу-хау», чтоб все слаженно работало вместе.

Подробное описание разработанного декодера и его настроек можно посмотреть здесь.

Данные декодеры я планирую продавать в виде КИТов для сборки вместе с приводом стрелки. Если вы заинтересованы в приобретении, пишите!

Стоимость

Для сборки экспериментального накладного привода понадобилось купить:

  • разные модели моторов, драйверы и стабилизаторы питания, примерно на 500 руб.
  • ардуино, макетная плата и всякая мелочь для нее, еще около 1000 руб.

Комплект из 10 моторов для приводов 1000 руб.

Всякие электронные компоненты для создания прототипа шилда для ардуино еще примерно 1000 руб.

Комплект 10 драйверов и разной электроники для плат 1000 руб.

Комплект из 10 ардуино про-мини 3000 руб.

3D принтер и пластик 17000 руб. (конечно он нужен не только для макета, но тем не менее)

Комплект из 10 плат для декодеров 1000 руб.

Комплект из 10 плат для двойных декодеров 1000 руб.

Еще комплект из 10 ардуино и 20 драйверов 2500 руб.

Замок с радиоуправлением на Arduino.

Наверное, у каждого есть место, где лежат личные вещи, и вы не хотите, чтобы к ним был доступ у других. Как же защитить от несанкционированного доступа к личным вещам? Сделать навесной замок, или, может, установить врезной замок? Но мы не будем искать легких путей, и, в данном Arduino проекте , сделаем замок с радиоуправлением на Arduino. Это достаточно простой проект, и повторить его будет несложно. Но у вас должна быть возможность распечатать несколько деталей на 3D принтере. Блоги о 3Д принтере сегодня очень распространены, и также можно заказать печать в вашем городе, относительно недорого.

Описание работы механизма замка на Arduino.

Механическая часть замка взята из интернета, и называлась она «Door lock with Arduino», скачать исходные материалы можно со страницы автора. Механическая часть замка сделана неплохо, но кода управления нет, поэтому я решил сделать свою версию замка.

Распечатал всё необходимое для проекта. А из подручных материалов собрал вот такой макет двери, чтобы наглядно можно было проверить работу замка.

из подручных материалов собрал вот такой макет двери

Принцип работы замка.

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

Шпилька устанавливается на основание, которое прикручивается к двери. Также, на основание крепится шаговый двигатель 28BYJ-48. На вал двигателя одевается шестеренка, которая и перемещает нашу шпильку.

Механическая часть замка на радио управлении.

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

Электроника радиозамка на Arduino.

Как вы поняли, приводом замка будет шаговый двигатель 28BYJ-48. Шаговый двигатель продается вместе с драйвером ULN2003, что позволяет без проблем подключить шаговый двигатель к ардуино. Подробнее о подключении шагового двигателя 28BYJ-48 читайте в уроке: «Подключаем к Arduino Шаговый двигатель 28BYJ-48 на драйвере ULN2003».

Для проверки работоспособности собрал всю электронику на столе. И вот что получилось.

Для проверки работоспособности собрал всю электронику на столе

Схема для теста радиоуправляемого замка на Arduino.

Схема для теста радиоуправляемого замка на Arduino.

Для проверки работоспособности использовал, вместо конечного выключателя, обычную тактовую кнопку.

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

Алгоритм работы радиоуправляемого замка.

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

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

Такой нехитрый алгоритм работы замка должен быть.

Пояснение к коду замка на Arduinoс радиопультом.

Для управления шаговым двигателем будем использовать библиотеку AccelStepper library. Про работу с данной библиотекой рассказывал в уроке про драйвера шаговых двигателей: «Как подключить A4988 (DRV8825) к Arduino? Скетч, библиотека». Но еще раз повторюсь, как её установить.

Установка библиотеки AccelStepper.

Чтобы установить библиотеку, перейдите в «Скетч» -> «Подключить библиотеку» -> «Управление библиотеками». Подождите, пока диспетчер библиотек загрузит индекс библиотек, и обновит список установленных библиотек.

Установка библиотеки AccelStepper.

Отфильтруйте свой поиск, набрав «Accelstepper». Щелкните первую запись и выберите «Установка».

Отфильтруйте свой поиск, набрав «Accelstepper».

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

Скетч замка с радиоуправлением на Ардуино.

// Замок с радиоуправлением на Arduino // https://arduino-tex.ru/ #include #define HALFSTEP 8 #define buttonPin 6 #define RADIO_PIN 7 // Определение пинов для управления двигателем #define motorPin1 8 // IN1 на 1-м драйвере ULN2003 #define motorPin2 9 // IN2 на 1-м драйвере ULN2003 #define motorPin3 10 // IN3 на 1-м драйвере ULN2003 #define motorPin4 11 // IN4 на 1-м драйвере ULN2003 boolean lastBt = HIGH; boolean currentBt = false; boolean debvence (boolean last) < boolean current = digitalRead(buttonPin); if ( last != current) < delay(5); current = digitalRead(buttonPin); return current; >> // Инициализируемся с последовательностью выводов IN1-IN3-IN2-IN4 // для использования AccelStepper с 28BYJ-48 AccelStepper myStepper(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4); void setup() < // Задаём максимальную скорость двигателя myStepper.setMaxSpeed(2000.0); // Задаём ускорение двигателя myStepper.setAcceleration(200.0); // Установим скорость в шагах за секунду myStepper.setSpeed(1200); pinMode(buttonPin, INPUT_PULLUP); pinMode(RADIO_PIN, INPUT); Serial.begin(9600); Serial.println("Ok!"); >void loop() < // Получаем состояние кнопки currentBt = debvence(lastBt); // Если кнопка нажата if (lastBt == HIGH && currentBt == LOW) < myStepper.moveTo(2000); myStepper.runToPosition(); // Ждем пока двигатель не встанет в заданную позицию Serial.println("On"); delay(300); // Ждем >// Изменяем направление шаговика if ( digitalRead(RADIO_PIN) == HIGH && currentBt == LOW) < myStepper.moveTo(0); myStepper.runToPosition(); // Ждем пока двигатель не встанет в заданную позицию Serial.println("Off"); delay(300); // Ждем >lastBt = currentBt; >
Пояснение к коду.

Подключаем библиотеку AccelStepper, и указываем тип шагового двигателя, в нашем случае это «8».

#include #define HALFSTEP 8

Указываем пины подключения конечного выключателя и радиомодуля HY-DJM-5V. Подробное описание радиопульта и радиоприемника HY-DJM-5V читайте в уроке: «Радиопульт с приемником HY-DJM-5V. Подключаем к Arduino».

#define buttonPin 6 #define RADIO_PIN 7

Определим пины подключения драйвера ULN2003.

// Определение пинов для управления двигателем #define motorPin1 8 // IN1 на 1-м драйвере ULN2003 #define motorPin2 9 // IN2 на 1-м драйвере ULN2003 #define motorPin3 10 // IN3 на 1-м драйвере ULN2003 #define motorPin4 11 // IN4 на 1-м драйвере ULN2003

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

boolean lastBt = HIGH; boolean currentBt = false; boolean debvence (boolean last) < boolean current = digitalRead(buttonPin); if ( last != current) < delay(5); current = digitalRead(buttonPin); return current; >>

Инициализируем с последовательностью выводы IN1-IN3-IN2-IN4, для использования AccelStepper с шаговым двигателем 28BYJ-48.

// Инициализируемся с последовательностью выводов IN1-IN3-IN2-IN4 // для использования AccelStepper с 28BYJ-48 AccelStepper myStepper(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);

В блоке setup() устанавливаем параметры для работы с шаговым двигателем.

// Задаём максимальную скорость двигателя myStepper.setMaxSpeed(2000.0); // Задаём ускорение двигателя myStepper.setAcceleration(200.0); // Установим скорость в шагах за секунду myStepper.setSpeed(1200);

Инициализируем пин входа конечного выключателя, и пин подключения от радиомодуля.

pinMode(buttonPin, INPUT_PULLUP); pinMode(RADIO_PIN, INPUT);

Инициализируем работу с монитором порта, и выводим «Ok!». Работу с монитором порта можно закомментировать. Я использовал вывод информации в монитор порта для отладки программы.

Serial.begin(9600); Serial.println("Ok!");

В основном цикле loop() получаем состояние кнопки из функции устранения дребезга. Что такое дребезг кнопки, и как с ним бороться, читайте в уроке: «Arduino: Дребезг — программное устранение. Нажатие кнопки без ложных срабатываний».

// Получаем состояние кнопки currentBt = debvence(lastBt);

Дальше проверяем, сработал конечный выключатель, или нет.

// Если кнопка нажата if (lastBt == HIGH && currentBt == LOW) 

Если конечный выключатель нажали, то перемещаем шаговый двигатель на 2000 шагов.

myStepper.moveTo(2000); myStepper.runToPosition(); // Ждем пока двигатель не встанет в заданную позицию

После чего отправляем в монитор порта информацию "On".

Serial.println("On");

Если была нажата кнопка на пульте, и при этом конечный выключатель в нажатом состоянии.

// Если была нажата кнопка на пульте, и при этом конечный выключатель в нажатом состоянии. if ( digitalRead(RADIO_PIN) == HIGH && currentBt == LOW) 

То отправляем команду переместить шаговый двигатель в нулевую точку.

myStepper.moveTo(0); myStepper.runToPosition(); // Ждем пока двигатель не встанет в заданную позицию

Отправляем в монитор порта значение "Off".

Serial.println("Off");

В конце цикла loop() переприсваиваем прошлому состоянию кнопки текущее состояние.

lastBt = currentBt;

Тестирование работы замка.

Тестирование работы замка.

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

Проверяем работу замка на стенде.

Проверяем работу замка на стенде.

На стенде решил использовать Arduino UNO, и схема подключения будет выглядеть немного по-другому. Но пины подключения будут такие же, что и в примере с использованием Arduino NANO.

Схема подключения радиоуправления замком на Arduino UNO.

Схема подключения радиоуправления замком на Arduino UNO.

В качестве источника питания использую Powerbank 5В 1А. Пока тестировал, проверял и снимал видео, Powerbank немного разрядился, и шаговый двигатель стал пропускать шаги. Поэтому рекомендую, в качестве источника питания, использовать блок питания на 5В 1А. Можно взять зарядку от старого телефона.

Вывод.

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

Понравилс я проект Замок с радиоуправлением на Arduino? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Arduino и использование двигателей. Подключение двигателя постоянного тока и управление им.

Управление маленьким двигателем может осуществляться довольно просто. Если двигатель достаточно маленький, он может быть непосредственно соединен с выводом Arduino, и просто изменяя уровень управляющего сигнала от логической единицы до нуля будем контролировать моторчик. Этот проект раскроет вам основную логику в управлении электродвигателем; однако, это не является стандартным способом подключения двигателей к Arduino. Мы рекомендуем, вам изучить данный способ, а затем перейти на следующую ступень - заняться управлением двигателями при помощи транзисторов.

Подключим миниатюрный вибромоторчик к нашему Arduino.

  1. обычный Ардуино, подключенный к USB-порту компьютера
  2. Резистор на 220 Ом

Миниатюрный вибромоторчик (можно найти в старой ненужной мобилке, или в магазине электроники)

Подсоединение моторчика:

1. У вибромоторчика есть два провода питания. Соедините один его провод с нулевым выводом (GND) питания контроллера. Не имеет значения какой из двух проводов.

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

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

А вот примеры, как всё можно соединить при помощи макетной платы:

Текст программы Arduino

Следующий скетч запустит моторчик на 1 секунду, и остановит его на такое же время и так далее по кругу:

// Декларируем номер дискретного выхода
int motorPin = 2;
void setup() < //Назначаем второй дискретный вывод как выход pinMode(motorPin, OUTPUT); // Включить мотор digitalWrite(motorPin, HIGH); // Подождать 1000 мс // Выключить мотор digitalWrite(motorPin, LOW); // Подождать 1000 мс

Как это работает

Всякий раз, когда программа будет подавать логическую единицу на наш выход, ток будет течь через резистор, через мотор (М), и на землю. Если М действительно маломощный, он начнет вращаться, если это стандартный двигатель постоянного тока; иначе он начнет вибрировать, если это вибромоторчик. Резистор очень важен для этой схемы. Каждый дискретный выход Arduino рассчитан на ток только до 40 мА, при чем рекомендуется не превышать 20 мА. Выбранное значение резистора 220 Ом ограничит ток до 22 мА, и потому, что М включен с ним последовательно, ток будет даже меньше. Если общее сопротивление движка выше, чем 200 Ом, то можно с уверенностью убрать резистор и напрямую подключить моторчик к цифровому выводу и GND.

В этом проекте мы напрямую к контроллеру подключили один вибромоторчик, но никто нам не запрещает подключить их несколько.

Несколько двигателей могут быть подключены на разные цифровые выводы платы контроллера. Например, выходы 2, 3, и 4 могут независимо управлять различными тремя электродвигателями. Каждый дискретный вывод, на Arduino может управлять отдельным движком. Хотя вообщето, так делать не рекомендуется, так как это увеличит ток, проходящий через Arduino. Давайте пока ограничимся одним двигателем в данной реализации.

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

2. Управляем электродвигателем при помощи транзисторов.

Мы конечно можем управлять миниатюрным электродвигателем непосредственно подключив его к выходу Arduino; однако, дискретный выход не потянет двигатели, потребляющие больше 40 мА. Выход заключается в использовании простого усиливающего устройства, транзистора, чтобы иметь возможность управлять электродвигателями постоянного тока любой мощности. Рассмотрим на примере, как управлять большими электродвигателями, используя два транзистора npn и pnp структуры.

Для этого проекта нам понадобятся следующие электронные компонеты:

  1. Плата Arduino, подключенная к USB-порту компьютера
  2. Моторчик постоянного тока
  3. Резистор сопротивлением между 220 Ом и 10 кОм
  4. npn транзистор(BC547, 2N3904, N2222A, TIP120)
  5. Диод (1N4148, 1N4001, 1N4007 )

Ниже приведены шаги, при подключении двигателей с помощью транзистора:

  1. Подключите ноль питания Arduino GND к минусовой шине макетной платы.
  2. Подключите один из проводов двигателя к плюсу питания +5В платы контроллера. Мы будем использовать 5В питания USB-порта. Если нужна большая мощность, то нужно использовать внешний источник питания, такой как например батарея. Пока рассмотрим питание именно от USB.
  3. Другой провод двигателя соединяем с коллектором транзистора npn. По спецификации на ваш транзистор определите какой из трех его выводов коллектор, какой база и какой эмиттер.
  4. Подключите эмиттер транзистора к минусу питания GND, используя минусовую шину питания макетной платы.
  5. Установите резистор между базой транзистора и дискретным выходом платы Arduino.
  6. Включите защитный диод параллельно с движком. Минус диода должен быть подключен к плюсу питания 5В.
Схема для Arduino Uno

Это одна из возможных реализаций с использованием девятого цифрового выхода. Arduino может быть запитан от внешнего источника питания. А если нет, мы можем подключить движок отдельно к внешнему питанию 5В, а Ардуино к своему питанию. Но ноль питания у них должен быть объединен.

А вот один из способов соединения элементов схемы на макетной плате:

Код программы Arduino

Этот скетч ничем не отличается от предыдущего. Всё так же программа запускает движок на секунду, потом останавливает его на секунду и так далее:

Изучаем Arduino без Arduino c помощью Tinkercad и его сервиса Схемы.

.Изучаем Arduino без Arduino c помощью Tinkercad и его сервиса Схемы.

С каждым годом робототехника становиться популярнее. Для разработки роботов и простых проектов используется платформа Arduinо, но для изучения данной платформы нужно купить Arduino UNO или NANO, резисторы, светодиоды, соединительные провода, макетную плату, сервоприводы, двигателя, дисплей, реле, датчики и сенсоры. Начальное вложение от 2 т. руб. при покупке минимального Arduino набора на Aliexpress. Если покупать в наших магазинах стоимость может быть в 2-3 раза больше. Стоит ли покупать железки для изучения робототехники? На данный вопрос можно ответить, попробовав свои силы в сборке схем и программировании Arduino в Tinkercad и его сервисе Circuits.

 сборке схем и программировании Arduino в Tinkercad и его сервисе Circuits.

Что такое Tinkercad?

Tinkercad - графический редактор, предназначенный для создания и печати трехмерных моделей.

Tinkercad - графический редактор, предназначенный для создания и печати трехмерных моделей.

Главным преимуществом программы, по сравнению с другими CAD-редакторами, является то, что она представлена в виде онлайн-приложения, и не требует установки на компьютер. Сервисом можно пользоваться прямо в веб-браузере благодаря технологии WebGL, позволяющей отображать трехмерную графику в интернет-обозревателях.

Онлайн-сервис Tinkercad полностью бесплатный, русифицирован, имеет простой интерфейс, понятный даже новичкам, не требует установки дополнительных плагинов и поддерживает работу со всеми основными браузерами (Chrome, Firefox, Opera и другие). CAD-редактор позволяет сохранять готовые проекты на сервере разработчика или на жестком диске компьютера в виде OBJ и STL-файлов, а также обладает возможностью печати моделей.

Tinkercad позиционирует себя как сервис робототехники для начинающих. Изучать схемотехнику и программирование Arduino помогает раздел Схемы.

Tinkercad Arduino

Tinkercad Arduino

Тинкеркад (Tinkercad Circuits Arduino) – бесплатный, удивительно простой и одновременно мощный эмулятор Arduino, с которого можно начинать обучение электронике и робототехнике. Он предоставляет очень удобную среду для написания своих проектов. Не нужно ни чего покупать, ни чего качать — все доступно онлайн. Единственное, что от вас потребуется — зарегистрироваться.

Возможности симулятора Tinkercad для разработчика Arduino.

Возможности симулятора Tinkercad для разработчика Arduino.

  • Онлайн платформа, для работы не нужно ничего кроме браузера и устойчивого интернета.
  • Удобный графический редактор для визуального построения электронных схем.
  • Предустановленный набор моделей большинства популярных электронных компонентов, отсортированный по типам компонентов.
  • Симулятор электронных схем, с помощью которого можно подключить созданное виртуальное устройство к виртуальному источнику питания и проследить, как оно будет работать.
  • Симуляторы датчиков и инструментов внешнего воздействия. Вы можете менять показания датчиков, следя за тем, как на них реагирует система.
  • Встроенный редактор Arduino с монитором порта и возможностью пошаговой отладки.
  • Готовые для развертывания проекты Arduino со схемами и кодом.
  • Визуальный редактор кода Arduino.
  • Возможность интеграции с остальной функциональностью Tinkercad и быстрого создания для вашего устройства корпуса и других конструктивных элементов – отрисованная модель может быть сразу же сброшена на 3D-принтер.
  • Встроенные учебники и огромное сообщество с коллекцией готовых проектов

Начало работы в Tinkercad Arduino.

Начало работы в Tinkercad Arduino.

Найти Tinkercad достаточно просто. Для этого в поисковой системе указываем Тинкеркад. Заходим на сайт с доменом tinkercad.com. Для того, чтобы начать пользоваться сервисом нужно авторизоваться или зарегистрироваться.

авторизоваться или зарегистрироваться

Регистрация в Tinkercad.

Для того, чтобы зарегистрироваться нажимаем кнопку Присоединиться. Регистрация доступна по E-mail или с помощью учтённой записи Google или Apple.

Регистрация в Tinkercad.

При регистрации с использованием E-mail нужно указать вашу страну, дату рождения, свой E-mail и пароль.

При регистрации с использованием E-mail нужно указать вашу страну

При входе с помощью учтённой записи Google или Apple достаточно разрешить использование сервисом Tinkercad данных для авторизации. Но не забывайте, что у вас должен быть создан аккаунт в данной системе и вы должны быть авторизованы.

Создание первой схемы в Circuits.

Создание первой схемы в Circuits.

После авторизации в сервисе вы попадете в раздел 3D-проектирования. Для создания схем нам нужно перейти в раздел Circuits. Чтобы создать электрическую цепь нужно нажать на кнопку Создать цепь.

Для создания схем нам нужно перейти в раздел Circuits.

После чего нам откроется рабочая область в которой:

  • Название проекта;
  • Меню управления;
  • Панель компонентов;
  • Рабочее поле.

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

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

Программирование Arduino в Tinkercad.

После добавления Arduino на рабочий стол у нас появляется возможность работы с кодом. Программировать Arduino можно с помощью блоков на языке Scratch или кодом.

Программирование Arduinoв Tinkercad.

После нажатия Начать моделирование. Мы увидим мигание светодиода на плате Arduino. Мигать светодиод заставляет тестовая программа, которая создается автоматически при добавлении Ардуино на рабочее поле.

Встроенный светодиодподключен к 13 пину Арудино.

Давайте подключим внешний светодиод. Для этого установим светодиод и резистор на макетную плату. Подключим все по схеме. Встроенный светодиодподключен к 13 пину Арудино. Подключим внешний светодиод к тому же пинуи увидим синхронное мигание встроенного и внешнего светодиода.

Примеры реализации проектов на Arduino.

Для новичков подготовлены несколько готовых схем использования Arduino. Достаточно выбрать схему и вытащить на рабочее поле и начать моделирование.

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

Кроме моделирования данный сервис поможет не сделать ошибки новичку и испортить элементы цепи или спалить Arduino.

Защита от ошибок новичка.

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

Защита от ошибок новичка.

При сборе схем в Tinkercad Circuits вы защищены от основных ошибок новичка. Например, если вы подключите светодиод без резистора, то вы увидите предупреждение о том, что ток превышен, что может привести к быстрому выходу из строя светодиода.

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

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

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

Понравилась статья? Не забудь поделиться с друзьями в соц. сетях. А также подписаться на наш канал на YouTube, вступать в группу Вконтакте, в группу на Facebook.

До встречи в следующем уроке. Спасибо за внимание!

Технологии начинаются с простого!

Понравилась статья? Поделитесь ею с друзьями:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *