Датчик HC-SR04

Тема в разделе "Arduino & Shields", создана пользователем LilGlobGlabGolab, 3 мар 2019.

  1. Ребят, нужна помощь, возникла проблема при выполнении задачи.
    Робот должен ехать по стене при помощи ультразвукового датчика расстояния.
    Вот скетч:
    Код (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?
    С датчиком всё в порядке, машинка его видит.
    Но моторы не работают.
    Загружал другие программы, и они работают.
    Про то, что можно купить новый я знаю, но этот ещё не потрёпанный.
    Заранее спасибо.
     
  2. DetSimen

    DetSimen Guest

    А он чо, не едет?
    Эта бунт. Вастанее машин началося.
     
    Spartalexx и LilGlobGlabGolab нравится это.
  3. я о том же.
     
  4. Airbus

    Airbus Радиохулиган Модератор

    Перед вторым if напиши else между ними пробел.И будет тоби щастье
     
  5. Asper Daffy

    Asper Daffy Иксперд

    А как он там держится? Липучки? Магниты? За счёт центробежной силы? Что вообще за механика?
     
  6. по стене - имеется ввиду, что вдоль стены
     
  7. вот так?
    Код (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);
    }
     
     
  8. Airbus

    Airbus Радиохулиган Модератор

    Это так
    Код (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);
    }
    }
    Шо у нас с русским?
     
    DetSimen нравится это.