DR HACK

itafsqarhyazeubebgcazh-CNzh-TWhrcsdanlenettlfifrglkadeelhtiwhihuisidgajakolvltmkmsmtnofaplptrorusrskslesswsvthtrukurvicyyi

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

Commenti  

 
0 #2 profile 2016-12-18 16:16 Citazione
 
 
0 #1 rsodvd79 2016-04-06 22:54
Grazie a tutti..
Thank you all..
Citazione
 

Aggiungi commento


Codice di sicurezza
Aggiorna

We use cookies to improve our website and your experience when using it. Cookies used for the essential operation of the site have already been set. To find out more about the cookies we use and how to delete them, see our privacy policy.

I accept cookies from this site.

EU Cookie Directive Module Information