// Receptor de 4 canais | 4 Kanal Alıcı
// Saída PWM nos pinos D2, D3, D4, D5 (Çıkış pinleri)
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>
int ch_width_1 = 0 ;
int ch_width_2 = 0 ;
int ch_width_3 = 0 ;
int ch_width_4 = 0 ;
Servo ch1;
Servo ch2;
Servo ch3;
Servo ch4;
struct Signal {
byte throttle;
passo de byte;
rolo de byte;
byte yaw;
} ;
Dados de sinal;
const uint64_t pipeIn = 0xE9E8F0F0E1LL;
Rádio RF24 ( 7 , 8 ) ;
void ResetData ()
{
// Defina o valor inicial de cada entrada de dados. | Veri girişlerinin başlangıç değerleri
// A posição do meio para Potenciômetros. (254/2 = 127) | Potansiyometreler için orta konum
dados. acelerador = 127 ; // Motor Stop | Motor Kapalı
dados. pitch = 127 ; // Center | Merkez
dados. roll = 127 ; // Center | Merkez
dados. yaw = 127 ; // Center | Merkez
}
configuração vazia ()
{
// Defina os pinos para cada sinal PWM | Seu bir PWM sinyal için pinler belirleniyor.
ch1. anexar ( 2 ) ;
ch2. anexar ( 3 ) ;
ch3. anexar ( 4 ) ;
ch4. anexar ( 5 ) ;
// Configure o módulo NRF24
ResetData () ;
rádio. begin () ;
rádio. openReadingPipe ( 1 , pipeIn ) ;
rádio. startListening () ; // inicia a comunicação de rádio para o receptor | Alıcı olarak sinyal iletişimi başlatılıyor
}
não assinado long lastRecvTime = 0 ;
void recvData ()
{
while ( rádio. disponível () )
{
rádio.ler ( & dados, sizeof ( Sinal )) ;
lastRecvTime = millis () ; // receba os dados | alınıyor de dados
}
}
void loop ()
{
recvData () ;
long sem sinal agora = millis () ;
if ( now - lastRecvTime > 1000 ) {
ResetData () ; // Sinal perdido .. Reinicializar dados | Sinyal kayıpsa data resetleniyor
}
ch_width_1 = mapa ( dados. acelerador , 0 , 255 , 1000 , 2000 ) ; // pino D2 (sinal PWM)
ch_width_2 = mapa ( dados. pitch , 0 , 255 , 1000 , 2000 ) ; // pino D3 (sinal PWM)
ch_width_3 = mapa ( dados. roll , 0 , 255 , 1000 , 2000 ) ; // pino D4 (sinal PWM)
ch_width_4 = mapa ( dados. yaw , 0 , 255 , 1000 , 2000 ) ; // pino D5 (sinal PWM)
// Escreva o sinal PWM | PWM sinyaller çıkışlara gönderiliyor
ch1. writeMicroseconds ( ch_width_1 ) ;
ch2. writeMicroseconds ( ch_width_2 ) ;
ch3. writeMicroseconds ( ch_width_3 ) ;
ch4. writeMicroseconds ( ch_width_4 ) ;
}