Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Ардуино: управление двигателем постоянного тока, L293D | Класс робототехники

Ардуино: управление двигателем постоянного тока, L293D

Каждый начинающий робототехник сталкивается с проблемой подключения двигателя к микроконтроллеру. Пройдя урок по управлению светодиодом кажется, что с двигателем можно поступить точно также: подключить его к цифровым выводам Ардуино, а затем включать и выключать по программе. Но не тут-то было. Даже небольшой двигатель, часто используемый в разного рода игрушках, для своей работы требует ток силой от 200 мА до 1 Ампера. А цифровой выход Arduino может дать нам только 20мА. Большинству мощных двигателей требуется напряжение более 5 Вольт, привычных для Ардуино. Распространены двигатели на 12, на 24 и на 48 Вольт. Другими словами, Ардуино очень слаба для прямого управления двигателями. Нужен какой-то мощный посредник!

Биполярный транзистор

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

Как видим, схема очень простая. Подаем на базу транзистора слабый сигнал от Arduino через резистор 1кОм, вследствие чего транзистор открывает мощный канал, по которому ток проходит от плюса к минусу, через двигатель. По сути, мы получили примитивный драйвер двигателя!

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

В этой схеме можно использовать NPN транзистор КТ850А с током коллектор-эмиттер 2 Ампера. Мотор F130, который мы используем в этом уроке, при пуске может потреблять ток до 1 А, так что транзистор должен иметь некоторый запас по току.

Полевой транзистор

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

Вывод SIG можно подключить напрямую к любому цифровому выводу Ардуино. Использованный в этой схеме IRF540 имеет внушительный запас по току на канале сток-исток — 30 Ампер. Это значит, что по такой схеме можно управлять куда более мощными моторами.

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

Вконтакте

Facebook

Twitter

robotclass.ru

Ардуино: управление двигателем постоянного тока, L293D | Класс робототехники

Ардуино: управление двигателем постоянного тока, L293D

Микросхема L293D имеет DIP корпус с 16-ю выводами. Схема выводов ниже.

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

  • +V — питание микросхема, 5В;
  • +Vmotor — питание двигателей, до 36В;
  • 0V — земля;
  • En1, En2 — выводы включения/выключения H-мостов;
  • In1, In2 — управляющие выводы первого H-моста;
  • Out1, Out2 — выводы для подключения первого двигателя;
  • In3, In4 — управляющие выводы второго H-моста;
  • Out3, Out4 — выводы для подключения второго двигателя.

Выводы En1 и En2 служат для отключения или включения мостов. Если мы подаем 0 на En, соответствующий мост полностью выключается и двигатель перестает вращаться. Эти сигналы пригодятся нам для управления тягой двигателя при помощи ШИМ сигнала.

Схема подключения к Ардуино Уно

Драйвер L293DIn1In2In3In4En1En2V+Vmotor+0V
Arduino Uno782365+5V+5VGND

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

Внешний вид макета

Вконтакте

Facebook

Twitter

robotclass.ru

Ардуино: управление двигателем постоянного тока, L293D | Класс робототехники

Ардуино: управление двигателем постоянного тока, L293D

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

INA и INB на рисунке — это вход слабых управляющих сигналов. В случае Ардуино, на них необходимо подавать либо 0 (земля) либо +5В. VCC — это питание двигателей, оно может быть во много раз выше напряжения управляющего сигнала. GND — это земля, общая для Ардуино и H-моста.

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

Микросхема драйвера L293D

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

Микросхема представляет собой два H-моста, а значит можно управлять сразу двумя двигателями. Каждый мост снабжен четырьмя защитными диодами и защитой от перегрева. Максимальный ток, который может передать L293D на двигатель — 1.2А. Рабочий ток — 600мА. Максимальное напряжение — 36 В.

Вконтакте

Facebook

Twitter

robotclass.ru

Ардуино шаговый двигатель: управляем с помощью микроконтроллера

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

Шаг 1. Что такое шаговый двигатель?

Шаговый двигатель состоит из двух основных частей: ротора и статора.

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

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

Шаг 2: Список деталей

Необходимые детали для проекта Ардуино шагового двигателя:

  • Шаговый двигатель (этот двигатель был взят от старого принтера)
  • Arduino
  • Изолированный медный провод
  • Проволочные резаки / стрипперы
  • Регулятор тока
  • транзистор
  • драйвер двигателя H-Bridge 1A
  • моторный шилд

Дополнительные детали:

  • паяльник
  • припой
  • инструменты
  • безопасные очки

Шаг 3: Присоединяем провода

Большинство шаговых двигателей имеют четыре провода, поэтому вам нужно будет обрезать четыре медных провода (обратите внимание, что цвет не коррелирует с чем-либо конкретным (обычно есть правило, что черный – это земля, но не сейчас). Различные цвета были использованы только для облегчения понимания. Эти выводы будут использоваться для управления, какая катушка в настоящее время активна в двигателе. Для этого проекта Ардуино шаговый двигатель был взят от старого принтера, поэтому пайка проводов была самым простым вариантом для этого проекта. В любом случае, вы можете безопасно установить соединение (пайка, штекер, клипы).

Шаг 4: Эскиз/скетч Arduino

Arduino уже имеет встроенную библиотеку для шаговых двигателей. Просто перейдите в меню:

Файл → Примеры → Шаговые → stepper_oneRevolution
File → Examples → Stepper → stepper_oneRevolution

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

То, что на самом деле делает библиотека Stepper – чередует сигналы HIGH и LOW для каждой катушки, как показано в анимации выше.

Шаг 5: Что такое мост H-bridge?

H-Bridge – схема, состоящая из 4 переключателей, которые могут безопасно управлять двигателем постоянного тока или шаговым двигателем. Эти переключатели могут быть реле или (чаще всего) транзисторами. Транзистор представляет собой твердотельный переключатель, который можно закрыть, посылая небольшой ток (сигнал) на один из его контактов.

В отличие от одного транзистора, который позволяет вам контролировать скорость двигателя, H-мосты позволяют вам также контролировать направление вращения двигателя. Он делает это, открывая различные переключатели (транзисторы), чтобы ток тек в разных направлениях и, таким образом, изменяя полярность на двигателе.

Важно! Переключатели 1 и 2 или 3 и 4 никогда не должны быть закрыты вместе. Это приведет к короткому замыканию и возможному повреждению устройства.

H-Bridges может помочь вам предотвратить перегорания вашего Arduino моторами, которыми вы пользуетесь. Двигатели являются индукторами, а это означает, что они хранят электрическую энергию в магнитных полях. Когда ток больше не посылается двигателям, магнитная энергия возвращается в электрическую энергию и может повредить компоненты. H-Bridge помогает изолировать ваш Arduino лучше всего. Вы не должны подключать двигатель непосредственно к Arduino.

Хотя H-Bridges можно легко сделать самому многие предпочитают покупать H-Bridge (например, чип L293NE / SN754410) из-за удобства. Это чип, который мы будем использовать в этом уроке. Физические номера контактов и их назначение ниже:

  • Пин 1 (1, 2EN) → Мотор 1 Включен/Выключен (HIGH/LOW)
  • Пин 2 (1A) → Мотор 1 логический выход 1
  • Пин 3 (1Y) → Мотор 1 терминал 1
  • Пин 4 → Земля
  • Пин 5 → Земля
  • Пин 6 (2Y) → Мотор 1 терминал 2
  • Пин 7 (2A) → Мотор 1 логический выход 2
  • Пин 8 (VCC2) → Питание для двигателей
  • Пин 9 → Мотор 2 Включен/Выключен (HIGH/LOW)
  • Пин 10 → Мотор 2 логический выход 1
  • Пин 11 → Мотор 2 терминал 1
  • Пин 12 → Земля
  • Пин 13 → Земля
  • Пин 14 → Мотор 2 терминал 2
  • Пин 15 → Мотор 2 логический выход 2
  • Пин 16 (VCC1) → Питание для H Bridge (5В)

Шаг 6: Схема соединения

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

Для шагового двигателя Ардуино 4 вывода на H-Bridge должны подключаться к 4 выводам двигателя. Затем 4 логических вывода подключаются к Arduino (8, 9, 10 и 11). Как показано на диаграмме выше, для питания двигателей можно подключить внешний источник питания. Чип может обрабатывать внешний источник питания от 4,5 до 36 В (мы выбрали батарею 9В).

Шаг 7: Загрузка кода и тестирование

Загрузите свой код в Ардуино. Если вы запустите свой код и все сработает так, как ожидалось, это потрясающе! Если провода вставлены в неправильные контакты, двигатель просто вибрирует, а не полностью вращается. Играйте со скоростью и направлением двигателя, как сочтете нужным.

На этом всё, теперь у вас должен быть рабочий шаговый двигатель Arduino. То, что вы сделаете дальше, зависит только от вас.

arduinoplus.ru

Управление мотором постоянного тока с помощью одного транзистора [Амперка / Вики]

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

Введение

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

В статье «Транзисторы: схема, принцип работы,​ чем отличаются биполярные и полевые» можно ознакомиться с основными типами транзисторов и их принципами работы.

Так же рекомендуется посмотреть: Видеоуроки по Arduino, 5-я серия — Моторы и транзисторы. В данном уроке Джереми Блюм рассказывает о подключении мотора постоянного тока к Arduino через биполярный транзистор.

Необходимые компоненты

Мы рассмотрим вариант взаимодействия с полевым транзистором. Принципы подключения мотора будут разобраны на конкретном железе: DC-мотор, плата Arduino, N-канальный полевой транзистор, резистор на 10 кОм (R1), резистор на 220 Ом (R2).

Вы же в своих экспериментах вольны использовать то, что есть в наличии. Важны лишь 3 условия:

  • Максимальный ток потребления мотора (ток при блокировке) не должен превышать максимальный ток стока полевого транзистора.

  • Затвор транзистора должен отпираться при напряжении 5 В.

  • Транзистор должен обладать встроенным диодом обратной цепи (flyback диод).

Схема подключения

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

Транзистор IRF530N является мощным и поставляется в корпусе TO-220. Ниже приведена его распиновка.

В данной схеме транзистор будет работать в ключевом режиме: по одной команде (установка уровня HIGH на затворе) от Arduino транзистор будет подключать мотор к источнику питания (отпираться), по другой команде (установка уровня LOW на затворе) — отключать мотор от источника питания.

Резистор R1 подтягивает к земле затвор транзистора. Номинал не принципиален — можно использовать любые резисторы в диапазоне от 1 до 10 кОм. Резистор R2 служит для защиты пина микроконтроллера. Диапазон, примерно, от 10 до 500 Ом.

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

Программинг

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

Blink.ino
int led = 13;
 
 
void setup() 
{                
  // Инициализация цифрового пина 13 на вывод
  pinMode(led, OUTPUT);     
}
 
 
void loop()
{
  digitalWrite(led, HIGH);   // Включение светодиода и мотора
  delay(1000);               // Задержка на 1 секунду
  digitalWrite(led, LOW);    // Выключение светодиода и мотора
  delay(1000);               // Задержка на 1 секунду
}

Посмотрим, что получилось.

Цифровой пин 13 раз в секунду меняет своё состояние. Когда на выходе устанавливается значение HIGH — загорается светодиод и начинает вращаться мотор. Когда устанавливается LOW — светодиод гаснет, а мотор останавливается.

Результаты

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

Использование ШИМ для регулировки скорости мотора

Если мотором управлять ничуть не сложнее, чем светодиодом, то, наверное можно изменять яркость скорость вращения мотора точно так же, как при работе со светодиодами? Именно так! С точки зрения Arduino абсолютно не важно с чем мы имеем дело.

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

Fade.ino
int led = 9;           // Пин, к которому подключён затвор транзистора
int brightness = 0;    // Теперь эта переменная отвечает за скорость вращения
int fadeAmount = 5;    // Шаг изменения скорости
 
void setup()
{ 
  // Настраиваем цифровой пин 9 на вывод
  pinMode(led, OUTPUT);
} 
 
void loop()
{ 
  // Устанавливаем скорость вращения мотора
  analogWrite(led, brightness);    
 
  // Увеличиваем текущее значение скорости вращения
  brightness = brightness + fadeAmount;
 
  // Когда скорость становится максимальной/минимальной — начинаем её снижать/повышать 
  if (brightness == 0 || brightness == 255)
  {
    fadeAmount = -fadeAmount ; 
  }     
  // Пауза 30 миллисекунд    
  delay(30);                            
}

Схема подключения

Чтобы использовать возможности функции analogWrite(..), нам придётся перейти на один из пинов (3/5/6/9/10/11), поддерживающих аппаратный ШИМ. Поскольку, по умолчанию, в скетче Fade задействован 9-й пин, остановим свой выбор на нём.

Результат

Была получена возможность изменять скорость вращения мотора, используя аппаратный ШИМ Arduino.

На чём данная статья подходит к завершению. Теперь вы смело можете использовать моторы постоянного тока в своих проектах!

wiki.amperka.ru

Драйверы двигателя L298N, L293D и Arduino Motor Shield

Драйвер двигателя выполняет крайне важную роль в проектах ардуино, использующих двигатели постоянного тока или шаговые двигатели. C помощью микросхемы драйвера или готового шилда motor shield можно создавать мобильных роботов, автономные автомобили на ардуино и другие устройства с механическими модулями. В этой статье мы рассмотрим подключение к ардуино популярных драйверов двигателей на базе микросхем L298N и L293D.

Драйвер двигателя в проектах ардуино

Для чего нужен драйвер двигателя?

Как известно, плата ардуино имеет существенные ограничения по силе тока присоединенной к ней нагрузки. Для платы это 800 mA, а для каждого отдельного вывода – и того меньше, 40mA. Мы не можем подключить напрямую к Arduino Uno, Mega или Nano даже самый маленький двигатель постоянного тока. Любой из этих двигателей в момент запуска или остановки создаст пиковые броски тока,  превышающие этот предел.

Как же тогда подключить двигатель к ардуино? Есть несколько вариантов действий:

Использовать реле. Мы включаем двигатель в отдельную электрическую сеть, никак не связанную с платой Arduino. Реле по команде ардуино замыкает или размыкает контакты, тем самым включает или выключает ток. Соответственно, двигатель включается или выключается. Главным преимуществом этой схемы является ее простота и возможность использовать  Главным недостатком данной схемы является то, что мы не можем управлять скоростью и направлением вращения.

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

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

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

Микросхема или плата расширения Motor Shield

Motor Shield – плата расширения для Ардуино, которая обеспечивает работу двигателей постоянного тока и шаговых двигателей. Самыми популярными платами Motor Shield являются схемы на базе чипов L298N и L293D, которые могут управлять несколькими двигателями. На плате установлен комплект сквозных колодок Ардуино Rev3, позволяющие устанавливать другие платы расширения. Также на плате имеется возможность выбора источника напряжения – Motor Shield может питаться как от Ардуино, так и от внешнего источника. На плате имеется светодиод, который показывает, работает ли устройство. Все это делает использование драйвера очень простым и надежным – не нужно самим изобретать велосипеды и решать уже кем-то решенные проблемы. В этой статье мы будем говорить именно о шилдах.

Принцип действия H-моста

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

Схема моста изображена на рисунке. Q1…Q4 0 полевые, биполярные или  IGBT транзисторы. Последние используются в высоковольтных сетях. Биполярные транзисторы практически не используются, они могут присутствовать в маломощных схемах. Для больших токов берут полевые транзисторы с изолированным затвором. Ключи не должны быть замкнуты вместе одновременно, чтобы не произошло короткого замыкания источника. Диоды D1…D4 ограничительные, обычно используются диоды Шоттки.

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

Q1Q2Q3Q4Состояние
1001Поворот мотора вправо
0110Поворот мотора влево
0000Свободное вращение
0101Торможение
1010Торможение
1100Короткое замыкание
0011Короткое замыкание

 

Драйвер двигателя L298N

Модуль используется для управления шаговыми двигателями с напряжением от 5 до 35 В.  При помощи одной платы L298N можно управлять сразу двумя двигателями. Наибольшая нагрузка, которую обеспечивает микросхема, достигает 2 А на каждый двигатель. Если подключить двигатели параллельно, это значение можно увеличить до 4 А.

Плата выглядит следующим образом:

Распиновка микросхемы L298N:

  • Vcc – используется для подключения внешнего питания;
  • 5В;
  • Земля GND;
  • IN1, IN2, IN3, IN4 – используется для плавного управления скоростью вращения мотора;
  • OUT1, OUT2 – используется для выхода с первого двигателя;
  • OUT3, OUT4 – используется для выхода со второго двигателя;
  • S1 – переключает питание схемы: от внешнего источника или от внутреннего преобразователя;
  • ENABLE A, B – требуются для раздельного управления каналами. Используются в двух режимах – активный, при котором каналами управляет микроконтроллер и имеется возможность изменения скорости вращения, и пассивный, в котором невозможно управлять скоростью двигателей (установлено максимальное значение).

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

Драйвер двигателя L293D

L293D – является самой простой микросхемой для работы с двигателями. L293D обладает двумя H-моста, которые позволяют управлять двумя двигателями. Рабочее напряжение микросхемы – 36 В, рабочий ток достигает 600 мА. На двигатель L293D может подавать максимальный ток в 1,2 А.

В схеме имеется 16 выходов. Распиновка:

  • +V – питание на 5 В;
  • +Vmotor – напряжение питания для мотором до 36 В;
  • 0V – земля;
  • En1, En2 –включают и выключают H-мосты;
  • In1, In2 – управляют первым H-мостом;
  • Out1, Out2 – подключение первого H-моста;
  • In3, In4 – управляют вторым H-мостом;
  • Out3, Out4 – подключение второго H-моста.

Для подключения к микроконтроллеру Arduino Uno нужно соединить выходы In1 на L293D и 7 пин на Ардуино, In2 – 8, In3 – 2, In4 – 3, En1 – 6, En2 – 5, V – 5V, Vmotor – 5 V, 0V – GND. Пример подключения одного двигателя к Ардуино показан на рисунке.

Драйвер двигателя на микросхеме HG7881

HG7881 – двухканальный драйвер, к которому можно подключить 2 двигателя или четырехпроводной двухфазный шаговый двигатель. Устройство часто используется из-за своей невысокой стоимости. Драйвер используется только для изменения направления вращения, менять скорость он не может.

Плата содержит 2 схемы L9110S, работающие как H-мост.

Характеристики драйвера HG7881:
  • 4-контактное подключение;
  • Питание для двигателей от 2,5 В до 12 В;
  • Потребляемый ток менее 800 мА;
  • Малые габариты, небольшой вес.
Распиновка:
  • GND – земля;
  • Vcc – напряжение питания 2,5В – 12В;
  • A-IA – вход A(IA) для двигателя A;
  • A-IB – вход B (IB) для двигателя A;
  • B-IA – вход A(IA) для двигателя B;
  • B-IB – вход B (IB) для двигателя B.

В зависимости от поданного сигнала на выходах IA и IB будет разное состояние для двигателей. Возможные варианты для одного из моторов приведены в таблице.

IAIBСостояние мотора
00Остановка
10Двигается вперед
01Двигается назад
11Отключение

 

Подключение одного двигателя к Ардуино изображено на рисунке.

Сравнение модулей

Модуль L293D подает максимальный ток в 1,2А, в то время как на L298N можно добиться максимального тока в 4 А. Также L293D обладает меньшим КПД и быстро греется во время работы. При этом L293D является самой распространенной платой и стоит недорого.  Плата HG7881 отличается от L293D и L298N тем, что с ее помощью можно управлять только направлением вращения, скорость менять она не может. HG7881 – самый дешевый и самый малогабаритный модуль.

Подключение L298N к Arduino

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

Нужно присоединить источник питания. + подключается к пину 4 на плате L298N, минус (GND) – к 5 пину. Затем нужно соединить выходы с L298N и пины на Ардуино, причем некоторые из них должны поддерживать ШИМ-модуляцию. На плате Ардуино они обозначены ~. Выходы с L298N IN1, IN2, IN3 и IN4 подключить к D7, D6, D5 и D4 на Ардуино соответственно. Подключение всех остальных контактов представлено на схеме.

Направление вращения задается с помощью сигналов HIGH и LOW на каждый канал. Двигатели начнут вращаться, только когда на 7 пине для первого мотора и на 12 пине для второго на L298N будет сигнал HIGH. Подача LOW останавливает вращение. Чтобы управлять скоростью, используются ШИМ-сигналы.

Для управления шаговым двигателем в Arduino IDE существует стандартная библиотека Stepper library. Чтобы проверить работоспособность собранной схемы, можно загрузить тестовый пример stepper_oneRevolution. При правильной сборке вал двигателя начнет вращаться.

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

arduinomaster.ru

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

И снова здравствуйте!

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


Вдумчивое молчание обычно посещает матерых автомехаников когда им объясняют что это…, И да, это СИНЯЯ изолента!

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

Из кладовки (гаража брата) был извлечен автомобиль марки Mercedes E200 1986 года выпуска.

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

Постановка задачи.

«Слушаю – забываю, смотрю – запоминаю, делаю – понимаю». Конфуций.

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

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

Что там внутри и как оно работает можно почитать вот тут у одного хорошего человека.

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

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

Факт второй — мы знаем что с повышением температуры плотность воздуха и не только падает, поскольку температура в моторном отсеке немногим ниже температуры прогретого двигателя (около 90 градусов) то сделав впуск просто из моторного отсека мы получаем неслабую разницу с забортной температурой воздуха что ведет к уменьшению количества воздуха в смеси. И он довольно горячий. В карбюраторном двигателе это важно потому что карбюратор не умеет нивелировать этот эффект, то есть он не понимает сколько кислорода в воздухе и не корректирует это объемом воздуха на туже порцию топлива.

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

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

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

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

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

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

Прикинув стоимость и реальность достать эту деталь в наших краях, я предпринял попытку найти аналог от классики (ВАЗ). Однако как оказалось крайне сложно объяснить что за деталь тебе нужна поскольку в классике чаще всего эту заслонку удаляют как не нужную и посему запасные такие покупают редко, соответственно и спроса нет.

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

Итак что нужно:

— Контроль температуры в корпусе воздушного фильтра.
— Управление заслонкой для регулирования этой температуры.

Что получили:

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

1. Неудачная попытка использовать шаговый двигатель от FDD.

Очень мне понравилась идея установить шаговый двигатель от FDD на штатное место термосилового элемента. И оно туда даже встало и даже тягало заслонку. Управлял им с помощью микросхему l293.


Однако в итоге мне сильно не понравилось усилие развиваемое этим двигателем, в условиях подкапотного пространства и тряски этого явно не достаточно, я мог без особого усилия двигать заслонку пальцем. Fail!

2. Использование сервопривода.

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

3. Arduino.

Была у меня в наличии Arduino Mini Pro, добавил туда еще корпус от ноутбучного БП, пару цифровых датчиков 18b20, самый простой сервопривод, плату DC-DC ШИМ преобразователя KIS-3R33S для того чтобы из бортовых 12В получить привычные 5В, несколько конденсаторов для сглаживания пульсаций, немного проволоки из витой пары. Получилось довольно компактно.

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


Из схемы видно что осталось уйма свободных входов что можно будет применить в дальнейшем.

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

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

Один датчик установлен примерно в месте где стоял старый термосиловой элемент. Второй просто болтается около коробки БУ, (типа меряет температуру подкапотного пространства). На один аналоговый вход ардуины подается бортовое напряжение через делитель, а на второй любое другое, тоже через делитель. У нас были проблемы с клапанами печки поэтому мы мониторили и их работу за одно. Напряжения просто измеряются и ни на что не влияют, это просто для мониторинга.

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

Cкетч тут.

4. Android.

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


DIYCarTune

Вот само приложение.

Вот проект под Android Studio.

Приложение будет выводить любые данные которые вы отошлете с Arduino, ее можно применить и не по назначению.

5. Установка и испытания

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

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

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

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

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

P.S. Безусловно что машина бы работала и без этого всего «огорода», но разве мы занимаемся подобным только лишь от жесткой необходимости? )))

habr.com

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

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