Модуль LoRa Ra-02 Begin и BeginPacket не работают в Arduino Nano
Вот, недавно тестирую модуль Лора Ра-02, видел много видео, его легко настроить, по такой схеме:
Модуль LoRa SX1278 ----- Плата Arduino Nano
3,3 В -------
Земля---------Земля
Ан/Нсс------D10
G0/DIO0------D2
SCK---------D13
МИСО----------D12
MOSI----------D11
RST-------------D9
Я использую очень распространенную библиотеку под названием sandeepmistry. и я попробовал этот код:
#include <SPI.h>
#include <LoRa.h>
int counter = 1;
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("LoRa Sender");
if (!LoRa.begin(433E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
}
void loop() {
Serial.print("Sending packet: ");
Serial.println(counter);
// отправляем пакет
LoRa.beginPacket();
LoRa.print("hello ");
LoRa.print(counter);
LoRa.endPacket();
counter++;
delay(500);
}
Когда я запускаю его, он просто зависает в этой строке {Serial.println("Не удалось запустить LoRa!");
Затем я обновил код и попытался уменьшить частоту SPI, поскольку я использую Arduino Nano, теперь код такой:
#include <SPI.h>
#include <LoRa.h>
int counter = 1;
int frequency = 8E6; // Установите здесь нужную частоту
void setup() {
Serial.begin(9600);
while (!Serial);
Serial.println("LoRa Sender");
LoRa.setSPIFrequency(frequency); // Добавляем сюда недостающую точку с запятой
if (!LoRa.begin(433E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
}
void loop() {
Serial.print("Sending packet: ");
Serial.println(counter);
// отправляем пакет
LoRa.beginPacket();
LoRa.print("hello ");
LoRa.print(counter);
LoRa.endPacket();
counter++;
delay(500);
}
Этот код передает строку Запуск LoRa не удался!, но он снова застревает здесь
Отправитель LoRa Отправка пакета: 1
Так почему бы ему не выполнить LoRa.beginPacket(); и не зациклить код? Почему здесь все заканчивается?
@Asif Uz Zaman, 👍0
2 ответа
Лучший ответ:
Правильно ли вы установили выводы? Попробуйте сделать:
LoRa.setPins(csPin, resetPin, irqPin);// устанавливаем CS, сброс, контакт IRQ
Существует проблема со способом подключения вашего SX1276 к плате, поэтому .begin() возвращает false.
По моему опыту, я столкнулся с точно такой же ошибкой!!
После изучения множества форумов и устранения неполадок я определил основную причину: я подключал плату Arduino Uno / Nano к ноутбуку, на который подавалось питание 5 В. Поскольку платы Arduino (при подключении к источнику с более высоким током) всегда подают питание 5 В с контакта 3,3 В, в моём случае модуль LoRa получал питание 5 В! Поскольку модуль LoRa не может работать с напряжением 5 В, он выдавал ошибку.
После использования Level Shifter и подключения к плате Arduino Nano мне удалось исправить ошибку!!
Надеюсь, мой ответ будет полезен кому-то, кто столкнулся с подобной проблемой!
у вас есть плата, на которой вывод 5 В обозначен как вывод 3,3 В? Это совершенно неверно., @Juraj
@Juraj - У меня официальная плата Arduino, не могу сказать, что проблема в неправильном подключении пинов. Однако на официальных форумах Arduino упоминалось, что контакт 3,3 В выдает 5 В при подключении к более высокому току — перейдите по этой ссылке — https://forum.arduino.cc/t/using-lora-with-arduino-nano/1266604, @Giri
Вы неправильно поняли одну или несколько вещей. 1) Контакты ввода-вывода имеют напряжение 5 В. 2) Контакты 3,3 В не могут обеспечить достаточный ток., @Juraj
К вашему сведению - https://forum.arduino.cc/t/using-lora-with-arduino-nano/1266604/15, @Giri
@Juraj Не могли бы вы пояснить? Если ни 5 В, ни 3,3 В не могут обеспечить достаточный ток, тогда почему мы соединяем вывод 3,3 В Arduino с выводом 3,3 В LoRa?, @Giri
Контакт 3,3 В — это контакт с маркировкой 3.3, а не какой-либо другой контакт. Он предназначен для питания датчиков 3,3 В, но имеет ограниченную мощность и не подходит для питания беспроводных передатчиков., @Juraj
Главные проблемы LoRa — это 1. Подключение и 2. Питание., @Asif Uz Zaman
@Juraj Как вы упомянули, «контакт 3,3 В предназначен для питания датчика 3,3 В» — согласен. Вы также упомянули, что он не подходит для питания беспроводных передатчиков. Вы имеете в виду, что он не подходит для питания модуля LORA? Если да, то именно это я и имел в виду в своём сообщении. И я хочу понять «причину», по которой вы говорите, что он не подходит для питания беспроводных передатчиков. Это потому, что контакт 3,3 В Arduino обеспечивает меньшую мощность для беспроводных передатчиков? Или же он более мощный?, @Giri
Вы пишете «подает питание 5 В с контакта 3,3 В», @Juraj
- Состояние цифрового вывода Arduino не передается через NRF24L01, тогда как состояние аналогового вывода передается, почему?
- avrdude ser_open() can't set com-state
- Не могу загрузить скетч в Arduino Nano
- Arduino Uno: avrdude: stk500_recv(): программатор не отвечает
- Как постоянно отправлять данные от нескольких клиентов на сервер с помощью NodeMCU?
- Проблема с Arduino Nano 33 IOT
- Можно ли обновить загрузчик Arduino (Nano) через себя и Arduino IDE или требуется ISP?
- Как отладить "No device found on cu.usbserial, An error occurred while uploading the sketch"
Под
csPinвы подразумеваете вывод SS?, а irq - вывод DIO0?, @Giri