Saltar al contenido
Roobotica

Dimmer LED arduino y NRF24L01

27 de enero de 2023
Dimmer LED controlado por radio con NRF24L01
5/5 - (2 votos)

En otra ocasión os explicamos como usar un transmisor remoto RF de 315mhz para controlar una cagar conectada a un módulo de radiofrecuencia 315mhz. Hoy os mostramos este atenuador LED fácil de hacer usando un módulo de radiofrecuencia. El proyecto es capaz de soportar una carga hasta 24W (LED 2A X 12V).

Se puede utilizar cualquier tira de LED de 12 V o 12 V. La placa con el diseño se componen de lo siguiente:

  • Microcontrolador atmega328.
  • Potenciómetro.
  • MOSFET.
  • Regulador de 5V y otro 3.3V,.
  • Módulos de radio NRF24L01.
  • Componentes varios.

El mismo PCB se puede utilizar para Transmisor y Receptor. LED D2 LED de alimentación, opcional LED D1.

Si no queréis hacer la placa es totalmente compatible con arduino, así que no hay escusas para probarlo.

Transmisor de pines Arduino

  • NRF24L01 Módulo RF: GND>>GND, 3.3V>>Regulador de 3.3V, CE>> Arduino Digital Pin D9, CSN>> Arduino Digital Pin D10, MOSI>>Arduino Digital Pin D11, MISO>> Arduino Digital Pin D12, CSK >> Pines digitales Arduino D13
  • Potenciómetro: pin analógico A3

Receptor de pines Arduino

  • NRF24L01 Módulo RF: GND>>GND, 3.3V>>Regulador de 3.3V, CE>> Arduino Digital Pin D9, CSN>> Arduino Digital Pin D10, MOSI>>Arduino Digital Pin D11, MISO>> Arduino Digital Pin D12, CSK >> Pines digitales Arduino D13
  • Controlador LED de puerta MOSFET: pin digital D3

Nota: PCB tiene dos opciones, se puede usar para transmisor y receptor, para el transmisor no instale el conector Q1 MOSFET y CN4, para el receptor no instale el potenciómetro. Descargue el código Arduino asociado disponible para descargar.

Créditos: Este es un código modificado, autor original R Girish

Atenuador LED tutorial NRF24L01 arduino Dimmer

Índice

    Codigo arduino como transmisor

    El código Arduino para usarlo como transmisor es el siguiente:

    #include <nRF24L01.h>
    #include <RF24.h>
    #include<SPI.h>
    RF24 radio(9,10);
    const byte address[6] = "00001";
    #define pot1 A3
    
    const int threshold = 20;
    int potValue1 = 0;
    int pwmValue1 = 0;
    int check1 = 0;
    
    const char var1[32] = "motor1";
    
    void setup() 
    {
    Serial.begin(9600);
    radio.begin();
    radio.openWritingPipe(address);
    radio.setChannel(100);
    radio.setDataRate(RF24_250KBPS);
    radio.setPALevel(RF24_PA_MAX);
    radio.stopListening();
    }
    void loop() 
    {
    potValue1 = analogRead(pot1);
    if(potValue1 > check1 + threshold || potValue1 < check1 - threshold)
    {
    radio.write(&var1, sizeof(var1));
    pwmValue1 = map(potValue1, 0, 1023, 0, 255);
    radio.write(&pwmValue1, sizeof(pwmValue1));
    check1 = potValue1;
    Serial.println("INPUT:1");
    Serial.print("PWM Value:");
    Serial.println(pwmValue1);
    Serial.print("Voltage Level:");
    Serial.println(potValue1);
    Serial.println("----------------------------------");
    }
    }

    Código arduino como receptor

    Y si lo que necesitas es usarlo como receptor el código arduino sería algo como esto:

    #include <nRF24L01.h>
    #include <RF24.h>
    #include<SPI.h>
    RF24 radio(9,10);
    const byte address[6] = "00001";
    #define pot1 A3
    
    const int threshold = 20;
    int potValue1 = 0;
    int pwmValue1 = 0;
    int check1 = 0;
    
    const char var1[32] = "motor1";
    
    void setup() 
    {
    Serial.begin(9600);
    radio.begin();
    radio.openWritingPipe(address);
    radio.setChannel(100);
    radio.setDataRate(RF24_250KBPS);
    radio.setPALevel(RF24_PA_MAX);
    radio.stopListening();
    }
    void loop() 
    {
    potValue1 = analogRead(pot1);
    if(potValue1 > check1 + threshold || potValue1 < check1 - threshold)
    {
    radio.write(&var1, sizeof(var1));
    pwmValue1 = map(potValue1, 0, 1023, 0, 255);
    radio.write(&pwmValue1, sizeof(pwmValue1));
    check1 = potValue1;
    Serial.println("INPUT:1");
    Serial.print("PWM Value:");
    Serial.println(pwmValue1);
    Serial.print("Voltage Level:");
    Serial.println(potValue1);
    Serial.println("----------------------------------");
    }
    }

    Si queréis más información sobre como conectar el ATmega328 os lo dejo por aquí:

    https://www.arduino.cc/en/Tutorial/BuiltInExamples/ArduinoToBreadboard

    Características del receptor

    • Fuente de alimentación del receptor de 12 CC (rango de 7-15 V)
    • Carga LED Hasta 2A (2A X 12V = 1W a 24W) LED 12V.
    • Frecuencia de funcionamiento 490 Hz
    • Ciclo de trabajo PWM 0-100%
    • Dimensiones de placa de circuito impreso 54,61 x 37,31 mm

    Características del transmisor

    Fuente de alimentación 12V CC @ 70mA

    Esquemático

    Esquema NRF24L01 Módulo RF

    Lista de componentes

    NO CANT. ÁRBITRO. DESC. FABRICANTE EL PROVEEDOR NÚMERO DE PARTE DEL PROVEEDOR
    1 2 CN1, CN4 TOMA MACHO DE 4 PINES PASO 2.54MM Wurth DIGIKEY 732-5317-ND
    2 3 D1, R2, CN2 DNP DIGIKEY
    3 1 CN3 NRF24L01 MÓDULO RF ESTUDIO DE SIEMBRA ESTUDIO DE SEMILLAS DIGIKEY ALIEXPRESS/AMAZONE
    4 1 D2 LED SMD TAMAÑO 0805 LITE EN INC DIGIKEY 160-1427-1-ND
    5 2 C1, C2 22PF/50V SMD TAMAÑO 0805 MURATA/YAGEO DIGIKEY
    6 3 C3, C4, C5 0.1uF/50V SMD TAMAÑO 0805 MURATA/YAGEO DIGIKEY
    7 3 C6, C7, C8 10uF/25V SMD TAMAÑO 1206 MURATA/YAGEO DIGIKEY
    8 1 Q1 FDD8870 EN SEMI RATÓN 512-FDD8870
    9 1 R1 1M 5% SMD TAMAÑO 0805 MURATA/YAGEO DIGIKEY
    diez 1 R3 220E 5% SMD TAMAÑO 0805 MURATA/YAGEO DIGIKEY
    11 1 R4 10K 5% SMD TAMAÑO 0805 MURATA/YAGEO DIGIKEY
    12 1 R5 10E 5% SMD TAMAÑO 0805 MURATA/YAGEO DIGIKEY
    13 1 U1 ATMEGA328DIP MICROCHIP DIGIKEY ATMEGA328-PU-ND
    14 1 U2 LM117-3.3V ESO DIGIKEY LM1117MP-3.3/NOPBCT-ND
    15 1 U3 LM78M05 CMS DPAK EN SEMI DIGIKEY MC78M05CDTGOS-ND
    dieciséis 1 Y1 16MHz ECS INC DIGIKEY X1103-ND
    17 1 R6 POTENCIÓMETRO TT ELECTRÓNICA DIGIKEY 987-1307-ND

    Conexiones del transmisor

    Placa transmisor NRF24L01 Módulo RF
    Receptor NRF24L01 Módulo RF

    Vista Gerver de las conexiones de NRF24L01 Módulo RF

    Algunas fotos del NRF24L01 Módulo RF

    tutorial NRF24L01 arduino

    tutorial NRF24L01 arduino

    Un video del NRF24L01 Módulo radiofrecuencia funcionando

    Hoja de datos ATtmega328

    Os dejamos el enlace al Datasheet del ATmega328 por si lo necesitáis.

    Resumen
    Dimmer LED controlado por radio con NRF24L01
    Nombre del artículo
    Dimmer LED controlado por radio con NRF24L01
    Descripción
    Hoy os mostramos este atenuador LED fácil de hacer usando un módulo de radiofrecuencia. El proyecto es capaz de soportar una carga hasta 24W (LED 2A X 12V).
    Autor
    Publisher Name
    Roobotica
    Publisher Logo
    Configuraciones