Taula de continguts:

Làmpada LED sense fils Arduino que combina llum amb fotoresistència: 4 passos
Làmpada LED sense fils Arduino que combina llum amb fotoresistència: 4 passos

Vídeo: Làmpada LED sense fils Arduino que combina llum amb fotoresistència: 4 passos

Vídeo: Làmpada LED sense fils Arduino que combina llum amb fotoresistència: 4 passos
Vídeo: Светильник на адресных LED, для подсветки, уведомлений и аварийного освещения. ESP32 и WLED 2024, De novembre
Anonim
Làmpada LED sense fils Arduino que combina llum amb fotoresistència
Làmpada LED sense fils Arduino que combina llum amb fotoresistència
Làmpada LED sense fils Arduino que combina llum amb fotoresistència
Làmpada LED sense fils Arduino que combina llum amb fotoresistència
Làmpada LED sense fils Arduino que combina llum amb fotoresistència
Làmpada LED sense fils Arduino que combina llum amb fotoresistència

Aquest document instructiu detalla els passos necessaris per construir una rudimentària làmpada LED sense fil amb detecció de llum mitjançant Arduino Unos i un fotoresistor. Una possible aplicació d’aquest dispositiu seria il·luminar una habitació que no tingui finestres amb llum solar artificial, que coincideixi amb les condicions reals d’il·luminació a l’exterior en temps real. Comencem!

Llista de subministraments:

Arduino Uno x2

NRF24L01 Transceptor sense fils x2 (Opcional: motxilla NRF24L01 x2)

Transistor Darlington TIP120

Fotoresistor

LEDs de 5 mm x3

Polsador

Resistència de 100 ohmis x3

10k ohm resistència x3

Diversos cables de pont

Pas 1: cablejar els mòduls i el circuit NRF24L01

Cablatge dels mòduls i circuit NRF24L01
Cablatge dels mòduls i circuit NRF24L01
Cablatge dels mòduls i circuit NRF24L01
Cablatge dels mòduls i circuit NRF24L01
Cablatge dels mòduls i circuit NRF24L01
Cablatge dels mòduls i circuit NRF24L01

En aquest projecte, un Arduino actuarà com a transmissor, enviant dades de nivell de llum des del fotoresistor quan es prem el botó. L’altre Arduino servirà de receptor, agafant aquestes dades i transformant-les en el senyal als LED. La primera imatge mostra el diagrama del transmissor i la segona mostra el receptor.

Nota: a les fotos del meu projecte, notareu que els transceptors NRF24L01 estan connectats a un altre PCB. Es tracta d’un mòdul de motxilla per als transceptors, que actua com a regulador de potència. A més de facilitar el cablejat, aquestes motxilles regulen la potència d’entrada del NRF24L01, permetent l’ús d’una font d’alimentació de 5V. Per motius de claredat, he omès aquestes motxilles al meu diagrama.

(Si decidiu utilitzar les motxilles, consulteu aquest enllaç per obtenir un diagrama de les ubicacions dels pins en referència al material NRF24L01).

A continuació s’adjunta una còpia en PDF del circuit, per facilitar el zoom / visualització detallada.

Pas 2: Codificació del transmissor

L’últim pas és la codificació. Haureu d’instal·lar la biblioteca RadioHead o una biblioteca equivalent per utilitzar-la amb els mòduls NRF24L01.

Per a aquest projecte, el transmissor i el receptor Arduinos utilitzen un codi diferent a cadascun. Aquí teniu el codi del transmissor:

També he adjuntat el fitxer.ino (NRF_Send) per comoditat.

#incloure

#incloure

RH_NRF24 nrf24; // Inicialització d'un transceptor com nrf24

botó int = 5; // Configuració de valors de pin per al botó i la fotoresistència

int pResistència = A0; valor int = 0; // Valor de la llum de 0-1023

configuració nul·la ()

{Serial.begin (9600); pinMode (botó, INPUT); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Alerta l'usuari si falla la inicialització del mòdul Serial.println ("init fallit"); // Els valors predeterminats després de l'inici són 2,402 GHz (canal 2), 2 Mbps, 0 dBm si (! Nrf24.setChannel (1)) Serial.println ("setChannel ha fallat"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF ha fallat"); }

bucle buit ()

{if (digitalRead (button)) {// Envieu un missatge si premeu el botó value = analogRead (pResistor); // Llegiu el valor del fotoresistor (0-1023) uint8_t data = {value}; // Estableix una matriu anomenada "dades " que conté el valor de llum nrf24.send (dades, mida de (dades)); // Envieu la matriu al destinatari nrf24.waitPacketSent (); // Espereu fins que s'hagi enviat el paquet Serial.println ("Valor de llum:" + Cadena (valor)); // Imprimiu el valor de la llum al monitor sèrie}}

Pas 3: Codificació del receptor

Per al receptor, el codi també utilitza la biblioteca RadioHead.

#incloure

#incloure

RH_NRF24 nrf24;

int LEDPin = 3;

valor int = 0; // Valor de la llum de 0-1023

configuració nul·la ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); if (! nrf24.init ()) Serial.println ("init ha fallat"); // Els valors predeterminats després de l'inici són 2,402 GHz (canal 2), 2 Mbps, 0 dBm si (! Nrf24.setChannel (1)) Serial.println ("setChannel ha fallat"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF ha fallat"); }

bucle buit ()

{// Espereu un missatge uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Emmagatzemeu el missatge rebut com una matriu anomenada "buf " uint8_t len = sizeof (buf); // Emmagatzemeu la mida de buf com a "len" mentre (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Rep el missatge durant 200 mil·lisegons o fins que es rebi tot el missatge {value = buf [0]; // Estableix el valor en el primer índex de buf , que és l’int del fotoresistor analogWrite (LEDPin, map (valor, 0, 1023, 0, 255)); // Estableix el pin PWM per generar un valor a escala entre 0-255 per a la brillantor del LED Serial.println (Cadena (valor)); } analogWrite (LEDPin, 0); }

Pas 4: FET

Gaudeix jugant amb diferents nivells de llum i veient com els LED coincideixen! De vegades, el fotoresistor pot resultar complicat i funciona millor en una habitació fosca amb una font de llum localitzada (però també pot funcionar amb el sol).

Recomanat: