DR HACK

Davide Rosa Hack

124745
OggiOggi3
IeriIeri29
Questa settimanaQuesta settimana195
Questo MeseQuesto Mese963
TuttoTutto124745
Utenti 0
Visitatori 1

Radio Comando 2,4 gHz

In questo articolo spiego come creare un radiocomando a 2,4 gHz da utilizzare con una radioricevente che verrà illustrata in un'altro articolo.

Per il progetto e stato utilizzata l'Arduino Pro Mini 328 (3.3V/8MHz)

e la scheda nRF24L01+Module (Modulo radio TX/RX) con la libreria RF24

come stick si possono utilizzare dei Mini Joystick o il vecchio telecomando di un giocattolo

 Schema elettrico

 Sketch Arduino :


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

#define JOYSTICK_CH1 A0
#define JOYSTICK_CH2 A1
#define JOYSTICK_CH3 A2
#define JOYSTICK_CH4 A3
#define JOYSTICK_CH5 A4
#define JOYSTICK_CH6 A5
#define JOYSTICK_CH7 A6
#define JOYSTICK_CH8 A7

#define OUTPUT_1 2
#define OUTPUT_2 3
#define OUTPUT_3 4
#define OUTPUT_4 5
#define OUTPUT_5 6
#define OUTPUT_6 7
#define OUTPUT_7 8

#define CSN_PIN  9
#define CE_PIN   10

const uint64_t pipe = 0xE8E8F0F0E1LL; 

RF24 radio(CE_PIN, CSN_PIN); 

byte joystick[8];  

void setup() {

  pinMode(OUTPUT_1, OUTPUT);
  pinMode(OUTPUT_2, OUTPUT);
  pinMode(OUTPUT_3, OUTPUT);
  pinMode(OUTPUT_4, OUTPUT);
  pinMode(OUTPUT_5, OUTPUT);
  pinMode(OUTPUT_6, OUTPUT);
  pinMode(OUTPUT_7, OUTPUT);
  
  digitalWrite(OUTPUT_1, LOW);
  digitalWrite(OUTPUT_2, LOW);
  digitalWrite(OUTPUT_3, LOW);
  digitalWrite(OUTPUT_4, LOW);
  digitalWrite(OUTPUT_5, LOW);
  digitalWrite(OUTPUT_6, LOW);
  digitalWrite(OUTPUT_7, HIGH);

  radio.begin();
  radio.setPayloadSize(sizeof(joystick));
  radio.openWritingPipe(pipe);

}

void loop() {

  joystick[0] = (byte)map(analogRead(JOYSTICK_CH1), 0, 1023, 0, 255);
  joystick[1] = (byte)map(analogRead(JOYSTICK_CH2), 0, 1023, 0, 255);
  joystick[2] = (byte)map(analogRead(JOYSTICK_CH3), 0, 1023, 0, 255);  
  joystick[3] = (byte)map(analogRead(JOYSTICK_CH4), 0, 1023, 0, 255);
  joystick[4] = (byte)map(analogRead(JOYSTICK_CH5), 0, 1023, 0, 255);
  joystick[5] = (byte)map(analogRead(JOYSTICK_CH6), 0, 1023, 0, 255);
  joystick[6] = (byte)map(analogRead(JOYSTICK_CH7), 0, 1023, 0, 255);
  joystick[7] = (byte)map(analogRead(JOYSTICK_CH8), 0, 1023, 0, 255);  

  if (radio.write(joystick, sizeof(joystick))) {
    digitalWrite(OUTPUT_7, HIGH);
  } 
  else {
    digitalWrite(OUTPUT_7, LOW);
  }

}

Galleria Immagini

Save
Cookies user preferences
We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
Accept all
Decline all
visit counter
visit counter
visit counter
visit counter
Accept
Decline