Работа с SoftwareSerial

Тема в разделе "Arduino & Shields", создана пользователем Serjay, 17 май 2015.

  1. Serjay

    Serjay Нерд

    Всем привет!
    Столкнулся с такой вот проблемой....
    Хочу подключить устройство по SoftwareSerial к Arduino UNO и если
    Код (Text):
    #include <SoftwareSerial.h>
    SoftwareSerial gprsSerial(1, 0);

    void setup()
    {
        gprsSerial.begin(9600);
     
    То всё прекрасно работает, НО только если на ПК в Arduino IDE открыт монитор порта.
    Если я питаю Arduino от батарейки, то ничего не работает. в чём может быть подвох?
     
  2. ANV

    ANV Гуру

    Во-первых на пинах 0 и 1 живет настоящий serial, а не софтовый, поэтому лучше использовать его.
    Во-вторых, Ардуина скорее всего китайская? Если да, то давайте фото без шилда крупным планом, чтобы детали было видно.
     
  3. Serjay

    Serjay Нерд

    Китайская.
    Про 0 и 1 я понимаю, но заработало только на них и то с монитором порта(
    Разве есть разница в таких деталях?
     

    Вложения:

  4. ANV

    ANV Гуру

    Скорее всего в результате оптимизации оригинальной Ардуино либо не поставили резисторы между 328 и USB мостом и поэтому ноги USB-serial моста "перетягивают" сигнал от Shield. Чтобы понять что дальше делать два вопроса:
    1. Есть ли тестер?
    2. Есть ли взаимопонимание с паяльником?

    А, еще какая маркировка у USB моста?
     
  5. Serjay

    Serjay Нерд

    С тестером в очень хороших отношениях, а вот поять платы тока учусь....
    Что надо делать?
     
  6. ANV

    ANV Гуру

    Сначала посмотреть что написано на микросхеме которая рядом с USB разъемом
     
  7. Serjay

    Serjay Нерд

    CH340G похоже на правду?
     
  8. geher

    geher Гуру

    Судя по имени переменной речь идет о подключении GPRS шилда?
     
  9. Unixon

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

    Более чем.
     
  10. ANV

    ANV Гуру

    Кстати да, можно на шилде перемычки переставить на другие пины и тогда не надо ковыряться с пинами 0 и 1
     
  11. ANV

    ANV Гуру

    А если проверять мою теорию, то надо измерить сопротивление между пинами:
    1. CH340G пин 3 и Mega328 пин 30
    2. CH340G пин 4 и Mega328 пин 31

    Если сопротивление равно нулю, то съэкономили на резисторах, если от 500 Ом до 10кОм, то дело в другом, если больше 10кОм, то что-то измерено не так :)
     
  12. Serjay

    Serjay Нерд

    Вложения:

  13. Serjay

    Serjay Нерд

    Проблема в том, что она работает, но только если Arduino по USB подключен к ПК и в Arduino IDE открыт монитор порта......
     
  14. Serjay

    Serjay Нерд

    У меня UNO, там только 13 пин....
     
  15. geher

    geher Гуру

    Полагаю, имеются ввиду не пины ардуины, а пины микросхем на ней.
    Илииначе говоря, ноги чипа USB-Serial и самого микроконтроллера
     
  16. ANV

    ANV Гуру

  17. ANV

    ANV Гуру

    У CH340 нумерация если смотреть на первую картинку, то верхний ряд справа налево
     
  18. Serjay

    Serjay Нерд

    Я понял, буду мерить..
     
  19. Serjay

    Serjay Нерд

    Померить смогу тока завтра(
    Я так понимаю что должно все работать если я в скетче заменю 0 и 1 на 2 и 3 и без подключения к монитору порта?
    Я менял в скетче 0 и 1 на 2 и 3, диод ТХ не светился, а при 0 и 1 диод ТХ периодически помигивает...
     
  20. geher

    geher Гуру

    Естественно, диоды RX и TX жестко висят на своих пинах (0 и 1).
    И нескромный вопрос чисто на всякий случай.
    При изменении в скетче пинов SoftwareSerial вы соединяете модуль с выбранными пинами, или он остается соединенным с 0 и 1 (RX и TX)?