Последовательная связь SIM900/Arduino UNO R3 не работает
По какой-то причине я не могу установить последовательное соединение между двумя устройствами. Шилд подключен к сети, потому что на мой номер можно позвонить, но я не могу отправить ему какие-либо команды по серийному номеру. Пробовал несколько способов подключения: экран rx&tx (те, которые требуют перемычки с внутренней резьбой) на 7 & 8 arduino, объявляя 7 & 8 в сериале. контакты экрана 7 & 8 (они имеют (серийный номер) в качестве этикетки) до 7 & 8 Arduino, объявляя 7 & 8 в сериале. экранируйте rx&tx маленькие отверстия на 7 & 8 arduino, объявляя 7 & 8 в сериале. Пробовал даже разные пины кроме 7& 8. Ни один не работал. Я питаю экран от трансформатора на 12 В, который может обеспечить до 3 Ач, а Arduino подключен к ноутбуку. Какие-либо предложения ? Вот код:
#include <SoftwareSerial.h>
//Создать серийный объект программного обеспечения для связи с SIM900
SoftwareSerial mySerial(7, 8); //SIM900 Tx & Rx подключен к Arduino #7 & #8
void setup()
{
// Начать последовательную связь с Arduino и Arduino IDE (последовательный монитор)
Serial.begin(9600);
//Начнем последовательную связь с Arduino и SIM900
mySerial.begin(9600);
Serial.println("Initializing...");
delay(1000);
mySerial.println("AT"); //Подтверждение связи с SIM900
updateSerial();
mySerial.println("AT+CMGF=1"); // Настройка режима ТЕКСТ
updateSerial();
mySerial.println("AT+CMGS=\"+ZZxxxxxxxxxx\"");//изменить ZZ с кодом страны и xxxxxxxxxxx с номером телефона на смс
updateSerial();
mySerial.print("Last Minute Engineers | lastminuteengineers.com"); //текстовое содержимое
updateSerial();
mySerial.write(26);
}
void loop()
{
}
void updateSerial()
{
delay(500);
while (Serial.available())
{
mySerial.write(Serial.read());//Пересылаем полученный Serial на программный последовательный порт
}
while(mySerial.available())
{
Serial.write(mySerial.read());//Пересылаем то, что software serial получил в последовательный порт
}
}
И еще, почему на шилде так много RX/TX? Я вижу RXD/TXD и RX/TX.
@decata plachat, 👍0
Обсуждение2 ответа
И еще, почему на шилде так много RX/TX? Я вижу RXD/TXD и RX/TX.
Нет. Есть только один из каждого. Они просто есть в нескольких удобных местах.
J11 выбирает контакты для использования на экране. Убедитесь, что установлено значение D7 и D8. Затем вы используете контакты D7 и D8 на экране. Обычно он монтируется непосредственно на Arduino, и вы просто используете эти контакты в своем коде.
Однако, если вы хотите подключить его к чему-то, что не имеет основания Arduino UNO, вы можете припаять провода к контактам TX/RX в разъеме J10/J17 «UART». Это игнорирует перемычки J11, которые относятся только к использованию заголовков экрана Arduino UNO.
Что касается того, почему вы не можете общаться, я предполагаю следующее:
- У вас в коде 9600 бод:
mySerial.begin(9600);
Однако в продукте Amazon, на который вы ссылаетесь:
Заводская настройка по умолчанию для GPRS Shield UART: 19 200 бит/с 8-N-1. (Можно изменить с помощью AT-команд).
Использование 19 200 вместо 9 600 должно несколько улучшить ситуацию.
Это ничего не улучшает. Я перепробовал ВСЕ тарифы. Если бы было несоответствие, то я бы хоть какие-то квадраты или какие-то странные формы увидел, а на серийнике вообще ничего не вижу!, @decata plachat
У вашего шилда есть перемычки на J11? На фото видно, что их нет., @Majenko
Сравните его с показанным в этом руководстве: https://randomnerdtutorials.com/sim900-gsm-gprs-shield-arduino/, @Majenko
Я вытащил все провода, чтобы сделать снимок. https://imgur.com/a/jhpzyI7 Вот так выглядят j11 и j12. Я пробовал подключать самок к заостренным. В приведенном выше уроке есть несколько перемычек, о которых я понятия не имею. редактировать: я присмотрелся, и кажется, что мои не в том же положении, но я никогда не думал, что их можно отключить и снова подключить, лол. Это первое, что я собираюсь попробовать после работы. Не могли бы вы объяснить о них?, @decata plachat
Вроде правильно поставил. Просто подключите его напрямую к Arduino. Нет необходимости в проводах., @Majenko
Средняя пара контактов — tx и rx. внешние пары контактов подключаются к заголовкам. Перемычки просто соединяют их., @Majenko
Нет, мой не такой, как тотуриал. Я просто сделал их так же, как в учебнике, скопировал код и ПО-ПРЕЖНЕМУ не отвечает! Я также пробовал складывать их вместе., @decata plachat
Я до сих пор не решил свою проблему. Любая другая помощь будет принята с благодарностью! Я также готов к видео-разговору, если это то, что нужно. Я абсолютно хочу запустить это., @decata plachat
Чтобы все работало нормально, используйте этот точный код и проводку от lastminuteengineers, вам нужно изменить положение перемычки (черный пластиковый элемент) в J11. он должен соединять контакты D8(RX) и D7(TX), которые расположены в верхней части желтой таблички, к двум штифтам в середине желтой пластины.
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Какой щит? Ссылку на товар пожалуйста., @Majenko
https://www.amazon.com/SODIAL-Quad-Band-Modules-Development-Arduino/dp/B077953H5P ну вот, друг, @decata plachat