Указывает на ошибку в строке "serial 1.print..."

Тема в разделе "Arduino & Shields", создана пользователем Евгений DFZ, 23 июн 2020.

  1. // даём разумное имя для пинов, к которым подключены кнопки
    #define BUTTON_PIN_YELLOW 11
    #define BUTTON_PIN_BLUE 12

    // была ли жёлтая кнопка отпущена?
    boolean buttonStateYellow = true;
    // была ли синяя кнопка отпущена?
    boolean buttonStateBlue = true;

    // состояние жёлтого светодиода
    boolean ledStateYellow = false;
    // состояние синего светодиода
    boolean ledStateBlue = false;

    void setup()
    {
    // открываем последовательный порт на Serial
    Serial.begin(9600);
    // открываем последовательный порт на пинах 1 и 0
    Serial1.begin(9600);
    // 5 пин в режим выхода
    pinMode(5, OUTPUT);
    // подаём высокий уровень на 5 пин
    // значит устройство будет передавать данные
    digitalWrite(5, HIGH);
    }

    void loop()
    {
    // отпущена ли кнопка прямо сейчас
    boolean buttonStateNowYellow = digitalRead(BUTTON_PIN_YELLOW);
    boolean buttonStateNowBlue = digitalRead(BUTTON_PIN_BLUE);
    // если кнопка была отпущена и не отпущена сейчас
    if (buttonStateYellow && !buttonStateNowYellow) {
    delay(10);
    // считываем сигнал снова
    buttonStateNowYellow = digitalRead(BUTTON_PIN_YELLOW);
    if (!buttonStateYellow) {
    // если она всё ещё нажата
    // значит это клик! Инвертируем сигнал светодиода
    ledStateYellow = !ledStateYellow;
    if (ledStateYellow) {
    // посылаем на модули RS-485 символ «a»
    Serial1.print('a');
    } else {
    // посылаем на модули RS-485 символ «b»
    Serial1.print('b');
    }
    }
    }
    // запоминаем последнее состояние кнопки для новой итерации
    buttonStateYellow = buttonStateNowYellow;
    // если кнопка была отпущена и не отпущена сейчас
    if (buttonStateBlue && !buttonStateNowBlue) {
    delay(10);
    // считываем сигнал снова
    buttonStateNowBlue = digitalRead(BUTTON_PIN_BLUE);
    if (!buttonStateNowBlue) {
    // если она всё ещё нажата
    // значит это клик! Инвертируем сигнал светодиода
    ledStateBlue = !ledStateBlue;
    if (ledStateBlue) {
    // посылаем на модули RS-485 символ «y»
    Serial1.print('y');
    } else {
    // посылаем на модули RS-485 символ «z»
    Serial1.print('z');
    }
    }
    }
    // запоминаем последнее состояние кнопки для новой итерации
    buttonStateBlue = buttonStateNowBlue;
    }

    Пожалуйста ткните,что,не так.
    Спасибо.
     
  2. b707

    b707 Гуру

    какая ардуино?
     
  3. NikitOS

    NikitOS Public enemy Администратор

    Не прочитаны правила. Больше ошибок не вижу.
     
    Simon, parovoZZ и b707 нравится это.
  4. b707

    b707 Гуру

    за такое надо удалять неправильно вставленный код и писать что-нибудь "ласковое" красными буквами 24-м шрифтом :)
     
    Daniil и NikitOS нравится это.
  5. Daniil

    Daniil Гуру

    А в чем проблема? В чем ошибка? Как звучит? Может из-за того, что "serial1" написано через пробел, по крайней мере в названии темы такая ошибка
     
  6. Пытаюсь организовать удалённое управление устройством.Были закуплены компоненты в Амперке: Uno Slot, Troyka RS-485 и т.д.
    Взял готовый скетч из примера на этом сайте.http://wiki.amperka.ru/продукты:troyka-rs485.
    При проверке указывает ошибку скетч.jpg
     
  7. parovoZZ

    parovoZZ Гуру

    Переменная Serial1 не инициализирована, поэтому компилятор не знает, что с ней делать.
     
  8. NikitOS

    NikitOS Public enemy Администратор

    На Uno Slot нет Serial1, поэтому работать не будет. В примерах использоватась Arduino Leonardo или Iskra Neo, там все нормально.

    Можно заменить Serial1 на созданный через библиотеку SoftwareSerial
     
  9. Всех искренне благодарю!