Проблемы со Strela (ой) у начинающего

Тема в разделе "Arduino & Shields", создана пользователем fgm, 21 мар 2016.

  1. fgm

    fgm Нуб

    К Стреле подключен дисплей (8х2) и 2 цифровых датчика линии. Хотелось бы во время работы отслеживать показания датчиков.
    Такой скетч работает и постоянно обновляет показания датчиков на экранчике в соответствии с цветом поверхности под датчиками:
    #include <Wire.h>
    #include <Strela.h>
    #include <LiquidCrystal_I2C.h>

    LiquidCrystal_I2C lcd(LC_ADDR, LCEN, LCRW, LCRS, LC4, LC5, LC6, LC7);

    const int l=P11, r=P12;

    void setup()
    {
    lcd.begin(8, 2);
    }

    void printLR()
    {
    int left = digitalRead(l);
    lcd.setCursor(0, 0);
    lcd.print(left);

    int right = digitalRead(r);
    lcd.setCursor(0, 1);
    lcd.print(right);
    }

    void loop()
    {
    printLR();
    }

    Как только чуть-чуть усложнили:
    #include <Wire.h>
    #include <Strela.h>
    #include <LiquidCrystal_I2C.h>

    LiquidCrystal_I2C lcd(LC_ADDR, LCEN, LCRW, LCRS, LC4, LC5, LC6, LC7);

    const int l=P11, r=P12;

    void setup()
    {
    lcd.begin(8, 2);
    }

    void printLR()
    {
    int left = digitalRead(l);
    lcd.setCursor(0, 0);
    lcd.print(left);

    int right = digitalRead(r);
    lcd.setCursor(0, 1);
    lcd.print(right);
    }

    void loop()
    {
    printLR();

    if ( uDigitalRead(S1) )
    {
    while ( ! uDigitalRead(S2) )
    {
    printLR();
    if( digitalRead(r) )
    drive(0,110);
    else
    drive(110,0);
    }
    drive(0,0);
    }
    }

    Стали выводиться только начальные показания датчиков и далее они не меняются на экране. Хотя моторы на все реагируют и если вывести показания датчиков в сериал порт, то там все тоже нормально. Почему не обновляется информация на дисплее, подключенном к Стреле?
     
  2. Limoney

    Limoney Гик

    Смотрите примеры Strela. На плате кнопки: S2, S3, S4, S5 для ваших программ.
    Кнопка S1 - сброс стрелы.
     
  3. Unixon

    Unixon Оракул Модератор

    Приведенный вами скетч не соответствует этому описанию, вывода в UART нет. Проверьте loop(), там какое-то странное условие с кнопками.