Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Presentación de proyecto y dudas (RADIOCONTROL)
#1
Hola amigos,

Tenía ganas de hacer un proyecto nuevo con Arduino y me propuse investigar los NRF24L01, y como ni me gustan los drones ni los aviones, y los coches brushless son caros, me he decidido a radiocontrolar un velero de regatas a escala UE compre por 60€ por qué válgame la casualidad, le faltaba el mando y yo tenía una radio antigua.

Ahora me encuentro con problemas que he ido solucionando... Los módulos no se comunicaban bien o erraban, primero puse una pila 9v al Arduino, de la salida 5v alimente los servos, y de la 3,3 los NRF24L01... Solución-> LM7806 para servos, LM7805 para Arduino y LD111V33 para los NRF24L01, al parecer los servos crean una caída de tensión que interrumpia la comunicación de los módulos... (Esto lo pongo por si le sirve a alguien)

Ahora tengo mi barco y mi radio, el timón funciona bien, pero mi problema está en que no me aclaro en mandar información de dos dispositivos (2 potenciómetros) al barco para controlar vela, y timón. He pensado en usar un struct, a ver cómodo lo veis. Os subo los .ino

Os aclaro... La librería ServoPot es de mi autoría, no la vais a encontrar, la hice para controlar fácilmente un servo desde un potenciómetro cualquiera añadiendo unos valores, hace automáticamente el mapeo de los grados que le digamos (setSAV) y los valores de potenciómetro según este nos marque ya que no todos regulan entre 0 y 1024 (setPotval), hay otras funciones, si veis algo dudoso en el código preguntar.

EMISORA
Código:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <ServoPot.h>
#include <LiquidCrystal.h>
int var1;


ServoPot potTimon;
LiquidCrystal lcd(2,4,5,6,9,10);
RF24 radio(7, 8); // CE, CSN
int AMP;
const byte address[6] = "00001";
int var[1];


void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MIN);
  radio.stopListening();
  potTimon.setInput(A5);
  potTimon.setSAV(0,180);
  potTimon.setPotval(550,915);
  AMP = 3;
  pinMode(AMP, INPUT);
}


void loop() {
  if(var1 != var[0]) lcd.clear();
  var1 = var[0];
  lcd.setCursor(0,0);
  lcd.print("Timon: ");
  lcd.print(potTimon.GetValue() );
  lcd.print((char)223);
  lcd.setCursor(0,1);
  lcd.print("Analog: ");
  lcd.print(analogRead(A5) );
  potTimon.anglesMap(3);
  var[0] = potTimon.GetValue();
  radio.write(&var[0], sizeof(var[0]));
  Serial.print(analogRead(A5));
  Serial.print(" - ");
  Serial.println(var[0]);
  
}

RECEPTOR
Código:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>

Servo timon;
RF24 radio(7, 8);

const byte rxAddr[6] = "00001";

void setup()
{
  timon.attach(3);
  
  while (!Serial);
    Serial.begin(9600);
    radio.begin();
    radio.openReadingPipe(0, rxAddr);
    radio.startListening();
}

void loop()
{
  if (radio.available())
  {
    int pot[1];
    radio.read(&pot, sizeof(pot));
    timon.write( pot[0] );
    Serial.println(pot[0]);
  }
}

Gracias de antemano

Enviado desde mi Mi A2 Lite mediante Tapatalk
resimresimresimresimresim
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Proyecto sckay 46 3,535 23-11-2015, 04:17 PM
Último mensaje: Iván
  Novato - Dudas proyecto First Person View para coche o Heli pedrotronic 3 694 29-10-2014, 11:28 AM
Último mensaje: pedrotronic
  presentacion noob maño botyxelo 2 417 30-05-2014, 12:41 PM
Último mensaje: Electromecánico
  Dudas Arduino walter white 20 1,567 28-02-2014, 11:17 PM
Último mensaje: walter white
  Problema con proyecto Electromecánico 8 840 02-01-2014, 11:58 PM
Último mensaje: Electromecánico