Не реагирует на значение переменной

RubanZ
Offline
Зарегистрирован: 12.03.2014

Здраствуйте, проблема находится в loop. Не реагирует на значение  napravlenie
 

#include <Ultrasonic.h>
//motorПравый
#define dir1PinA   8 //Серый
#define dir2PinA   7 //Белый
#define speedA     11
//motorЛевый
#define dir1PinB   4 //Чёрный
#define dir2PinB   2 //Коричневый
#define speedB     10
//Sensors//
Ultrasonic ultrasonic(6, 9);
//Random//
int napravlenie = 0 ;

void setup()
{
  Serial.begin(9600);
  pinMode(dir1PinA, OUTPUT);
  pinMode(dir2PinA, OUTPUT);
  pinMode(dir1PinB, OUTPUT);
  pinMode(dir2PinB, OUTPUT);
  pinMode(speedA, OUTPUT);
  pinMode(speedB, OUTPUT);
}

void go_forward(){
  digitalWrite(dir1PinA, LOW);//едем вперед
  digitalWrite(dir2PinA, HIGH);
  digitalWrite(dir1PinB, LOW);
  digitalWrite(dir2PinB, HIGH);
  analogWrite(speedA, 70);
  analogWrite(speedB, 70);
}

void go_back(){
  digitalWrite(dir1PinA,HIGH);
  digitalWrite(dir2PinA,LOW);
  digitalWrite(dir1PinB,HIGH);
  digitalWrite(dir2PinB,LOW);
  analogWrite(speedA, 70);
  analogWrite(speedB, 70);
}

void go_right(){
  digitalWrite(dir1PinA, HIGH);
  digitalWrite(dir2PinA, LOW);
  digitalWrite(dir1PinB, LOW);
  digitalWrite(dir2PinB, HIGH);
  analogWrite(speedA, 70);
  analogWrite(speedB, 70);
}

void go_left(){
  digitalWrite(dir1PinA,LOW);
  digitalWrite(dir2PinA,HIGH);
  digitalWrite(dir1PinB,HIGH);
  digitalWrite(dir2PinB,LOW);
  analogWrite(speedA, 70);
  analogWrite(speedB, 70);
}


void loop()
{
  //sensor//
  float distacne_cm = ultrasonic.Ranging(CM); 
  Serial.println(distacne_cm);	//Получаем расстояние до объекта
  if (distacne_cm < 50){ //едем вперед
    go_forward();
    
  } else { //уходим от препятствия //не реагирует на значение  napravlenie
  napravlenie=random(1, 4);
  if (napravlenie=1){
  go_back(); 
  }else if(napravlenie=2){
  go_right();
  }else if(napravlenie=3){
  go_left();  
  }
  
}
} 

 

leshak
Offline
Зарегистрирован: 29.09.2011

= (assignment)

vs.

==

Сравнение и присваивание - разные операторы.