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

1. Управляем маленькими моторчиками

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

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

Нам понадобится:

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

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

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

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

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

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


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


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

Следующий скетч запустит моторчик на 1 секунду, и остановит его на такое же время и так далее по кругу:
// Декларируем номер дискретного выхода
int motorPin = 2;
void setup() {
//Назначаем второй дискретный вывод как выход
pinMode(motorPin, OUTPUT);
}
void loop(){
// Включить мотор
digitalWrite(motorPin, HIGH);
// Подождать 1000 мс
delay(1000);
// Выключить мотор
digitalWrite(motorPin, LOW);
// Подождать 1000 мс
delay(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)
Ниже приведены шаги, при подключении двигателей с помощью транзистора:
  1. Подключите ноль питания Arduino GND к минусовой шине макетной платы.
  2. Подключите один из проводов двигателя к плюсу питания +5В платы контроллера. Мы будем использовать 5В питания USB-порта. Если нужна большая мощность, то нужно использовать внешний источник питания, такой как например батарея. Пока рассмотрим питание именно от USB.
  3. Другой провод двигателя соединяем с коллектором транзистора npn. По спецификации на ваш транзистор определите какой из трех его выводов коллектор, какой база и какой эмиттер.
  4. Подключите эмиттер транзистора к минусу питания GND, используя минусовую шину питания макетной платы.
  5. Установите резистор между базой транзистора и дискретным выходом платы Arduino.
  6. Включите защитный диод параллельно с движком. Минус диода должен быть подключен к плюсу питания 5В.

Схема для Arduino Uno

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

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


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

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

// Декларируем номер дискретного управляющего выхода
int motorPin = 2;
void setup() {
// Назначаем второй дискретный канал как выход
pinMode(motorPin, OUTPUT);
}
void loop(){
// Включаем мотор
digitalWrite(motorPin, HIGH);
// Ждем 1000 мс
delay(1000);
// выключаем мотор
digitalWrite(motorPin, LOW);
// Ждем 1000 мс
delay(1000);
}

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

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


Когда мы подаем логическую единицу на выход Arduino, ток проходит от вывода через базу транзистора NPN, что заставляет ток проходить и через другие две ноги транзистора. Когда мы выставляем ноль на выходе, ток не идет через базу и не будет проходить через остальные две ноги.
Транзисторы интересны в том, что с очень малым током базы, мы можем контролировать очень большой ток через коллектор к эмиттеру. Обычный коэффициент усиления обозначается hб для транзистора составляет порядка 200. Это означает, что для тока базы 1 мА, транзистор через коллектор к эмиттеру пропустит 200 мА. Важным компонентом проекта является диод, о котором не стоит забывать. Как уже было сказано, движок имеет индуктивную составляющую, которая может генерировать большие всплески напряжения, опасные для транзистора. Диод гарантирует, что все паразитные возмущения от двигателя погасятся на нем, а не на транзисторе.

3. Применение подтягивающего резистора

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

4. Применение pnp-транзистора

pnp транзистор понять еще труднее. Он использует тот же принцип, но в обратном направлении. Ток течет от базы к цифровому выводу Arduino; если допустить, что протекание тока базы заставляет ток проходить от эмиттера к коллектору (противоположно направлению тока в транзисторе npn). Другое важное отличие в том, что pnp-транзистор установлен между плюсом источника питания и контролируемой нами нагрузкой. Нагрузка же, в данном случае, это двигатель, будет подключена между коллектором pnp-транзистора и землей.

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


5. Применение силового транзистора MOSFET

Давайте посмотрим правде в глаза: применение обычных биполярных транзисторов для манипулирования моторчиками уже давно не в моде. Есть более простые и удобные в использовании вещи в наши дни, которые могут обеспечить гораздо большую мощность управления. Их называют MOSFET транзисторы. Люди просто называют их мосфетами. База, коллектор и эмиттер у MOSFETа называются так затвор, сток и исток. Функционально их используют точно так же, как и обычные транзисторы. При подаче напряжения на натвор, ток будет проходить с истока на сток в случае N-канального МОП-транзистора. P-канал является эквивалентом транзистора pnp. 
Тем не менее, есть некоторые важные различия в работе MOSFET по сравнению с обычным транзистором. Не все MOSFET-транзисторы могут должным образом работать с Arduino. Обычно дискретные транзисторы работают нормально. Некоторые из известных N-канальных MOSFET имеют маркировку: FQP30N06, IRF510 и IRF520. Первый может выдерживать до 30 А и 60 В то время как следующие два могут отдавать 5,6 А и 10 А, соответственно, при 100 В.
Вот пример схемы управления мотором с помощью N-канального MOSFET:

Мы также можем использовать следующий вариант монтажа проекта на макетной плате:

Двигатель - ещё не все, чем мы можем управлять через транзистор. Любой вид нагрузки постоянного тока может управляться таким образом. Светодиоды, лампочки или другие потребители, даже другой Arduino может быть запитан подобным макаром.
  • Arduino и использование двигателей. Подключение двигателя постоянного тока и управление им.

Похожие статьи

Arduino UNO как осциллограф

Arduino UNO как осциллограф

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

Скачиваем программу Processing , после чего её устанавливать не нужно - она запускается с EXE-файла.

Arduino основы программирования

Arduino основы программирования

Здесь мы научимся писать элементарную программу способную сделать что-либо интересное для новичка. Здесь вы узнаете, как написать простейший скетч для Arduino используя стандартый IDE. Мы пока пропустим использование входов-выходов, но обратим внимание на связь через USB. Синтаксис языка Arduino точно повторяет язык C, поэтому на нем мы останавливаться не будем. Мы сконцентрируемся на конкретных аспектах Arduino языка, в котором вы можете использовать все принципы, которые присущи языку C: переменные, операторы, состояния, типы, константы и т.д.

Arduino и шаговый двигатель

Arduino и шаговый двигатель

Перед началом очередного проекта на Arduino, было решено использовать шаговый двигатель Nema 17 из-за отличного соотношения цена/качество. Перед подключением Nema 17, за плечами был определенный опыт работы с шаговиком 24byj48 (даташит). Управлялся он и с помощью Arduino, и с помощью Raspberry pi, проблем не возникало. Основная прелесть этого двигателя - цена (около 3 долларов в Китае). Причем, за эту сумму вы приобретаете двигатель с драйвером в комплекте. Согласитесь, такое можно даже и спалить, не особо сожалея о содеянном.

Управление машинкой через WiFi с помощью ESP8266 NodeMCU

Управление машинкой через WiFi с помощью ESP8266 NodeMCU

Итак будем управлять двумя реверсивными (вращение в обе стороны) двигателями: основным и рулевым. Питать их будем от аккумулятора 3,7 В, но можно и до 12 В в принципе подавать, если согласовать питание контроллера или организовать его отдельным аккумулятором.
В силовой части используем простейший миниатюрный драйвер шагового двигателя l9110s или же можно использовать сборку на L293\8  или любой не менее мощный, который вы найдёте. В общем я всё нарисовал на картинке.

Электроника . Детали в деталях. Обои для рабочего стола

Электроника . Детали в деталях. Обои для рабочего стола

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

Все обои в максимальном качестве 1920x1080

ESP8266 — встречайте FreeRTOS

ESP8266 — встречайте FreeRTOS

Espressif Systems не перестает удивлять нас — они портировали FreeRTOS на ESP8266. FreeRTOS — многозадачная операционная система реального времени для встраиваемых систем. Портирована на множество микропроцессорных архитектур. Безусловно, этот прорыв будет способствовать более широкому распространению ESP8266 в Интернете Вещей. Про FreeRTOS написано достаточно много даже на русском языке, так что я не буду сейчас рассуждать на эту тему, скажу лишь для тех, кто не в теме, что эта система существует уже достаточно давно и практически стала стандартом де-факто для встраиваемых систем, где критично время отклика, требуется синхронизация и решаются подобные задачи, т.е. там, где требуется система реального времени. FreeRTOS написана на Си с небольшим количеством ассемблерного кода и ее ядро представлено всего 3-мя C файлами.

Простейший трекер для домашней солнечной электростанции

Простейший трекер для домашней солнечной электростанции

Трекер повышает КПД солнечных панелей

Как известно, солнечные панели имеют максимальный КПД в том случае, когда они расположены перпендикулярно падающим на них солнечным лучам. Но солнце перемещается по небосводу и стационарно установленные панели из-за этого теряют часть своей эффективности. Чтобы повысить их эффективность, используют трекеры — специальные устройства, которые поворачивают панели «вслед» за солнцем:

Начало работы с Arduino Pro Mini ,прошивка через USB TTL

Начало работы с Arduino Pro Mini ,прошивка через USB TTL

Arduino Pro Mini - это функционально гибкое, миниатюрное и недорогое устройство, ориентированное, прежде всего, на продвинутых пользователей. В нем содержится минимум компонентов (нет встроенного USB и штыревых разъемов), что позволило максимально снизить стоимость устройства. Благодаря этому, плата может встраиваться в различные проекты и устройства. Обратите внимание, что существует две версии Arduino Pro: одна работает от 5В (как большинство плат Ардуино), другая - от 3.3В. Перед началом работы, перепроверьте, чтобы источник питания и подключаемые к плате устройства соответствовали рабочему напряжению вашего Ардуино. 

NRF24L01 2.4 ГГц радио/беспроводные передатчики и Arduino

NRF24L01 2.4 ГГц радио/беспроводные передатчики и Arduino

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

  • Удаленное снятие показаний с датчиков температуры, давления, систем сигнализации на основе пироэлектрических датчиков движения и т.п.
  • Беспроводное управление и мониторинг состояния роботов на расстоянии от 50 2000 футов до 1 км.
  • Беспроводное управление и мониторинг помещений в соседних домах.

Автономная "смарт" машина на Arduino + код

Автономная "смарт" машина на Arduino + код

Автономная "смарт" машина на Arduino

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

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

Подключение 3х осевого гироскопа MPU-6050 к  Arduino и 2 сервопривода

Подключение 3х осевого гироскопа MPU-6050 к Arduino и 2 сервопривода

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


Источник https://arduino-ua.com/art30-arduino-mpu-6050-i-2-servoprivoda



Источник https://arduino-ua.com/art30-arduino-mpu-6050-i-2-servoprivoda

Делаем простой тесла генератор , катушка Теслы своими руками

Делаем простой тесла генератор , катушка Теслы своими руками

 Сегодня я собираюсь показать вам, как я построить простую катушку Тесла! Вы могли видеть такую катушку в каком то магическом шоу или телевизионном фильме . Если мы будем игнорировать мистическую составляющую  вокруг катушки Тесла, это просто высоковольтный резонансный трансформатор который работает без сердечника. Так, чтобы не заскучать от скачка теории давайте перейдем к практике.

Сборка дешевого 3д принтера из фанеры Grabber i3 Часть 2 механика

Сборка дешевого 3д принтера из фанеры Grabber i3 Часть 2 механика

В этом видео я покажу как собрать и установить элементы для 3д принтера Graber i3 из фанеры - механика ! 

Полный обзор лазерного гравировального мини станка NEJE c лазером в 1 ВТ  (дешево и сердито )

Полный обзор лазерного гравировального мини станка NEJE c лазером в 1 ВТ (дешево и сердито )

В этом видео вы узрите полный обзор гравировального станка + видео урок по работе c программой Laser Carver . А так же примеры работ на бумаге и дереве. 

Arduino и цифровой датчик температуры DS18B20 ,подключение нескольких датчиков ,код в комплекте

Arduino и цифровой датчик температуры DS18B20 ,подключение нескольких датчиков ,код в комплекте

DS18B20 - это цифровой датчик температуры. Датчик очень прост в использовании. Во-первых, он цифровой, а во вторых - у него всего лишь один контакт, с которого мы получаем полезный сигнал. То есть, вы можете подключить к одному Arduino одновременно огромное количество этих сенсоров. Пинов будет более чем достаточно. Мало того, вы даже можете подключить несколько сенсоров к одному пину на Arduino! Но обо всем по порядку.

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