Переключение робоняши с ручного режима на автономный и наоборот

Тема в разделе "Arduino & Shields", создана пользователем _Assassin_, 8 апр 2017.

  1. _Assassin_

    _Assassin_ Нерд

    Всем привет! Помогите со скетчем. Я хочу сделать так, чтобы робоняша с помощью ИК пульта переключалась с ручного режима на автоматический, и наоборот.
    Вот скетч:
    #include <IRremote.h>
    #include <Wire.h>
    #include <Strela.h>
    int echoPin = P6;
    int trigPin = P7;
    byte debug = 0;
    byte var = 1;
    decode_results results;
    IRrecv irrecv(P12);
    const unsigned long Vpered = 16736925;
    const unsigned long Nazad = 16754775;
    const unsigned long Vlevo = 16720605;
    const unsigned long Vpravo = 16761405;
    const unsigned long Stoppp = 16712445;
    const unsigned long VKL = 77575757 ;
    const unsigned long VUKL = 7575757 ;
    void Vperedl()
    {
    drive(100, 100);
    }
    void Vlevol()
    {
    drive(80, -80);
    }
    void Vpravol()
    {
    drive(-80, 80);
    }
    void Nazadl()
    {
    drive(-100, -100);
    }
    void Stopl()
    {
    drive(0, 0);
    }
    void Pramo()
    {
    drive(65, 65);
    }
    void Povorotvpravo()
    {
    drive(50, -50);
    }
    void Povorotvlevo()
    {
    drive(-50, 50);
    }
    long randNumber;
    void setup()
    {
    irrecv.enableIRIn();
    Serial.begin(9600);
    motorConnection(1, 0);
    uPinMode(P5, OUTPUT);
    pinMode(trigPin, OUTPUT);
    pinMode(echoPin, INPUT);
    }
    void loop()
    {
    if (irrecv.decode(&results))
    {
    Serial.println(results.value, DEC);
    if (results.value == Vpered)
    {
    Vperedl();
    delay(500);
    }
    if (results.value == Vlevo)
    {
    Vlevol();
    delay(500);
    }
    if (results.value == Vpravo)
    {
    Vpravol();
    delay(500);
    }
    if (results.value == Nazad)
    {
    Nazadl();
    delay(500);
    }
    if (results.value == Stoppp)
    {
    Stopl();
    delay(500);
    }
    irrecv.resume ();
    }
    if (results.value == VKL)
    var = 1;
    {
    while (1 < 2);
    {
    int duration, cm;
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigPin, LOW);
    duration = pulseIn(echoPin, HIGH);
    Serial.println(duration);
    if (duration>4000)
    {
    Pramo();
    }
    else
    {
    int rnd = random(1, 10);
    if (rnd > 5) {
    Povorotvpravo();
    delay(500);
    }
    else
    {
    Povorotvlevo();
    delay(500);
    }
    }
    decode_results results;
    if(irrecv.decode(&results)){
    if(results.value == VUKL){
    var = 3;
    break;
    }
    irrecv.resume();
    }
    }
    irrecv.resume ();
    }
    }
     

    Вложения:

    • 1.png
      1.png
      Размер файла:
      129,2 КБ
      Просмотров:
      295
    Последнее редактирование: 8 апр 2017