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);
}
}