buenastardes amigo empese un proycto pero creo qu fracase , quiero mover dos motores con el a joystick pero no e podido , son motores de juguetes, de los carritos , que funcionan a 5 v , el cual esta perfecto , el emisor es arduino uno y el receptor es arduino mega.
}
emisor
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>#define CE_PIN 9
#define CSN_PIN 10
#define x_axis A0 // x eje
#define y_axis A1 //y eje
#define button1 8 // joystick boton
#define button2 2 // A boton
#define button3 3 // B boton
#define button4 4 // C boton
#define button5 5 // D boton
#define button6 6 // E boton
#define button7 7 // F botonconst uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(CE_PIN, CSN_PIN);
int data[9];void setup()
{
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(pipe);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(button3, INPUT);
pinMode(button4, INPUT);
pinMode(button5, INPUT);
pinMode(button6, INPUT);
pinMode(button7, INPUT);
}void loop()
{data[0] = analogRead(x_axis);
data[1] = analogRead(y_axis);
data[2] = digitalRead(button1);
data[3] = digitalRead(button2);
data[4] = digitalRead(button3);
data[5] = digitalRead(button4);
data[6] = digitalRead(button5);
data[7] = digitalRead(button6);
data[8] = digitalRead(button7);
radio.write( data, sizeof(data) );//HATA AYIKLAMA (DEBUG)
Serial.print(analogRead(x_axis));
Serial.print(" ");
Serial.print(analogRead(A1));
Serial.print(" ");
//Serial.print(digitalRead(BUTON));}
y el receptor
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>#define CE_PIN 9
#define CSN_PIN 53const int motor1 = 5;
const int motor2 = 6;const int motor1r =0;
const int motor2r = 0;const int motordi = 0;
const int motordd = 0;const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(CE_PIN, CSN_PIN);
int data[9];
void setup()
{
pinMode(motor1,OUTPUT);
pinMode(motor2,OUTPUT);
pinMode(motordi,OUTPUT);
pinMode(motordd,OUTPUT);
Serial.begin(9600);radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();;
}void loop() {
if ( radio.available() ) //Vinculacion ...
{
radio.read( data, sizeof(data) );Serial.print("data[0]=");
Serial.println(data[0]);
Serial.print("data[1]=");
Serial.println(data[1]);
Serial.print("data[2]=");
Serial.println(data[2]);
Serial.print("data[3]=");
Serial.println(data[3]);
Serial.print("data[4]=");
Serial.println(data[4]);
Serial.print("data[5]=");
Serial.println(data[5]);
Serial.print("data[6]=");
Serial.println(data[6]);
Serial.print("data[7]=");
Serial.println(data[7]);
Serial.print("data[8]=");
Serial.println(data[8]);moviento(data[0],data[1],data[2],data[3],data[4],data[5],data[6],data[7],data[8]);
}
}void moviento(int x_axis, int y_axis, int button1, int button2, int button3, int button4, int button5, int button6, int button7) {
// ARRIBA + IZQUIERDA
if (x_axis >= 650 && y_axis <= 40) {
analogWrite(motor1, HIGH);
analogWrite(motor2, HIGH);
analogWrite(motordi, HIGH);
analogWrite(motordd, LOW);
}
//ARRIBA
if (x_axis >= 650 && y_axis >40 && y_axis <650) {
analogWrite(motor1, HIGH);
analogWrite(motor2, HIGH);
analogWrite(motordi, LOW);
analogWrite(motordd, LOW);
}
//ARRIBA + DERECHA
if (x_axis>= 650 && y_axis >= 650) {
analogWrite(motor1, HIGH);
analogWrite(motor2,HIGH);
analogWrite(motordi, LOW);
analogWrite(motordd, HIGH);
}
//DERECHA
if (x_axis>40 && x_axis<650 && y_axis >= 650) {
analogWrite(motor1,LOW);
analogWrite(motor2,LOW);
analogWrite(motordi,LOW);
analogWrite(motordd, HIGH);
}
//ABAJO + DERECHA
if (x_axis <= 40 && y_axis>= 650) {
analogWrite(motor1r, HIGH);
analogWrite(motor2r, HIGH);
analogWrite(motordi,LOW);
analogWrite(motordd, HIGH);
}
//ABAJO
if (x_axis <= 40 && y_axis >40 && y_axis <650) {
analogWrite(motor1r, HIGH);
analogWrite(motor2r, HIGH);
analogWrite(motordi,LOW);
analogWrite(motordd, LOW);
}
//ABAJO + IZQUIERDA
if (x_axis <= 40 && y_axis <= 40) {
analogWrite(motor1, HIGH);
analogWrite(motor2, HIGH);
analogWrite(motordi,HIGH);
analogWrite(motordd, LOW);
}
//IZQUIERDA
if (x_axis>40 && x_axis <650 && y_axis<= 40) {
analogWrite(motor1,LOW);
analogWrite(motor2, LOW);
analogWrite(motordi,HIGH);
analogWrite(motordd, LOW);
}
//CENTRO
if (x_axis>40 && x_axis <650 && y_axis >40 && y_axis <650) {
analogWrite(motor1, LOW);
analogWrite(motor2, LOW);
analogWrite(motordi,LOW);
analogWrite(motordd,LOW);
}
}
pero no hace nada nose en que pudo estar mal. ![]()
