Hola buenos días desde(España)
No consigo que funcione los motores del L293D con NRF24L01, esta sacado de Internet. el TX y RX funciona
sin problemas con luces y servos,pero cuando le introduzco el L293D ya no funciona. Alguien me puede orientar a solucionarlo.Gracias
Aquí pongo TX
//Transmisor todo funciona los led y servos, añadir 2 motores (dc o cc) con L293D
//Lo primero es mantener la estructura
//Que funcionen por separado con 4 botones pulsadores y poder usarlos al mismo tiempo, no con los mismos botones
//Poder pulsar boton A 1º arriba y pulsar B 2º abajo o B 1º arriba, independientemente
//Motor A 2 botones 1º arriba y 2º abajo = int 1, int 2
//Motor B 2 botones 1º arriba y 2º abajo = int 3, int 4
//Y poder añadirle 2 motores mas, hay pines de sobra a poder ser desde el pin 20
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Wire.h>
// Define las entradas digitales.
#define b1 2 // Boton 1
#define b2 3 // Boton 2
#define b3 4 // Boton 3
#define b4 5 // Boton 4
#define b5 6 // Boton 5
#define b6 7 // Boton 6
#define b7 8 // Boton 7
#define b8 9 // Boton 8
#define b9 10 // Boton 9
#define b10 11 // Boton 10
// Mega nRF24L01 (SCK 50 Marron, MOSI 51 Blanco, MISO 52 AMARILLO )
RF24 radio(53,48); // Mega nRF24L01 (CE 53 Verde, CSN 48 Azul)
const byte address[6] = "00001"; // Nano/Uno nRF24L01 (11,12,13,--9,10)
// El tamaño máximo de esta estructura es de 32 bytes - NRF24L01 límite de búfer
struct Data_Package {
byte j1PotX,j1PotY; //Joystic 1X,1Y
byte j2PotX,j2PotY; //Joystic 2X,2Y
byte button1,button2,button3,button4,button5; // Botones 1,2,3,4,5
byte button6,button7,button8,button9,button10; // Botones 6,7,8,9,10
};
Data_Package data; //Crear una variable con la estructura anterior.
void setup() {
Serial.begin(9600);
// Define la comunicación por radio.
radio.begin();
radio.openWritingPipe(address);
radio.setAutoAck(false);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_LOW);
// Activa las resistencias pull-up internas de Arduino.
pinMode(b1, INPUT_PULLUP); // Boton 1
pinMode(b2, INPUT_PULLUP); // Boton 2
pinMode(b3, INPUT_PULLUP); // Boton 3
pinMode(b4, INPUT_PULLUP); // Boton 4
pinMode(b5, INPUT_PULLUP); // Boton 5
pinMode(b6, INPUT_PULLUP); // Boton 6
pinMode(b7, INPUT_PULLUP); // Boton 7
pinMode(b8, INPUT_PULLUP); // Boton 8
pinMode(b9, INPUT_PULLUP); // Boton 9
pinMode(b10, INPUT_PULLUP); // Boton 10
// Establecer valores iniciales predeterminados
data.j1PotX = 127; // Valores de 0 a 255. Cuando el Joystick está en posición de reposo,
data.j1PotY = 127; // El valor está en el medio, o 127.
data.j2PotX = 127; // En realidad mapeamos el valor del pozo de 0 a 1023 a 0 a 255 porque ese es un valor BYTE
data.j2PotY = 127;
data.button1 = 1;
data.button2 = 1;
data.button3 = 1;
data.button4 = 1;
data.button5 = 1;
data.button6 = 1;
data.button7 = 1;
data.button8 = 1;
data.button9 = 1;
data.button10 = 1;
}
void loop() {
// Lee todas las entradas analógicas y asignelas a un valor de byte
data.j1PotX = map(analogRead(A0), 0, 1023, 0, 255); // Convierta el valor de lectura analógica de 0 a 1023
data.j1PotY = map(analogRead(A1), 0, 1023, 0, 255); // en un valor BYTE de 0 a 255
data.j2PotX = map(analogRead(A2), 0, 1023, 0, 255);
data.j2PotY = map(analogRead(A3), 0, 1023, 0, 255);
// Lee todas las entradas digitales
data.button1 = digitalRead(b1); // Boton 1
data.button2 = digitalRead(b2); // Boton 2
data.button3 = digitalRead(b3); // Boton 3
data.button4 = digitalRead(b4); // Boton 4
data.button5 = digitalRead(b5); // Boton 5
data.button6 = digitalRead(b6); // Boton 6
data.button7 = digitalRead(b7); // Boton 7
data.button8 = digitalRead(b8); // Boton 8
data.button9 = digitalRead(b9); // Boton 9
data.button10 = digitalRead(b10); // Boton 10
radio.write(&data, sizeof(data)); // Envia todos los (datos) de la estructura al receptor. Data_Package
}