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

Попробуйте наш инструмент устранения неполадок





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

КАнкит Неги



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

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



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

И этими двигателями можно легко управлять с помощью микроконтроллера, такого как Arduino с микросхемы драйвера двигателя, такие как L298 или L293D .

Но двигатели, которые используются для тяжелых целей (более 10 ампер), не контролируются. используя эти ic поскольку они могут подавать ограниченный ток (макс. 2 ампера). Так как эти двигатели управляются чем?

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

1. Запуск самого сильноточного двигателя.

2. Изолируйте цепь, таким образом предотвращая любые удары.

Теперь для переключения этих реле можно использовать любой микроконтроллер. Здесь мы будем использовать Arduino UNO.

КОМПОНЕНТЫ, НЕОБХОДИМЫЕ ДЛЯ ДАННОГО ПРОЕКТА:

1. ARDUINO UNO: для передачи входной логики первичной стороне реле.

2. SPDT RELAY -2: два реле необходимы для вращения в обоих направлениях. Контакты должны быть рассчитаны на работу с сильноточными двигателями.

Релейное изображение синего цвета реле, показывающее N / O N / C и детали полюса3.Power Mosfet: вы можете использовать IRF1010 mosfet кнопочный микровыключатель

4. АККУМУЛЯТОР (12 В): для питания двигателя.

5. ДВЕ КНОПКИ: для ввода данных в Arduino (т.е. когда нажата и когда не нажата)

Резистор 10 кОм 1/4 ватт

6. ДВА РЕЗИСТОРА по 10К: для устранения препятствий (поясняется ниже)

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

7. СОЕДИНИТЕЛЬНЫЕ ПРОВОДА: для подключения.

СХЕМА:

Схема управления двигателем PWM Arduino

Выполните соединения, как показано на рисунке.

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

2. Подключите двигатель между оставшейся клеммой (из трех) каждого реле.

3. Подключите одну клемму первичной стороны реле к выходным контактам Arduino, как указано в коде, а другую клемму - к земле.

4. Подключите одну клемму обеих кнопок к выводу 5 В Arduino, а другую клемму - к входным контактам, как указано в коде.

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

ЗАЧЕМ ПОДКЛЮЧАЮТСЯ РЕЗИСТОРЫ?

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

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

Итак, мы хотим, чтобы, когда к входному контакту ничего не подключено, то есть кнопка открыта, Arduino принимает 0 входных сигналов с контакта.

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

Этот резистор называется понижающим резистором, поскольку он подтягивает логику на выводе к 0. И этот процесс называется противодействием.

КОД:

Запишите этот код в свой Arduino.

int x// initialise variables
int y
int z
int w
void setup() {
pinMode(6,OUTPUT)//initialise pin 6 as output to RL1
pinMode(9,OUTPUT)//initialise pin 9 as output to RL2
pinMode(3,INPUT)//initialise pin 3 as input
pinMode(4,INPUT)//initialise pin 4 as input
pinMode(10,OUTPUT)//initialise PWM pin 8 as output to gate of mosfet
pinMode(A0,INPUT)//initialise pin A0 as input from pot.
Serial.begin(9600)
}
void loop() {
z=analogRead(A0)// read values from potentiometer in terms of voltage
w= map(z,0,1023,0,255)// map those values from 0 to 255
analogWrite(10,w)// write the mapped value to 10thpin as output
delay(1)//on time period of mosfet
analogWrite(10,w)
delay(1)//off time period of ,mosfet
Serial.println(z)//print value from pot to serial monitor
Serial.println(w)//print mapped value to serial monitor
x= digitalRead(3)
y= digitalRead(4)
if(x==0 && y==0){digitalWrite(6,LOW)//hault motor
digitalWrite(9,LOW)}
if(x==1 && y==0){digitalWrite(6,HIGH)// clockwise rotation of motor
digitalWrite(9,LOW)}
if(x==0 && y==1){digitalWrite(6,LOW)// anticlockwise rotation of motor
digitalWrite(9,HIGH)}
if(x==1 && y==1){digitalWrite(6,LOW)//hault motor
digitalWrite(9,LOW)
}
}

Работает (понимание кода):

• НАПРАВЛЕНИЕ:

A. Когда обе кнопки не нажаты:

В этом состоянии arduino принимает 0 входных сигналов с обоих контактов. Как указано в коде в этом условии, оба выходных контакта дают логику 0 (НИЗКИЙ):

если (x == 0 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, LOW)}

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

B. Когда кнопка X нажата, а Y не нажата:

В этом состоянии arduino принимает 0 входов с контакта 4, но вход1 с контакта 3. Как указано в коде в этом состоянии, вывод 6 должен иметь логическую 1 (ВЫСОКИЙ), тогда как вывод 9 - логический 0 (НИЗКИЙ):

если (x == 1 && y == 0) {digitalWrite (6, HIGH)

digitalWrite (9, LOW)}

Поскольку входное напряжение на реле # 1 высокое, переключатель этого реле переходит в нормально разомкнутое состояние, тогда как входное напряжение на реле 2 низкое, переключатель этого реле остается в нормально замкнутом состоянии, вызывая 12 В и 0 В соответственно на клеммах двигателя, вызывая вращение мотора в одном направлении.

C. Когда кнопка Y нажата, но не нажата X:

В этом состоянии arduino принимает 1 вход с контакта 4, но вход 0 с контакта 3. Как указано в коде этого условия, вывод 6 должен иметь логический 0 (НИЗКИЙ), тогда как вывод 9 - логический 1 (ВЫСОКИЙ):

если (x == 1 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, ВЫСОКИЙ)}

Поскольку на этот раз входное напряжение на реле №2 высокое, переключатель этого реле переходит в нормально разомкнутое состояние, тогда как входное напряжение на реле №1 низкое, переключатель этого реле остается в нормально замкнутом состоянии, вызывая 12 В и 0 В соответственно на двигателе. клеммы, вызывающие вращение двигателя в другом направлении.

D. Когда нажаты обе кнопки:

В этом состоянии arduino принимает 1 вход от обоих контактов. Как указано в коде в этом условии, оба выходных контакта дают логику 0 (НИЗКИЙ):

если (x == 0 && y == 0) {digitalWrite (6, LOW)

digitalWrite (9, LOW)}

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

• КОНТРОЛЬ СКОРОСТИ:

Допустим, потенциометр находится в таком положении, когда он дает 0 вольт на входе на вывод A0 Arduino. Из-за этого arduino отображает это значение как 0 и, таким образом, выдает 0 в качестве выходного ШИМ на выводе # 10, т.е.

analogWrite (10,0) // записываем отображенное значение на 10-й вывод как вывод

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

Однако, когда горшок вращается, и значение потенциометра изменяется, напряжение на выводе A0 также изменяется, и это значение отображается на выводе № 10 с пропорционально увеличивающейся шириной ШИМ, в результате чего через двигатель и МОП-транзистор проходит больше тока. слив, который, в свою очередь, позволяет двигателю пропорционально набирать большую скорость, и то же самое происходит наоборот.

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

Обновлять : Для сильноточного двигателя используйте реле 12 В / 30 А и каскады драйвера BJT для управления этими реле высокой мощности, как показано на следующей измененной схеме:




Предыдущая статья: Цепь датчика парковки заднего хода с сигнализацией Следующая статья: Схема генератора сигналов ШИМ Arduino