Índice:

Lâmpada LED de combinação de luz sem fio Arduino usando fotorresistor: 4 etapas
Lâmpada LED de combinação de luz sem fio Arduino usando fotorresistor: 4 etapas

Vídeo: Lâmpada LED de combinação de luz sem fio Arduino usando fotorresistor: 4 etapas

Vídeo: Lâmpada LED de combinação de luz sem fio Arduino usando fotorresistor: 4 etapas
Vídeo: LDR Arduino - Saiba como ligar e programar 2024, Novembro
Anonim
Lâmpada LED Arduino sem fio de correspondência de luz usando fotorresistor
Lâmpada LED Arduino sem fio de correspondência de luz usando fotorresistor
Lâmpada LED Arduino sem fio de correspondência de luz usando fotorresistor
Lâmpada LED Arduino sem fio de correspondência de luz usando fotorresistor
Lâmpada LED Arduino sem fio de correspondência de luz usando fotorresistor
Lâmpada LED Arduino sem fio de correspondência de luz usando fotorresistor

Isso detalha as etapas necessárias para construir uma lâmpada LED com detecção de luz sem fio rudimentar usando Arduino Unos e um fotorresistor. Uma possível aplicação para este dispositivo seria iluminar uma sala que não possui janelas com luz solar artificial, combinando as condições reais de iluminação externa em tempo real. Vamos começar!

Lista de suprimentos:

Arduino Uno x2

Transceptor sem fio NRF24L01 x2 (opcional - mochila NRF24L01 x2)

TIP120 transistor darlington

Fotorresistor

LEDs de 5 mm x3

Botão de apertar

100 ohm resistor x3

10k ohm resistor x3

Vários fios de ligação

Etapa 1: Fiação dos Módulos e Circuito NRF24L01

Fiação dos Módulos e Circuito NRF24L01
Fiação dos Módulos e Circuito NRF24L01
Fiação dos Módulos e Circuito NRF24L01
Fiação dos Módulos e Circuito NRF24L01
Fiação dos Módulos e Circuito NRF24L01
Fiação dos Módulos e Circuito NRF24L01

Neste projeto, um Arduino atuará como um transmissor, enviando dados de nível de luz do fotorresistor quando o botão for pressionado. O outro Arduino servirá como receptor, pegando esses dados e transformando-os em sinal para os LEDs. A primeira imagem mostra o diagrama do transmissor e a segunda mostra o receptor.

Nota: nas fotos do meu projeto, você notará que os transceptores NRF24L01 estão acoplados a outro PCB. Este é um módulo de mochila para os transceptores, que atua como um regulador de energia. Além de facilitar a fiação, essas mochilas regulam a entrada de energia do NRF24L01, permitindo o uso de uma fonte de alimentação de 5V. Omiti essas mochilas em meu diagrama por uma questão de clareza.

(Se você decidir usar as mochilas, consulte este link para um diagrama das localizações dos pinos em referência ao estoque NRF24L01).

Em anexo abaixo está uma cópia em PDF do circuito, para facilitar o zoom / visualização detalhada.

Etapa 2: Codificando o Transmissor

A última etapa é a codificação. Você precisará instalar a biblioteca RadioHead ou uma biblioteca equivalente para usar com os módulos NRF24L01.

Para este projeto, o transmissor e o receptor Arduinos usam códigos diferentes em cada um. Aqui está o código do transmissor:

Anexei também o arquivo.ino (NRF_Send) para sua conveniência.

#incluir

#incluir

RH_NRF24 nrf24; // Inicializando um transceptor como nrf24

botão int = 5; // Definindo os valores dos pinos para o botão e fotorresistor

int pResistor = A0; valor int = 0; // Valor da luz de 0-1023

void setup ()

{Serial.begin (9600); pinMode (botão, INPUT); pinMode (pResistor, INPUT); if (! nrf24.init ()) // Alerta o usuário se a inicialização do módulo falhar Serial.println ("falha de inicialização"); // Os padrões após o init são 2,402 GHz (canal 2), 2Mbps, 0dBm if (! Nrf24.setChannel (1)) Serial.println ("setChannel falhou"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF falhou"); }

void loop ()

{if (digitalRead (button)) {// Envia uma mensagem se o botão for pressionado value = analogRead (pResistor); // Lê o valor do fotorresistor (0-1023) uint8_t data = {value}; // Define um array chamado "data " contendo o valor de luz nrf24.send (data, sizeof (data)); // Envia o array para o receptor nrf24.waitPacketSent (); // Espere até que o pacote seja enviado Serial.println ("Light Value:" + String (value)); // Imprime o valor da luz no monitor serial}}

Etapa 3: Codificando o Receptor

Para o receptor, o código também usa a Biblioteca RadioHead.

#incluir

#incluir

RH_NRF24 nrf24;

int LEDPin = 3;

valor int = 0; // Valor da luz de 0-1023

void setup ()

{Serial.begin (9600); pinMode (LEDPin, OUTPUT); if (! nrf24.init ()) Serial.println ("falha de inicialização"); // Os padrões após o init são 2,402 GHz (canal 2), 2Mbps, 0dBm if (! Nrf24.setChannel (1)) Serial.println ("setChannel falhou"); if (! nrf24.setRF (RH_NRF24:: DataRate2Mbps, RH_NRF24:: TransmitPower0dBm)) Serial.println ("setRF falhou"); }

void loop ()

{// Aguarde uma mensagem uint8_t buf [RH_NRF24_MAX_MESSAGE_LEN]; // Armazena a mensagem recebida como um array chamado "buf " uint8_t len = sizeof (buf); // Armazena o tamanho do buf como "len" while (nrf24.waitAvailableTimeout (200) && nrf24.recv (buf, & len)) // Recebe a mensagem por 200 milissegundos ou até que toda a mensagem seja recebida {value = buf [0]; // Define o valor para o primeiro índice de buf , que é o int do fotorresistor analogWrite (LEDPin, map (value, 0, 1023, 0, 255)); // Define o pino PWM para emitir um valor escalado entre 0-255 para o brilho do LED Serial.println (String (value)); } analogWrite (LEDPin, 0); }

Etapa 4: CONCLUÍDO

Divirta-se brincando com diferentes níveis de luz e observando os LEDs combinando com eles! O fotorresistor pode ser exigente às vezes e funciona melhor em um quarto escuro com uma fonte de luz localizada (mas também pode funcionar ao ar livre com o sol).

Recomendado: