Çözüldü2.26K görüntülenmeLoralorae32 Loragurultu Stm32withloranoise
0

Merhaba, siparis no : 201365458354

 Lora e 32 433T30D modeli ve stm32(nucleo g431kb) ile uzaktan kumanda devresi yaptim. Aybi pcb uzerine lehimliler. GND ler ortak.

Potansiyometreden okudugum analog veriyi karsiya yollayabiliyorum. Ama ne zaman 4db anten ile gondermeye baslasam analog degerler +-100 deger degisiyor. Anteni soktugumde bu sorun olmadan gondermeye devam edebiliyorum. 

Denedigim seyler, 

1-Anten ile kontrolcunun beslemesini ayirmak. 

2-Anten girisine 10 ve 0.1 uf guc kaynagi cikisina 1000 uf kapasitor koymak. 

3-Antenin etrafina once gazete(kisa devre olmasini engellemek icin) ardindan uzerine aluminyum folyo kapladim. 

Aklima baska bisey gelmedi. Bir fikriniz var mi?

Soru yeni cevaplara kapalıdır.
Mehmet En iyi cevap olarak seçildi Haziran 19, 2023
0

acaba çok mu yakın birde kullandığın kodu görelim

Mehmet En iyi cevap olarak seçildi Haziran 19, 2023
0

son durum ne hocam çözüldü mü olay. Sırf senin için mart ayında stm32 ile lora serisine başlıyorum hemde 2 farklı kanalda (biri ingilizce)

Mehmet Cevaplanan soru Şubat 24, 2023
0

birde boud rate 115200 sanki kodda, acaba lora da öylemi. default da 9600 yapılır.

ejderhaa Yeni yorum gönderildi Şubat 12, 2023

evet alıcı – verici Loralar 115200. Alıcı ve verici gücünü minimuma alıp, veri transfer hızını arttırıp, FEC i de aktih ettim her iki uçta. Gürültü kontrol edilerbilir seviyeye indi . Ama max mesafe için kullanamayacağım malesef.

loralar ve kontrolcüler 115200.

evet hepsi 115200.

1

sanırım pcb yi pcbway den bastırmışsın

ejderhaa Yeni yorum gönderildi Ocak 2, 2023

JLCPCB den yaptirdim.

0

Merhaba, ayni konumda arduino ve jumperlarla yaptigim testte goyle bir gurultu olmadi. Sanirim sorun mesafe degil benim pcb tasarimim. Biseyleri gozden kacirmis olmaliyim.

Kodlar asagidaki gibi.

Gonderici kodu;

#include "include.h"
 HardwareSerial Serial1(D12, D13);
                         //AUX
LoRa_E32 e32ttl(&Serial1, D11, UART_BPS_RATE_115200);
 potentiometers pots;
Smooth smooth;
 // variables for smoothing pot val.
int smoothedPotVal;
int ewmaSmooth;
 struct dataSend
{
  int potLefty;
   }dataToSend;
 void send()
{
  dataToSend.potLefty = smoothedPotVal;
  ResponseStatus rs = e32ttl.sendFixedMessage(0, 17, 0, &dataToSend, sizeof(dataSend));
 }
void setup()
{
  Serial1.setRx(PB_4); // setrx of nucleo board
  Serial1.setTx(PB_3); /// setrx of nucleo board
  e32ttl.begin();
  Serial.begin(115200);
}
 void loop()
{
   pots.readPots(); // Read pot values
  ewmaSmooth = smooth.filter(pots.leftYRaw, 1, 2); // smooth for moving average of 0.1
  smoothedPotVal = (0.90 * smoothedPotVal) + (0.10 * ewmaSmooth); // additional low pass filter
  send(); // send struct.
  Serial.println(smoothedPotVal);//print what we send
    //delay(250);
}

Alici kodu ;

Adafruit_PWMServoDriver myServo = Adafruit_PWMServoDriver(); // servo driver
 #define SERVOMIN 100
#define SERVOMAX 600
 HardwareSerial Serial1(D17, D74);
LoRa_E32 e32ttl(&Serial1, PB2, UART_BPS_RATE_115200);
 struct Message
{
  int potLefty;
};
Message message;
 int potValue;
 void receive()
{
  if (e32ttl.available() > 1)
  {
    ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(Message));
    message = *(Message *)rsc.data;
    Serial.println(message.potLefty); // print incoming pot val
    myServo.setPWM(0, 0, message.potLefty); // aplly to servo
    rsc.close();
  }
}
 void setup()
{
  Serial1.setRx(PB_15); // using pin name PY_n
  Serial1.setTx(PB_14); // using pin number PYn
  e32ttl.begin();
  myServo.begin();
  myServo.setPWMFreq(50); // Analog servos run at ~50 Hz updates
  Serial.begin(115200);
  delay(100);
}
 void loop()
{
  receive();
}

ejderhaa Cevaplanan soru Aralık 28, 2022