Управление скоростью двигателя постоянного тока с помощью внешнего источника питания
Я пытаюсь контролировать скорость двигателя постоянного тока, используя команду analogWrite(MOTOR, int:speed).
#define MOTOR D5
void setup() {
Serial.begin(115200);
Wire.begin();
pinMode(MOTOR, OUTPUT);
Serial.println("Hello setup");
}
void loop() {
analogWrite(MOTOR,0);
Serial.println("0");
delay(5000);
analogWrite(MOTOR,255);
Serial.println("255");
delay(5000);
}
Вот моя распиновка:
Я использую mosfet для PWM, внешний источник питания на 3,8 Вольта для двигателя. Положительный сигнал питания поступает непосредственно на двигатель (красная линия), синий - через mosfet, а порт PWM D5 подключен к вентилю mosfet. Проблема в том, что код работает при низком напряжении около 1 В. Я вижу колебания силы тока и изменение скорости вращения двигателя (разница около 0,5 А). Но когда я увеличиваю напряжение до 3,8, колебания начинают неуклонно уменьшаться, и у меня нет ни изменения силы тока, ни изменения скорости двигателя. Пожалуйста, помогите мне выяснить причину этого.
UPD: изображение распиновки с высоким разрешением:
@Gio Dos Santos, 👍0
Обсуждение0
- Создание нескольких силовых элементов для управления Arduino.
- Регулятор скорости для потолочного вентилятора 220 В переменного тока 100 Вт
- Не могу контролировать скорость двигателей постоянного тока с помощью analogWrite()
- Почему Arduino сбрасывается во время управления двигателями?
- Питание Arduino напрямую от драйвера двигателя (DRV8825) или внешнего источника питания?
- L298N издает звуковые сигналы и дает сбой при получении определенных значений AnalogWrite
- AnalogWrite не работает - при попытке контролировать скорость двигателя постоянного тока
- Как увеличить крутящий момент или скорость шагового двигателя с помощью Arduino
Изображение недостаточно высокого разрешения, чтобы можно было прочитать контакты на деталях. Можете ли вы предоставить изображение в высоком разрешении, чтобы мы могли прочитать описание контактов? Что за плата слева?, @chrisl
я добавил изображение, @Gio Dos Santos
Я использую электростанцию для ручного изменения значений напряжения., @Gio Dos Santos
Это выглядит хорошо для меня. На самом деле вы даже не используете ШИМ (поскольку
analogWrite(pin,0)
соответствуетdigitalWrite(pin, LOW)
, аanalogWrite(pin,255)
соответствуетdigitalWrite(pin, HIGH)
). Если я правильно понял ваше описание, то вы говорите, что увеличиваете напряжение питания двигателя и видите все меньшее и меньшее увеличение скорости / тока двигателя. Это то, что вы пытаетесь сказать? Какой именно MOSFET вы используете?, @chrisl@chrisl да, вы правы, при напряжении 3,8 у меня всего 0,01 А, а этого недостаточно для управления двигателем. Честно говоря, я ожидал, что AnalogWrite(MOTOR, 0) должен остановить двигатель, но он все равно продолжает вращаться., @Gio Dos Santos
@chrisl Я использую MOSFET BS 170., @Gio Dos Santos
Чтобы исключить Wemos и его код, подключите затвор непосредственно к контакту 3,3 В Wemos, а затем к земле Wemos. Это делает то, что вы ожидали?, @chrisl
@chrisl Я уже протестировал прямое подключение к Wemos, и это сработало. Проблема в том, что нам нужно поднять деревянную стрелу с помощью этого двигателя и, следовательно, нам нужно больше энергии. Вот почему мы используем внешнее питание., @Gio Dos Santos
@chrisl только что протестировал блок питания Wemos, он работает именно так, как я хочу, он останавливается на 0, работает на половинной скорости около 150 и на полной скорости 255., @Gio Dos Santos
вам нужен обратный диод, чтобы остановить обратное индуцированное напряжение от воздействия на транзистор. Вы также должны использовать транзистор NPN или nchannel., @dandavis