Не реагирует на значение переменной
- Войдите на сайт для отправки комментариев
Втр, 18/03/2014 - 16:58
Здраствуйте, проблема находится в 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();
}
}
}
= (assignment)
vs.
==
Сравнение и присваивание - разные операторы.