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
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
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
Algunas fotos del NRF24L01 Módulo RF
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.