Проблема с аналоговой перезаписью ESP12E motorshield при питании двигателя постоянного тока

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

Моторный щит - https://www.amazon.com/gp/product/B078CPZDW1/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

ЭСП8266 - https://www.amazon.com/gp/product/B010O1G1ES/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

Двигатель постоянного тока - https://www.amazon.com/gp/product/B07MTT7B88/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

Вот мой код

#define DIRA 0
#define PWMA 5
#define LED 2

void setup() {
  Serial.begin(9600);
  Serial.println();
  Serial.println("Starting...");


  Serial.println("Preparing motor...");
  pinMode(DIRA, OUTPUT);
  pinMode(PWMA, OUTPUT);
  analogWrite(PWMA,0);
  digitalWrite(DIRA,1);
  delay(5000);

  Serial.println("Starting motor...");
  analogWrite(PWMA,5);
  delay(5000);

}

void loop() {
}

Вот как я это подключил

schematic

Примечание: Эта настройка похожа на то, что у меня есть, но не совсем, у меня подключено 4 батарейки типа АА и только 2 двигателя

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

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

Был бы очень признателен за любую помощь, так как я уже просматривал страницы поиска в Google, но безуспешно. Я использовал этот пример в качестве эталона, https://hackaday.io/project/8856-incubator-controller/log/29291-node-mcu-motor-shield.

, 👍1

Обсуждение

5 далеко не достаточно велик, чтобы вывести двигатель из заглохшего состояния., @Majenko

Вы подключили к выходу 2 двигателя и приводите в действие эти два двигателя примерно на 2% от полного напряжения. Как заявил @Majenko, этой мощности недостаточно для запуска двух двигателей. Я не знаю вашего максимального напряжения (две батареи, но это обычные 1,2-вольтовые аккумуляторы или ~ 4-вольтовые аккумуляторы или ...). Допустим, у вас максимум 8 Вольт, ваш двигатель запускается с 1,5 Вольта, тогда вам нужно как минимум на 5-6% лучше 10% от максимального напряжения, которое вы можете регулировать с помощью рабочего цикла PWM. Вы использовали analogWrite (PWMA,5); Я бы предложил 'analogWrite (PWMA, 25);`., @Peter Paul Kiefer

@PeterPaulKiefer Я пробовал использовать 4 батарейки типа АА 1,5 В с двумя двигателями и одним двигателем. Эта картинка не является моей точной настройкой, но довольно близка, разница лишь в количестве подключенных мной батарей (4) и количестве двигателей (2). Моя ошибка в том, что я не указал на это, я обновил детали. Я также попробовал analogWrite (PWMA, 10), analogWrite (PWMA, 50), analogWrite (PWMA, 100), но по-прежнему ничего, @Ameya Savale

Извини, что я допустил ошибку. Максимальное значение для analogWrite равно 1023, а не 255. Вы питали щит напряжением около 6 Вольт. Чтобы быть уверенным, вы должны использовать не менее 3 Вольт для приведения двигателей в действие. Используйте рабочий цикл 50%`analogWrite (PWMA, 512);. Значение 100 составляет всего 10% (то есть среднее напряжение составляет около 0,6 Вольта). Если этого все еще недостаточно, попробуйте, будут ли работать двигатели, если вы подключите их непосредственно к 2 или 3 вашим батареям. В противном случае, возможно, ваши аккумуляторы разрядились или двигатель неисправен. Если двигатель работает от батарей, подключенных непосредственно, экран может быть неисправен. Вы тоже пробовали 2-й мотор?, @Peter Paul Kiefer

@PeterPaulKiefer ты был прав! Как только я увеличил значение analogWrite до 512, двигатель начал вращаться. Большое вам спасибо!, @Ameya Savale


1 ответ


1

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

Вы питали щит напряжением около 6 Вольт. Оператор analogWrite(PWMA, 5); дает вам (5/1024) ~ 0,5% от этих 6 Вольт на выходном выводе PWMA. Этих 0,03 В недостаточно для приведения двигателя в действие.

Вы должны использовать не менее 3 Вольт для приведения двигателя в действие (согласно спецификации). Этого можно достичь, используя рабочий цикл ШИМ-сигнала, составляющий около 50%. analogWrite (PWMA, 512); должно сработать.

,