Size: a a a

2020 November 13

NS

Nikolay Semenov in ARDUINO [RU]
#include <AFMotor.h> // Подключаем библиотеку для управления двигателями

//Создаем объекты для двигателей
AF_DCMotor motor1(1); //канал М1 на Motor Shield — задний левый
AF_DCMotor motor2(2); //канал М2 на Motor Shield — задний правый
AF_DCMotor motor3(3); //канал М3 на Motor Shield — передний левый
AF_DCMotor motor4(4); //канал М4 на Motor Shield — передний правый

String userInput;


void setup() {
 Serial.begin (9600);

 motor1.setSpeed(255);
 motor2.setSpeed(255);
 motor3.setSpeed(255);
 motor4.setSpeed(255);
}

void loop() {
 if(Serial.available()> 0){
   
   userInput = Serial.read();              
     
     if(userInput == "go"){                
       motor1.run(BACKWARD);
       motor2.run(BACKWARD);
       motor3.run(BACKWARD);
       motor4.run(BACKWARD);
     }
     if(userInput == "stop"){
       motor1.run(RELEASE);
       motor2.run(RELEASE);
       motor3.run(RELEASE);
       motor4.run(RELEASE);        
     }
 }
}
источник

NS

Nikolay Semenov in ARDUINO [RU]
Nikolay Semenov
#include <AFMotor.h> // Подключаем библиотеку для управления двигателями

//Создаем объекты для двигателей
AF_DCMotor motor1(1); //канал М1 на Motor Shield — задний левый
AF_DCMotor motor2(2); //канал М2 на Motor Shield — задний правый
AF_DCMotor motor3(3); //канал М3 на Motor Shield — передний левый
AF_DCMotor motor4(4); //канал М4 на Motor Shield — передний правый

String userInput;


void setup() {
 Serial.begin (9600);

 motor1.setSpeed(255);
 motor2.setSpeed(255);
 motor3.setSpeed(255);
 motor4.setSpeed(255);
}

void loop() {
 if(Serial.available()> 0){
   
   userInput = Serial.read();              
     
     if(userInput == "go"){                
       motor1.run(BACKWARD);
       motor2.run(BACKWARD);
       motor3.run(BACKWARD);
       motor4.run(BACKWARD);
     }
     if(userInput == "stop"){
       motor1.run(RELEASE);
       motor2.run(RELEASE);
       motor3.run(RELEASE);
       motor4.run(RELEASE);        
     }
 }
}
Почему при отправлении go ничего не происходит
источник

NS

Nikolay Semenov in ARDUINO [RU]
???
источник

В

Влад in ARDUINO [RU]
а без условий запускали?
источник

В

Влад in ARDUINO [RU]
void loop() {
           
       motor1.run(BACKWARD);
       motor2.run(BACKWARD);
       motor3.run(BACKWARD);
       motor4.run(BACKWARD);
       delay(1000);
       motor1.run(RELEASE);
       motor2.run(RELEASE);
       motor3.run(RELEASE);
       motor4.run(RELEASE);        
      delay(1000);
}
источник

В

Влад in ARDUINO [RU]
с условиями вроде все норма, переменная строка, по идеи должно работать
источник

В

Влад in ARDUINO [RU]
Влад
void loop() {
           
       motor1.run(BACKWARD);
       motor2.run(BACKWARD);
       motor3.run(BACKWARD);
       motor4.run(BACKWARD);
       delay(1000);
       motor1.run(RELEASE);
       motor2.run(RELEASE);
       motor3.run(RELEASE);
       motor4.run(RELEASE);        
      delay(1000);
}
если заработает, можно попробовать поставить int и присвоить 1    и 0  как пуск и остановку
источник

В

Влад in ARDUINO [RU]
может строку не любит)
источник

NS

Nikolay Semenov in ARDUINO [RU]
Влад
если заработает, можно попробовать поставить int и присвоить 1    и 0  как пуск и остановку
работает
источник

NS

Nikolay Semenov in ARDUINO [RU]
как строку сравнить?
источник

ВГ

Владислав Голец... in ARDUINO [RU]
Nikolay Semenov
работает
А поставь Serial.available()>2 а не 0
источник

ВГ

Владислав Голец... in ARDUINO [RU]
А то он может просто не успеть дослать всю строку и ты получаешь вместо go просто g
источник

В

Влад in ARDUINO [RU]
Владислав Голец
А поставь Serial.available()>2 а не 0
а на что влияет?
источник

ВГ

Владислав Голец... in ARDUINO [RU]
Влад
а на что влияет?
На количество байт которые пришли и записаны в буфер
источник

В

Влад in ARDUINO [RU]
допустим если данные stop
источник

В

Влад in ARDUINO [RU]
то тоже 2?
источник

В

Влад in ARDUINO [RU]
По идеи это условие проверяет есть ли хоть 1 байт и больше
источник

В

Влад in ARDUINO [RU]
если поставить условие хоть 2 байта и больше, что-то изменится?
источник

ВГ

Владислав Голец... in ARDUINO [RU]
Влад
допустим если данные stop
По красоте нужно вычитывать буфер полностью допустим до символов "\n\r" они означают конец сообщения
А потом проверять есть ли в строке совпадение
Там есть функция contains или типа того
источник

ВГ

Владислав Голец... in ARDUINO [RU]
Просто сравнивать это пальцем в небо
источник