прошу ответить в чем ошибка

usmanov-danil1
Offline
Зарегистрирован: 07.11.2012

написал так себе сырую программу для управления роботом

и тут такая проблема когда отправляю число то только после того как отправлю 6 раз это число только тогда функция выполняеться

и еще через bt терминал почему то не работает

и еще пожалуйста может кто нибудь дописать эту прогу на повороты влево и вправо

я использую на мотор шилде 3 и 4 порт 



#include <AFMotor.h>

AF_DCMotor motor(4);


int ledPin=13; //фары
int ser=0;

void setup() {
  pinMode(ledPin,OUTPUT);
  Serial.begin(9600);
}

void loop () 
{
   uint8_t i;
   
  ser = Serial.read();//читаем полученное значение
  if (ser == '5') //если это  5
  {
      digitalWrite(ledPin,HIGH); //зажигаем диод
  }
  if (ser =='6') //если 6
  {
      digitalWrite(ledPin, LOW);//диод выключаем
  }
  ser = Serial.read();//читаем полученное значение
  if (ser == '1') //если это  1
  {
       motor.run(BACKWARD); //ехать вперед да-да вперед полярность менять не охото
       motor.setSpeed(100);  //скорость 100 и так стоит редуктор
       
  }
    ser = Serial.read();//читаем полученное значение
  if (ser == '2') //если это  2
  {
       motor.run(FORWARD); //едем назад
       motor.setSpeed(100);  //скорость 100
       
  }
      ser = Serial.read();//читаем полученное значение
  if (ser == '0') //если это  0
  {
  motor.run(RELEASE);  //стоп
       
  }
}

 

usmanov-danil1
Offline
Зарегистрирован: 07.11.2012

с поворотами разобрался а с остальным нет

 

maksim
Offline
Зарегистрирован: 12.02.2012
#include <AFMotor.h>

AF_DCMotor motor(4);

#define ledPin 13 //фары

void setup() 
{
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop () 
{
  if(Serial.available())
  {
    char ser = Serial.read();//читаем полученное значение

    if (ser == '0') //если это  0
    {
      motor.run(RELEASE);  //стоп
    }
    if (ser == '1') //если это  1
    {
      motor.run(BACKWARD); //ехать вперед да-да вперед полярность менять не охото
      motor.setSpeed(100);  //скорость 100 и так стоит редуктор
    }
    if (ser == '2') //если это  2
    {
      motor.run(FORWARD); //едем назад
      motor.setSpeed(100);  //скорость 100
    }   
    if (ser == '5') //если это  5
    {
      digitalWrite(ledPin, HIGH); //зажигаем диод
    }
    if (ser =='6') //если 6
    {
      digitalWrite(ledPin, LOW);//диод выключаем
    }
  }
}

 

usmanov-danil1
Offline
Зарегистрирован: 07.11.2012

спасибо щас допишу и попролбую по бт

 

usmanov-danil1
Offline
Зарегистрирован: 07.11.2012

да все роботает с первого раза спасибо

только все таки по блютусу не работает:(:(

maksim
Offline
Зарегистрирован: 12.02.2012

Значит что-то с блютузом...

usmanov-danil1
Offline
Зарегистрирован: 07.11.2012

сегодня все работало походу спалил его так жалко а можна подрубить от компа usb bletooth там же такая же распиновка

 

maksim
Offline
Зарегистрирован: 12.02.2012

Нельзя.