Com порт и rx-tx

Тема в разделе "Arduino & Shields", создана пользователем o6m6a6n, 4 мар 2014.

  1. o6m6a6n

    o6m6a6n Нуб

    Здравствуйте, хочу реализовать передачу информации между компом через com порт и rx tx на ардуино (например посылаю текст "red", ответ ардуино- "3", по шаблону), но нигде не могу найти пример кода. Может ли кто-нибудь написать пример реализации, please?
     
  2. Alex19

    Alex19 Гуру

  3. Alex19

    Alex19 Гуру

    Вот пошаговое описание отправки на ардуину.
    http://www.instructables.com/id/Interfacing-your-arduino-with-a-C-program/

    Что касается просушки порта на стороне компьютера, на том же C#.
    http://www.codeproject.com/Articles/75770/Basic-serial-port-listening-application

    По связке C# и ардуино, могу подсказать и пояснить. Ну а готовый пример как-то не спортивно:). Да и не видел.
     
    Последнее редактирование: 4 мар 2014
  4. Airbus

    Airbus Радиохулиган Модератор

    void setup()
    {
    // по умолчанию на скорости 9600 бод
    Serial.begin(9600);
    }
    //в строке curStr будем хранить текущую строку, которую передает нам COM
    String currStr = "";
    void loop()
    {
    if (!Serial.available())
    return;
    // Считываем очередной символ с COM
    char currSymb = Serial.read();
    if ('\r' == currSymb) {
    // Получен символ перевода строки, это значит, что текущее
    // сообщение от COM завершено и мы можем на него отреагировать.
    // Если текущая строка - это Red
    if (!currStr.compareTo("red")) {
    Serial.println("3");
    } else if (!currStr.compareTo("green")) {
    Serial.println("2");
    } else if (!currStr.compareTo("blue")) {
    Serial.println("1");
    } else if (!currStr.compareTo("yellow")) {
    Serial.println("0");
    }
    currStr = "";
    } else if (currSymb != '\n') {
    // Дополняем текущую строку новым символом
    // строки: \r\n
    currStr += String(currSymb);
    }
    }
    Как-то так примерно.Для примера сделал несколько вариантов green blue yellow при желании их можно убрать (или добавить/изменить)Проверил в железе работает.Ардуинка-самопальная на Меге-8 с COM портом
     
  5. o6m6a6n

    o6m6a6n Нуб

    Большое спасибо, вы мне очень помогли! Не сразу допер, что передача идет либо через com порт, либо через эмуляцию.
     
  6. Airbus

    Airbus Радиохулиган Модератор

    У меня через СОМ не люблю я эмуляцию на таких мощных камнях хотя через эмуляцию тоже можно