ARDUINO Шаговый двигатель, со своим драйвером.

Старик Похабыч

★★★★★★★
14 Авг 2019
4,200
1,287
Москва
Ну вообще если на А3 подключен потенциометр, который подключен к 5в, Земля и А3, то сигнал должен быть от 0 до 1023.
И его уже надо подобрать к значениям задержки на 1 такт двигателя. Минимальная задержка будет соотв. максимальной скорости вращения. Если сделать меньше (в данном случае 300) , то двигатель перестанет крутиться или будет крутиться не стабильно. Ну а максимальную теоретически можно сделать любой, чем больше тем медленнее будет вращаться вал..
 

Sascha.

✩✩✩✩✩✩✩
15 Авг 2020
39
2
подключен к 5в, Земля и А3, то сигнал должен быть от 0 до 1023.
Это всё так, с этим согласен. В данном случае пер. резистор 10к. Если число меньше 300, то не полностью выводится на 0 , двигатель останавливается и начинает свистеть , если 3240 увеличивать , то при прокрутке к +5в начинаются скачки, пропуски.А на тех цифрах что в скетче до середины потенциометра двигатель стоит от середины стартует на малых оборотах и до полного 0 набирает обороты.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,200
1,287
Москва
Тогда не понятно в чем вопрос. Вообще скорости должны быть в даташите по двигателю, так же как и токи и вольтаж
 

Sascha.

✩✩✩✩✩✩✩
15 Авг 2020
39
2
скорости должны быть в даташите по двигателю, так же как и токи и вольтаж
По данному двигателю это всё, что есть.
Номинальное напряжение 7 в
ток 0,7
Сопротивление (Ом) 10
Крутящий момент (дюйм-унция) 44,4
Крутящий момент (кг * см) 3,2
Провода 4
Шаги / Revolution 200
Размер шага (градусы) 1,8
Размер рамы NEMA 17
А вопрос по функции map, как рассчитываются эти цифры ? Может не корректно задаю вопрос, не знаю как объяснить , вот некоторые выписки:
int val = map(analogRead(A0), 0, 1023, 1, 10); //Вернет значение аналогового порта в диапазоне от 0 до 10. При этом 0 будет соответствовать 0, а 10 – 1023. Это типа 10 разделить на 1023 как бы некий шаг...
или вот:
Поскольку Arduino имеет аналоговое разрешение 0-1023, а разрешение analogWrite всего 0-255, эти необработанные данные с потенциометра необходимо масштабировать перед использованием...
Но toHigh 3240 как бы больше, чем 255.
 
Изменено:

bort707

★★★★★★✩
21 Сен 2020
2,921
868
Поскольку Arduino имеет аналоговое разрешение 0-1023, а разрешение analogWrite всего 0-255, эти необработанные данные с потенциометра необходимо масштабировать перед использованием...
Но toHigh 3240 как бы больше, чем 255.
Какая связь между "разрешение analogWrite всего 0-255" и параметром 3240? Вы свой код посмотрите внимательнее - разве результат функции map у вас в analogWrite подается? - нет. Так причем тут предел analogWrite?

А исходник функции map() - вот:
C++:
long map(long x, long in_min, long in_max, long out_min, long out_max)
{
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
 
  • Лойс +1
Реакции: Sascha.