Пульт радиоуправления на ардуино. Передача нажатия кнопки

hubll
Offline
Зарегистрирован: 08.03.2015

Здравствуйте, нужна Ваша помощь, чтобы добавить код, для передачи нажатия кнопки, попробовал 2 варианта, что-то не работает. Скетчи с ними не могу найти. В приенике должно срабатывать серво, а когда кнопку отпускаешь на пульте то серво возвращается.

Передатчик

#include <SPI.h> 
#include <nRF24L01.h>
#include <RF24.h>

#define CE_PIN 42
#define CSN_PIN 40

#define pote0 A10 // x axis
#define pote1 A1 //y axis
#define pote2 A2 //y axis
#define pote3 A3 //y axis
#define pote4 A4 //y axis
#define pote5 A5 //y axis
#define pote6 A6 //y axis
#define pote7 A7 //y axis
#define pote8 A8 //y axis
#define pote9 A9 //y axis

const uint64_t pipe = 0xE8E8F0F0E1LL; 
RF24 radio(CE_PIN, CSN_PIN); 
int data[10];  

void setup() 
{
  Serial.begin(9600);
  radio.begin();
  radio.openWritingPipe(pipe);
}

void loop()   
{
  data[0] = analogRead(pote0);
  data[1] = analogRead(pote1);
  data[2] = analogRead(pote2);
  data[3] = analogRead(pote3);
  data[4] = analogRead(pote4);
  data[5] = analogRead(pote5);
  data[6] = analogRead(pote6);
  data[7] = analogRead(pote7);
  data[8] = analogRead(pote8);
  data[9] = analogRead(pote9);
  radio.write( data, sizeof(data) );  
}

 

Приемник

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>

#define CE_PIN 42
#define CSN_PIN 40

Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;
Servo servo6;
Servo servo7;
Servo servo8;


//int pos;
int fspeed;           // forward speed 
int bspeed;           // backward speed
int fspeed1;           // forward1 speed 
int bspeed1;           // backward1 speed

const int in1 = 14;    // direction pin 14
const int in2 = 15;    // direction pin 15
const int ena = 4;    // PWM pin to change speed

const int in3 = 6;    // direction pin 6
const int in4 = 5;    // direction pin 5
const int enb = 7;    // PWM pin to change speed

int pot0=0;
int pot1=0;
int pot2=0;
int pot3=0;
int pot4=0;
int pot5=0;
int pot6=0;
int pot7=0;
int pot8=0;
int pot9=0;

const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(CE_PIN, CSN_PIN); 
int data[10]; 



void setup()   
{
  pinMode(in1, OUTPUT);      // connection to L298n
  pinMode(in2, OUTPUT);      // connection to L298n
  pinMode(ena, OUTPUT);      // connection to L298n
  
  pinMode(in3, OUTPUT);      // connection to L298n
  pinMode(in4, OUTPUT);      // connection to L298n
  pinMode(enb, OUTPUT);      // connection to L298n
  
servo1.attach(0); 
servo2.attach(9); 
servo3.attach(10); 
servo4.attach(11); 
servo5.attach(12); 
servo6.attach(13);
servo7.attach(3); 
servo8.attach(2);
    
  radio.begin();
  radio.openReadingPipe(1,pipe);
  radio.startListening();
}

void loop() {
  if ( radio.available() ) 
  {
    radio.read( data, sizeof(data) ); 
    

hareket(data[0],data[1],data[2],data[3],data[4],data[5],data[6],data[7],data[8],data[9]);

  }
}

void hareket(int pote0, int pote1, int pote2, int pote3, int pote4, int pote5, int pote6, int pote7, int pote8, int pote9)

{
 

 {


 if (pote0 >=0 && pote0 <=450)pot0 = pote0,bspeed = map(pot0, 0, 450, 0, 255),backward(bspeed);
 if (pote0 >=550 && pote0 <=1027)pot0 = pote0,fspeed = map(pot0, 550, 1027, 0, 255),forward(fspeed);
 if (pote0 >451 && pote0 <549)pot0 = pote0, stop();

 if (pote1 >=0 && pote1 <=450)pot1 = pote1,bspeed1 = map(pot1, 0, 450, 255, 0),backward1(bspeed1);
 if (pote1 >=550 && pote1 <=1027)pot1 = pote1,fspeed1 = map(pot1, 550, 1027, 0, 255),forward1(fspeed1);
 //if (pote1 >451 && pote1 <549)pot1 = pote1, stop();

}




 pot2 = map(pote2,0,1023,0,255), servo1.write(pot2);
 
 pot3 = map(pote3,0,1023,0,255), servo2.write(pot3);

 pot4 = map(pote4,0,1023,0,255), servo3.write(pot4);

 pot5 = map(pote5,0,1023,0,255), servo4.write(pot5);

 pot6 = map(pote6,0,1023,0,255), servo5.write(pot6);

 pot7 = map(pote7,0,1023,0,255), servo6.write(pot7);
 
 pot8 = map(pote8,0,1023,0,255), servo7.write(pot8);

 pot9 = map(pote9,0,1023,0,255), servo8.write(pot9);



  }


void stop()
{
  
  analogWrite(ena, 0); 
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);
  analogWrite(enb, 0); 
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
  
}

void forward(int fspeed)
{
  
 
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
  analogWrite(ena, bspeed);
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);
  analogWrite(enb, bspeed);
}

void backward(int bspeed)
{
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  analogWrite(ena, fspeed);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  analogWrite(enb, fspeed);
 
}


void forward1(int fspeed1)
{
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  analogWrite(ena, fspeed1);
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH);
  analogWrite(enb, fspeed1);
}

void backward1(int bspeed1)
{
    
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);
  analogWrite(ena, bspeed1);
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  analogWrite(enb, bspeed1);
}

Спасибо за внимание.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

hubll пишет:

попробовал 2 варианта, что-то не работает. Скетчи с ними не могу найти. 

Т.е. Вы пробовали, но Ваших проб нам не покажете, так? А зачем Вы этот скетч выложили, если в нём нет ошибок, которые надо исправить?

Если Вы хотите, чтобы кто-то просто написал за Вас то, что Вам нужно, то для этого есть коммерческий раздел, запостите туда.

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

hubll пишет:

Здравствуйте, нужна Ваша помощь, чтобы добавить код, для передачи нажатия кнопки, попробовал 2 варианта, что-то не работает. Скетчи с ними не могу найти. В приенике должно срабатывать серво, а когда кнопку отпускаешь на пульте то серво возвращается.

А к автору программы не пытались обращаться? Иногда помогает.

hubll
Offline
Зарегистрирован: 08.03.2015

автор я , в интернете нашел чтото похожее и поправил под себя, года 2 назад, и тогда  сейчас с этой кнопкой пробовал и безрезултатно.

b707
Offline
Зарегистрирован: 26.05.2017

mykaida пишет:

А к автору программы не пытались обращаться? Иногда помогает.

а это чье-то известное? копирайтов вроде нет

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Do you speak English? Explain to me the meaning of the eighty-fifth line.

hubll
Offline
Зарегистрирован: 08.03.2015

ок, сделаю вариант с передачей нажатия и покажу.