Не едут моторы.

int_long
Offline
Зарегистрирован: 30.01.2019
01#define lAx 6
02#define lDex 7
03#define rAx 8
04#define rDex 9
05 
06#define rPwr 5
07#define lPwr 3
08 
09byte i;
10 
11 
12void setup() {
13 
14  pinMode(lAx, OUTPUT);
15  pinMode(lDex, OUTPUT);
16  pinMode(rAx, OUTPUT);
17  pinMode(rDex, OUTPUT);
18  pinMode(lPwr, OUTPUT);
19  pinMode(rPwr, OUTPUT);
20 
21}
22 
23void loop() {
24 
25  digitalWrite(lDex, 0);
26  digitalWrite(rDex, 0);
27  digitalWrite(rAx, 1);
28  digitalWrite(lAx, 1);
29   
30   for(i=0;i<120;i+10){
31 
32    analogWrite(lPwr, i);
33    analogWrite(rPwr, i);
34    delay(35);
35     
36   }
37 
38   digitalWrite(rAx, 0);
39   digitalWrite(lAx, 0);
40   digitalWrite(rDex, 1);
41   digitalWrite(lDex, 1);
42 
43   for(i=i;i>0;i-10){
44 
45    analogWrite(lPwr, i);
46    analogWrite(rPwr, i);
47    delay(35);
48     
49   }
50 
51   delay(3000);
52   
53}

 

int_long
Offline
Зарегистрирован: 30.01.2019

Ребят, обьясните ещё, как писать при создании темы НЕ код, а простой текст, я не врубился как.

Вот суть проблемы:

 

Переменная i используется для задания скорости вращения; l(r)Ax — вращение вперёд, l(r)Dex, соответственно, назад;
lPwr и rPwr — пины управления скоростью вращения, которым через analogWrite задаётся значение i.
 
Вот проблема: если использовать переменную i вместо числа от 0 до 255 в операторе 
analogWrite, моторы просто не едут, а вот если написать
целое число — крутятся с укзазанной скоростью.Пробовал втыкать туда переменную 
один раз в setup — не сработало, реагирует только на число, но мне необходимы плавные разгон и торможение, так что
с числами не проканает.
 
Как это работает?!
Valera19701
Valera19701 аватар
Offline
Зарегистрирован: 18.10.2015

вы сначала разберитесь с циклом "for"

http://arduino.ru/Reference/For

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

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

Почему не проканает? Пожалуйста:

int_long пишет:
Как это работает?!

Вам коллега уже ответил. Разберитесь, что именно у Вас написано в строках №№ 30 и 43, исправьте ошибки и, о чудо, всё заработает!

anatoli_nik
Offline
Зарегистрирован: 17.01.2019

Так должно заработать

01#define lAx 6
02#define lDex 7
03#define rAx 8
04#define rDex 9
05 
06#define rPwr 5
07#define lPwr 3
08 
09byte i;
10 
11 
12void setup() {
13 
14  pinMode(lAx, OUTPUT);
15  pinMode(lDex, OUTPUT);
16  pinMode(rAx, OUTPUT);
17  pinMode(rDex, OUTPUT);
18  pinMode(lPwr, OUTPUT);
19  pinMode(rPwr, OUTPUT);
20 
21}
22 
23void loop() {
24 
25  digitalWrite(lDex, 0);
26  digitalWrite(rDex, 0);
27  digitalWrite(rAx, 1);
28  digitalWrite(lAx, 1);
29   
30   for(i=0;i<120;i+=10){
31 
32    analogWrite(lPwr, i);
33    analogWrite(rPwr, i);
34    delay(35);
35     
36   }
37 
38   digitalWrite(rAx, 0);
39   digitalWrite(lAx, 0);
40   digitalWrite(rDex, 1);
41   digitalWrite(lDex, 1);
42 
43   for(;i>0;i-=10){
44 
45    analogWrite(lPwr, i);
46    analogWrite(rPwr, i);
47    delay(35);
48     
49   }
50 
51   delay(3000);
52   
53}