Icono del sitio ELECTROALL

Control Inalambrico RF con más de 10 canales

INTRODUCCIÓN

Hoy en día existen varios tipos de comunicaciones inalambricas desde lo más simple hasta lo más complejo, una de las primeras comunicaciones es la comunicación RF como también conocido como Radio Frecuencia, al decir verdad este es una de las comunicaciones más sencillas de manejar. Por ende, en este episodio usaremos los módulos de radio frecuencia. En los mercado usualmente se encuentra módulos de Radio frecuencia con 4 canales, lo que significa que solo se podrá controlar 4 salidas individualmente, esto puede ser muy útil si se trata de controlar menos de 4 salidas, ahora, si se quiere controlar más de 4 salidas este deja de ser útil, sin embargo, si agregamos un microcontrolador al circuito receptor del RF se podrá controlar más de 10 salidas. Para ello crearemos una tarjeta PCB que tendrá 8 salidas de transistores y dos salidas de relays. 

ESPECIFICACIONES TÉCNICAS
  1. Tensión de alimentación……………………….…………12VDC
  2. Corriente de alimentación………………….……………500mA
  3. Salidas de transistores…………………………………………..8
  4. Salidas de relés……………………………………………………….2
  5. Entorno de programación………………………..……..Arduino
  6. Condiciones ambientales min……………….…..….-10°
  7. Condiciones ambientales max……………………….60°
  8. Dimensiones………………………………………………….100x86mm
  9.  Empotrable………………………………………….………Sí
ESQUEMÁTICO ELECTRÓNICO 
DISEÑO PCB – Ordene ahora JLCPCB
[icon_counter border_size=”2″ border_color=”#a4a4a4″ icon_type=”custom” icon_img=”id^568|url^https://www.electroallweb.com/wp-content/uploads/2019/11/WhatsApp-Image-2019-12-30-at-21.45.41.png|caption^null|alt^null|title^WhatsApp Image 2019-12-30 at 21.45.41|description^null” img_width=”70″ block_title_front=”LCSC ELECTRONICS” front_heading_tag=”span” block_desc_front=”Tienda Electrónica a Precios Extremadamente Bajos” block_title_back=”LA MEJOR TIENDA ONLINE” back_heading_tag=”span” block_desc_back=”Encuentre todo tipo de componentes electrónicos a precios extremadamente BAJOS.” custom_link=”1″ button_link=”url:https%3A%2F%2Flcsc.com%2F%3Ffrom_code%3DPL20191220BSDR||target:%20_blank|” button_text=”Buy Now” button_bg=”#1e73be” button_txt=”#ffffff”]
LISTA DE COMPONENTES ELECTRÓNICOS

PASOS PARA SUBIR UN PROGRAMA
PASO 1 : SUBIR GESTOR DE ARRANQUE (BOOTLOADER)

Para poder usar un microcontrolador nuevo (atmega328p-U), es necesario subir un un gestor de arranque como también llamado “BOOTLOADER”, esto nos facilitará subir programas en futuras ocasiones.

finalmente para quemar el bootloader se tendrá que realizar a través de los pines ICSP, que prácticamente serían los pines [ (MOSI=11) (MISO = PIN12) (SCK=PIN13) (Slave=PIN10) ]. Para subir y quemar el gestor de arranque necesitaremos un arduino UNO ó MEGA y realizar las siguientes conexiones (ARDUINO UNO – MAIN BOARD RF).

PASO 2 : SUBIR PROGRAMA; PC – BOARD RF

Después de haber subido el gestor de arranque finalmente ya podremos subir cualquier programa como normalmente lo realizamos a través del puerto serie.

CÓDIGO
/* 
                CREADO POR      :{==[=======>>>> ELECTROALL <<<<<=======]==}
                INSTAGRAM       : https://www.instagram.com/carlos_j_fuentess/ 
                                  ó  @carlos_j_fuentess
                FACEBOOK        : https://web.facebook.com/ELECTROALL.ELECTRONICA/?_rdc=1&_rdr
                PÁGINA WEB      : https://www.electroallweb.com/
                YOUTUBE         : https://www.youtube.com/c/ELECTROALL
           ________________________________________________________
     {==[=======> (CONTROL INALAMBRICO MAS DE 10 SALIDIAS (CANALES)) <=======]==}
           ________________________________________________________
*/

// {==[=======> (DEFINIMOS VARIABLES PARA LAS ENTRADAS) <=======]==}
const int prender   =2;
const int apagar    =3;
const int activador =4;
const int Rst       =5;
const int vt        =6;
const int A         =7;
const int B         =8;
// {==[=======> (DEFINIMOS VARIABLES PARA LAS SALIDAS) <=======]==}
# define Q0  9  
# define Q1  10
# define Q2  11
# define Q3  12
# define Q4  13
# define Q5  14
# define Q6  15
# define Q7  16
# define Q8  17
# define Q9  18
# define Q10 19
int estado_anterior  = 0;
int estado_anterior1 = 0;
byte counter  = 0;
byte counter1 = 0;
void setup() {
  Serial.begin(9600);
  // {==[=======> (DEFINIMOS VARIABLES COMO ENTRADAS) <=======]==}
   pinMode (prender,   INPUT);
   pinMode (apagar,    INPUT);
   pinMode (activador, INPUT);
   pinMode (Rst,       INPUT);

  // {==[=======> (DEFINIMOS VARIABLES COMO SALIDAS) <=======]==}
  pinMode (Q0 , OUTPUT);
  pinMode (Q1 , OUTPUT);
  pinMode (Q2 , OUTPUT);
  pinMode (Q3 , OUTPUT);
  pinMode (Q4 , OUTPUT);
  pinMode (Q5 , OUTPUT);
  pinMode (Q6 , OUTPUT);
  pinMode (Q7 , OUTPUT);
  pinMode (Q8 , OUTPUT);
  pinMode (Q9 , OUTPUT);
  pinMode (Q10 , OUTPUT);

}

void loop() {

int valor_prender  = digitalRead (prender);
int valor_apagar   = digitalRead (apagar);
int valor_activador= digitalRead (activador);
int valor_rst      = digitalRead (Rst);

tone(Q0, 0.01); // señalizador de buen funcionamiento de la tarjeta

  // {==[=======> (FUNCION PARA EL CONTADOR ASCENDENTE (PRENDER)) <=======]==}
  if (valor_prender != estado_anterior) { //si valor es diferente a estado anterior
    if (valor_prender == HIGH) {
      counter++;
        Serial.println(counter);
    }
  }
  delay (50);
  estado_anterior = valor_prender;
  if(counter ==11){
    delay(1000);
   counter=0;
  }

  // {==[=======> (FUNCION PARA EL CONTADOR ASCENDENTE (APAGAR)) <=======]==}
  if(valor_apagar != estado_anterior1){
    if(valor_apagar ==HIGH){
      counter1++;
         Serial.println(counter1);

    }
  }
  delay(50);
  estado_anterior1 = valor_apagar;
  if (counter1 == 11) {
    delay(1000);
    counter1 = 0;

  }

  // {==[=======> (FUNCION PARA ENCENDER LOS LEDS (SALIDAS)) <=======]==}
  if(counter==1&&valor_activador == HIGH){
   digitalWrite(Q1,true);
  }
  if(counter==2&&valor_activador==HIGH){
   digitalWrite(Q2,true); 
  }
  if(counter==3&&valor_activador==HIGH){
   digitalWrite(Q3,true); 
  }
  if(counter==4&&valor_activador==HIGH){
   digitalWrite(Q4,true); 
  }
  if(counter==5&&valor_activador==HIGH){
   digitalWrite(Q5,true); 
  }
  if(counter==6&&valor_activador==HIGH){
   digitalWrite(Q6,true); 
  }
  if(counter==7&&valor_activador==HIGH){
   digitalWrite(Q7,true); 
  }
   if(counter==8&&valor_activador==HIGH){
   digitalWrite(Q8,true); 
  }
   if(counter==9&&valor_activador==HIGH){
   digitalWrite(Q9,true); 
  }
   if(counter==10&&valor_activador==HIGH){
   digitalWrite(Q10,true); 
  }
 // {==[=======> (FUNCION PARA APAGAR LOS LEDS (SALIDAS)) <=======]==}
  if(counter1==1&&valor_activador==HIGH){
   digitalWrite(Q1,false); 
  }
  if(counter1==2&&valor_activador==HIGH){
   digitalWrite(Q2,false); 
  }
  if(counter1==3&&valor_activador==HIGH){
   digitalWrite(Q3,false); 
  }
  if(counter1==4&&valor_activador==HIGH){
   digitalWrite(Q4,false); 
  }
  if(counter1==5&&valor_activador==HIGH){
   digitalWrite(Q5,false); 
  }
  if(counter1==6&&valor_activador==HIGH){
   digitalWrite(Q6,false); 
  }
  if(counter1==7&&valor_activador==HIGH){
   digitalWrite(Q7,false); 
  }
   if(counter1==8&&valor_activador==HIGH){
   digitalWrite(Q8,false); 
  }
   if(counter1==9&&valor_activador==HIGH){
   digitalWrite(Q9,false); 
  }
   if(counter1==10&&valor_activador==HIGH){
   digitalWrite(Q10,false); 
  }
 ////RESETEAMOS LOS VALORES /////////////////////////
if (valor_rst==1){
  counter=0;
}
if ((valor_rst==1)&&(valor_activador==1)){
  counter1=0;
}
///////////////////////////////////////////////////
}
Salir de la versión móvil