Çözüldü2.73K görüntülenmeLoramehmet
0

HOCAM LORALARI ZAR ZOR HABERLEŞTİRDİK FAKAT 30 KOMUTTAN 1 KOMUTU YA ALIYOR YADA ALMIYOR. RC TEKNE İÇİN KULLANICAZ BUNLARI.. JOYSTİCK’İ ÇEVİRİYORUM , 15 SANİYE SONRA VERİ GELİYOR. BAZENDE GELMİYOR.. LÜTFEN YARDIMCI OLUN. BAĞLANTILARINI AYRI BİR PCB ÜZERİNDE DÜZGÜN ŞEKİLDE MONTE ETTİM..
VERİCİ KODLARI:

#include "LoRa_E32.h"<br />#include <SoftwareSerial.h><br /> SoftwareSerial mySerial(10, 11); <br /> /*<br /> * Pinler     Arduino Uno    Lora E32 433T20d<br /> *                11                3<br /> *                10                4<br /> */<br />  LoRa_E32 e32ttl(&mySerial);<br /> int up_button     = 2; // Button A<br />int down_button   = 4; // Button C <br />int left_button   = 5; // Button D <br />int right_button  = 3; // Button B<br />                       typedef  struct {<br />  byte throttle;<br />  byte pitch;<br />  byte roll;<br />  byte yaw;<br />  int up_button;<br />  int down_button;<br />  int left_button;<br />  int right_button;<br />} Signal;<br /> Signal data;<br /> void ResetData()<br />{<br />  data.throttle = 127; // Motor Stop (254/2=127)| Motor Kapalı (Signal lost position | sinyal kesildiğindeki pozisyon)<br />  data.pitch = 127; // Center | Merkez (Signal lost position | sinyal kesildiğindeki pozisyon)<br />  data.roll = 90; // Center | merkez (Signal lost position | sinyal kesildiğindeki pozisyon)<br />  data.yaw = 90; // Center | merkez (Signal lost position | sinyal kesildiğindeki pozisyon)<br /> }<br /> void setup(){<br />  Serial.begin(4800);<br />  ResetData();<br />  pinMode(up_button,INPUT);<br />digitalWrite(up_button,LOW);  <br />  pinMode(down_button,INPUT);<br />digitalWrite(down_button,LOW);  <br /> pinMode(left_button,INPUT);<br />digitalWrite(left_button,LOW);  <br /> pinMode(right_button,INPUT);<br />digitalWrite(right_button,LOW);  <br />    e32ttl.begin();<br />  delay(500); <br />}<br /> void loop(){ <br />   data.throttle =  map(analogRead(A1), 0, 1023, 0, 255);<br />  data.roll =  map(analogRead(A0), 0, 1023, 0, 180);<br />   ResponseStatus rs = e32ttl.sendFixedMessage(0, 3, 7, &data, sizeof(Signal));<br />  Serial.println(rs.getResponseDescription());<br />    Serial.print(" data.throttle): " );<br />  Serial.print( data.throttle );<br />  Serial.print("\t");<br />  Serial.print(" data.roll): " );<br />  Serial.println( data.roll);<br />   delay(1000);<br /> }

ALICI KODLARI:

#include “LoRa_E32.h”
#include <SoftwareSerial.h>
#include <Servo.h>
SoftwareSerial mySerial(10, 11); // Arduino RX <– e32 TX, Arduino TX –> e32 RX
LoRa_E32 e32ttl(&mySerial);

int L_PWM =3 ; //pwm destekli pin olması gerek
int L_EN = 4;
int R_EN = 5;
int pwm;

int led1=6;
int led2=7;
int led3=8;
int led4=9;

Servo motor;

typedef struct {
byte throttle;
byte pitch;
byte roll;
byte yaw;
int up_button;
int down_button;
int left_button;
int right_button;
} Signal;

Signal data;

void ResetData()
{
data.throttle = 127; // Motor Stop (254/2=127)| Motor Kapalı (Signal lost position | sinyal kesildiğindeki pozisyon)
data.pitch = 127; // Center | Merkez (Signal lost position | sinyal kesildiğindeki pozisyon)
data.roll = 127; // Center | merkez (Signal lost position | sinyal kesildiğindeki pozisyon)
data.yaw = 127; // Center | merkez (Signal lost position | sinyal kesildiğindeki pozisyon)
}

void setup() {

pinMode(L_EN, OUTPUT);
pinMode(L_PWM, OUTPUT);
pinMode(R_EN, OUTPUT);

pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);

Serial.begin(9600);

ResetData();

motor.attach(2);

e32ttl.begin();
delay(500);

Serial.println(“Gaz \t Roll”);

}

void loop() {
while (e32ttl.available() > 1) {
ResponseStructContainer rsc = e32ttl.receiveMessage(sizeof(Signal));
data = *(Signal*) rsc.data;
rsc.close();

motor.write(data.roll); //servo hareket eder

pwm=data.throttle;
digitalWrite(L_EN, HIGH);
digitalWrite(R_EN, HIGH);
analogWrite(L_PWM,pwm); // motor sürücü belirlenen pwm ile döner

if (data.up_button ==HIGH) // yukarı basıldığında led1 yanar
{
digitalWrite(led1,HIGH);
}
if (data.down_button ==HIGH) //aşagı basıldığında led1 yanar
{
digitalWrite(led2,HIGH);
}
if (data.left_button ==HIGH) // sola basıldığında led1 yanar
{
digitalWrite(led3,HIGH);
}
if (data.right_button ==HIGH) // sağa basıldığında led1 yanar
{
digitalWrite(led4,HIGH);
}

Serial.print(F(“gaz: “));
Serial.print(data.throttle);
Serial.print(F(“\t roll: “));
Serial.println(data.roll);
}

}

Soru yeni cevaplara kapalıdır.
Mehmet En iyi cevap olarak seçildi Temmuz 29, 2021
0

hocam kullandığın lora modüllerini ve parametre ayarlarını görebilir miyim. tahminen air rate çok düşük

Mehmet En iyi cevap olarak seçildi Temmuz 29, 2021