sim900 shield не отвечает

simple

✩✩✩✩✩✩✩
29 Апр 2023
4
0
имеется шильд
sh900.jpg
подключил к ардуино уно по 7,8.
отсылаю AT.
возвращается только АТ.
нет ОК.
Что может быть не так?

при выключении с кнопки информирует
normal power down

при включении сообщает
ready

при отсылке AT в ответ только AT
 
Изменено:

PiratFox

★★★★★✩✩
13 Фев 2020
1,706
474
подключил к ардуино уно по 7,8.
Эти модули херово работают с sofware serial, он в ардуине кривой. Проще подключать по аппаратному serial. Или искать нормальную библиотеку sofware serial.
К тому же только одному вам известно, чего вы там наподключали.
 
Изменено:

simple

✩✩✩✩✩✩✩
29 Апр 2023
4
0
sofware serial, он в ардуине кривой
при тех же условиях прекрасно работает с платой на SIM800

чего вы там наподключали.
три контакта (земля, D7,D8) подключены бутербродом к ардуино уно.
перемычки J12 ближе к антенному гнезду.
наподключал видимо правильно, если модуль выдает корректные оповещения и возвращает посланные команды обратно
 

bort707

★★★★★★✩
21 Сен 2020
3,058
910
питание модуля откуда идет?
И какой у вас модуль - с преобразователем напряжения или нет? Какое питание у него - 4.3в или 5в?
 

simple

✩✩✩✩✩✩✩
29 Апр 2023
4
0
питание внешнее.
пробовал и 5В 2A и 12В 2А.
преобразователь на MIC29302 c выходом 4,1В
sim900_shield.JPG

почему-то побайтные операции write() шилд не принимает по виртуальному порту ,
а вот если сформировать аt-команду в строку
com=Serial.readStringUntil('/n') и отправить SIM900.println(com)
то шилд отвечает как положено.
такое вот одно из решений проблемы, если необходимо оставить аппаратный порт ардуино для отладки.
 

bort707

★★★★★★✩
21 Сен 2020
3,058
910
похоже код кривой.
Покажите, как вы формируете "побайтные операции".
И с чего вы взяли, что модем должен их понимать? У него текстовой интерфейс.
 

simple

✩✩✩✩✩✩✩
29 Апр 2023
4
0
так вроде как железобетонный стандарт

C++:
void loop() {
  if (SIM800.available())           // Ожидаем прихода данных (ответа) от модема...
    Serial.write(SIM800.read());    // ...и выводим их в Serial
  if (Serial.available())           // Ожидаем команды по Serial...
    SIM800.write(Serial.read());    // ...и отправляем полученную команду модему
}