Помогите нубу с управлением по UART

Тема в разделе "Проводная и беспроводная связь", создана пользователем Evgen-82, 19 июн 2018.

  1. Evgen-82

    Evgen-82 Нерд

    Подскажите пример кода для ардуино на примере одной тактовой кнопки без фиксации и светодиода, требуется следующее: Нажать на тактовую кнопку на Ардуино № 1, а светодиод зажегся на Ардуино № 2, при этом две ардуины соединены по аппаратному UART
     
  2. Belkin

    Belkin Гик

    Прочитать состояние кнопки на №1 и зажечь/погасить светодиод на №2 по отдельности уже умеем ? ;)
     
    Daniil, vvr и ИгорьК нравится это.
  3. Evgen-82

    Evgen-82 Нерд

    Умеем
     
  4. Evgen-82

    Evgen-82 Нерд

    Вот вчера накидал такой скетч, если я в чем-то ошибаюсь, поправьте меня

    ///// Код для передатчика /////


    char val = 0;
    void setup () {
    Serial.begin(9600);// Инициализация последовательного порта
    pinMode (13, OUTPUT); // Назначение 13 вывода Arduino выходом
    }

    void loop () {
    Serial.print(val);// Вывод значения переменной val в последовательный порт
    delay(500);
    val = 'A';
    Serial.print(val);// Вывод значения переменной val в последовательный порт
    delay(500);
    val = 'B';
    }

    ///// Код для приемника /////


    char val = 0;
    void setup () {
    Serial.begin(9600);// Инициализация последовательного порта
    pinMode (13, OUTPUT); // Назначение 13 вывода Arduino выходом
    }

    void loop () {
    char val = Serial.read();// Считываем данные с последовательного порта
    switch (val) {
    case ‘A’:// Если val=A, то
    digitalWrite (13, LOW); // Выключаем светодиод
    break;
    case ‘B’:// Если val=B, то
    digitalWrite (13, HIGH); // Включаем светодиод
    break;
    }
    }
     
  5. a1000

    a1000 Гик

    [​IMG]
     
    Yaroslav1 и Belkin нравится это.
  6. Belkin

    Belkin Гик

    Ну так залейте и попробуйте... ;)
    Испортить ничего не получится.
    Будет три варианта:
    - не работает
    - работает, но криво
    - работает, как надо...
    Результат расскажете (надеюсь), а то зачастую зададут вопрос, получат ответ и сваливают навечно... ;)

    Только между ножками Txd и Rxd (между Ардуинами) поставьте последовательно резисторы по 100...200 Ом.
    На правильности работы это не скажется, а вот ножки МК останутся живы (при ошибках)... ;)
     
  7. Evgen-82

    Evgen-82 Нерд

    Все работает, значит код на удивление я написал верно, теперь осталось разобраться с тактовой кнопкой и все
     
  8. Evgen-82

    Evgen-82 Нерд

    исправлюсь
     
  9. parovoZZ

    parovoZZ Гуру

    А символы по uart гонять - это феншуй какой-то?)))
     
  10. Belkin

    Belkin Гик

    Да ладно цепляться... ;)
    Творит человек... Как может... Как понимает... И в этом уже ему - респект !
    Не всегда это выглядит кузяво с "опытной" точки зрения...
    Только так можно прийти к правильному пониманию процесса.
    "Через тернии - к звёздам !" (с) не мое
     
    Evgen-82 нравится это.
  11. parovoZZ

    parovoZZ Гуру

    Ну я так, с улыбкой))) На достигнутом ни в коем случае останавливаться нельзя - только вперёд!
     
    Belkin нравится это.
  12. Yaroslav1

    Yaroslav1 Нерд

    Только в коде для передатчика эта строка лишняя:
    pinMode (13, OUTPUT);
     
  13. Airbus

    Airbus Оракул

    И значение val в передатчике ибо в сериал можно пихать что угодно не обьявляя ранее.А в приемнике разбирать это.И кстати где нажатие кнопки в передатчике?
     
    Yaroslav1 нравится это.
  14. Yaroslav1

    Yaroslav1 Нерд

    Он пока ещё это не сделал, но потом сделает сам.