Ребят, нужна помощь, возникла проблема при выполнении задачи. Робот должен ехать по стене при помощи ультразвукового датчика расстояния. Вот скетч: Код (C++): #include <Ultrasonic.h> Ultrasonic ultrasonic(12, 13); float dist_cm; void setup(){ Serial.begin(9600); pinMode(5, OUTPUT); pinMode(8, OUTPUT); pinMode(7, OUTPUT); pinMode(6, OUTPUT); pinMode(4, OUTPUT); pinMode(3, OUTPUT); } void loop(){ Serial.println(ultrasonic.Ranging(CM)); dist_cm=ultrasonic.Ranging(CM); if(dist_cm<15){ analogWrite(5, 0);digitalWrite(8, 0);digitalWrite(7, 0); analogWrite(6, 128);digitalWrite(4, 1);digitalWrite(3, 0); delay(50); } if(dist_cm>15){ analogWrite(5, 128); digitalWrite(8, 1); digitalWrite(7, 0); analogWrite(6, 0); digitalWrite(4, 0); digitalWrite(3, 0); delay(50); } } В чём же вопрос? Вопрос заключается в том, почему машинка не проходит условия написанные в операторах(их два) if? С датчиком всё в порядке, машинка его видит. Но моторы не работают. Загружал другие программы, и они работают. Про то, что можно купить новый я знаю, но этот ещё не потрёпанный. Заранее спасибо.
вот так? Код (C++): #include <Ultrasonic.h> Ultrasonic ultrasonic(12, 13); float dist_cm; const int vpered = 1; const int stopping = 0; const int Speed = 128; void setup(){ Serial.begin(9600); pinMode(5, OUTPUT); pinMode(8, OUTPUT); pinMode(7, OUTPUT); pinMode(6, OUTPUT); pinMode(4, OUTPUT); pinMode(3, OUTPUT); } void loop(){ Serial.println(ultrasonic.Ranging(CM)); dist_cm=ultrasonic.Ranging(CM); if(dist_cm<15){ analogWrite(5, 0);digitalWrite(8, 0);digitalWrite(7, 0); analogWrite(6, 128);digitalWrite(4, 1);digitalWrite(3, 0); } else{ } if(dist_cm>15){ analogWrite(5, 128); digitalWrite(8, 1); digitalWrite(7, 0); analogWrite(6, 0); digitalWrite(4, 0); digitalWrite(3, 0); } delay(20); }
Это так Код (C++): #include <Ultrasonic.h> Ultrasonic ultrasonic(12, 13); float dist_cm; void setup(){ Serial.begin(9600); pinMode(5, OUTPUT); pinMode(8, OUTPUT); pinMode(7, OUTPUT); pinMode(6, OUTPUT); pinMode(4, OUTPUT); pinMode(3, OUTPUT); } void loop(){ Serial.println(ultrasonic.Ranging(CM)); dist_cm=ultrasonic.Ranging(CM); if(dist_cm<15){ analogWrite(5, 0);digitalWrite(8, 0);digitalWrite(7, 0); analogWrite(6, 128);digitalWrite(4, 1);digitalWrite(3, 0); delay(50); } else if(dist_cm>15){ analogWrite(5, 128); digitalWrite(8, 1); digitalWrite(7, 0); analogWrite(6, 0); digitalWrite(4, 0); digitalWrite(3, 0); delay(50); } } Шо у нас с русским?