Strela и повороты на 90 градусов

Тема в разделе "Моторы, сервоприводы, робототехника", создана пользователем anghela, 6 мар 2017.

  1. anghela

    anghela Нуб

    Здравствуйте. Подскажите, пожалуйста, как сделать на стреле так, чтобы при виде препятствия машинка поворачивала на 90 градусов.
    Пишу так, но не работает:
    #include <Strela.h> //включаем библиотеку Strela
    //объявляем пины для ультразвукового датчика расстояния
    #define trigPin P11
    #define echoPin P12

    int dist, cm; //объявляем переменную целого типа
    void setup() {
    Serial.begin(9600);
    pinMode(P11, OUTPUT);
    pinMode(P12, INPUT);
    }

    void loop() {
    digitalWrite(trigPin, LOW); //датчик пока не посылает сигнал
    delayMicroseconds(2); //задержка 2 миликросекунды
    digitalWrite(trigPin, HIGH); //посылаем сигнал
    delayMicroseconds(10); //задержка 10 микросекунды
    digitalWrite(trigPin, LOW); //перестаем подавать сигнал
    dist = pulseIn(echoPin, HIGH); //включаем прием сигнала
    cm = dist/58; //вычисляем расстояние в сантиметрах
    Serial.print(cm); // выводим расстояние в см на монитор порта
    Serial.println (" cm");
    delay(100); //делаем паузу в 100 милисекунд
    if (cm>20 && cm<22)
    {
    drive (75,-100);
    }
    if (cm<15)
    {
    drive(160,0);
    }
    if (cm>60)
    {
    drive (160,0);
    }
    if (cm>90)
    {
    drive(150, 150);
    }
    delay(50);
    }
    //}

    И еще вопрос, редукторы использую одинаковые, но скорость на них почему то разная, хотя в программе указана одинаковая. В чем может быть причина?
     
  2. vvr

    vvr Инженерище

    абсолютно ничего одинакового нет.
    рулить или с пульта или программно.