Как проверить работу SoftwareSerial

lcf2003
Offline
Зарегистрирован: 13.11.2012

Доброго времени суток.

Стал счастливым обладателем Arduino Nano. Уже научился посылать и принимать сигналы по IR.

Учусь отправлять СМС. Но что то команды до телефона вроде как не доходят. не понятно. Взял стандартный пример из IDE и замкнул 2 и 3 пин. Устнаолил одинаковые скорости на порту. Прошил, запустил. приходит одна строка и все. все что я посылаю не возвращается. В чем может быть проблема или так  и не должно работать?

lcf2003
Offline
Зарегистрирован: 13.11.2012

Поясню. взял стандартный пример про SoftwareSerial

maksim
Offline
Зарегистрирован: 12.02.2012

Что значит "приходит одна строка и все" ?

lcf2003
Offline
Зарегистрирован: 13.11.2012

там в примере после инициализаци строка Serial.Write("типа приввет"); вот этот типа привет и приходт, а в самом цикле loop

if (Serial.Avaible()) {

MySerial.Write(Serial.Real());

}

if (MySerial.Avaible()) {

Serial.Write(MySerial.Read())

}

 

Скорости выставлены одинаковые по 9600 бод. У MySerial (софтверный порт на пины 2 и 3, так же пробовал и на 8 и 9 переписывал) Tx и Rx соответсвенно замкнуты. Т.е. по идее что приходит из консоли, шлется в софтверны потр, там возвращается обратно, пересылвается в консоль. т.е. если я из Seral Monitor'a что то послал мне должно тоже и вернуться. А тут я запуская SerialMonitor мне приходит "типа привет" и все, больше ничего. все что я посылаю в консоль не возвращается. от сюда и вывод может что то не так делаю, что у меня до телефона команды тупо не доходят.

Надеюсь теперь понятно объяснил, что я делаю

popUP
Offline
Зарегистрирован: 09.10.2014

Так никто и не ответил. Может мне повезет

Та же ситуация, тот же вопрос. Код

#include <SoftwareSerial.h>
SoftwareSerial testSerial(8, 9); // RX, TX

void setup()  
{
  // Open serial communications and wait for port to open:
  Serial.begin(4800);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  testSerial.begin(4800);
  testSerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (testSerial.available())
    Serial.write(testSerial.read());
  if (Serial.available())
    testSerial.write(Serial.read());
}

Замкнул 8 и 9 , в мониторе порта выходит только строчка Goodnight moon! и на ввод символов в мониторе никак не реагирует

 

Библиотеки стоят "C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SoftwareSerial\src\.." 
и  "D:\Google Диск\ARDUINO\Sketch\libraries\SoftwareSerial\.." 
Обе поставились при установке IDE, кажется. имеют разный объем и даты.
Пробовал удалить 2-ю библиотеку, все равно не работает

 

sadman41
Offline
Зарегистрирован: 19.10.2016

А что должно быть? Софтварный сериал или передает или принимает.

popUP
Offline
Зарегистрирован: 09.10.2014

Не знаю, как правильно спросить.

Я думал, что если замкнуть 8 и 9  то если я в строке ввода монитора порта что-то напишу, то в мониторе это же и появится.

Или я опять не так думаю

Хочу проверить-убедиться что у меня эта штука работает

sadman41
Offline
Зарегистрирован: 19.10.2016

Ну, я тоже могу представить, что кто-то может одновременно и подтягиваться на перекладине  и вязать на спицах, но в реальности все иначе. Если Софтсериал сказал МК поднять ногу для передачи бита, то МК ничего больше не делает. И не проверяет, что летит на другой пин. Проверяйте двумя ардуинами.

b707
Offline
Зарегистрирован: 26.05.2017

popUP пишет:

Хочу проверить-убедиться что у меня эта штука работает

Зачем??? Это Софтовый сериал, понимаете? - программный. То есть это не железка, не часть ардуины,  а эмуляция.  Чтоб проверить работает ли ардуина - достаточно запустить блинк. Если у вас другие программы исполняются, то и SoftwareSerial будет.

popUP
Offline
Зарегистрирован: 09.10.2014

Спасибо за комментарий.

У меня возникла проблема при подключении SIM800L.

Собрал по схеме , с делителем на RX и отдельным питанием, общей землей и т.п. Использовал примеры из библиотеки. Но команды не проходят, причем на SIM 800L и NEOWAY M590 (это был первый модуль, не запустил и купил 2-й)

Может у меня глюк какой-то с библиотекой или еще что. Вот и пытаюсь проверить. Ибо не верю , что оба модуля паленые. Может кто подскажет, как проверить сами модемы? (выходы  RX-TX не закорочены, без симки мигает красный диод раз в секунду примерно, с симкой - то же самое, без перерыва)

Попробую сегодня с 2 ардуинками, по совету  уважаемого sadman41

 

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

popUP пишет:

 как проверить сами модемы? 

Подключить к компьютеру через USB-TTL переходник, и послав с помощью какой нибудь программы АТ команды модему, смотреть ответы.

Естественно не забыть резисторный делитель на TX модема