Índice:
- Etapa 1: construir o circuito
- Etapa 2: Código com blocos
- Etapa 3: Explicado o código do Arduino fotorresistor
- Etapa 4: construir um circuito físico Arduino (opcional)
- Etapa 5: Em seguida, tente …
Vídeo: Sensor de luz (fotorresistor) com Arduino no Tinkercad: 5 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Projetos Tinkercad »
Vamos aprender como ler um fotorresistor, um tipo de resistor variável sensível à luz, usando a entrada analógica do Arduino. Também é chamado de LDR (resistor dependente de luz).
Até agora, você já aprendeu a controlar LEDs com a saída analógica do Arduino e a ler um potenciômetro, que é outro tipo de resistor variável, portanto, desenvolveremos essas habilidades nesta lição. Lembre-se de que as entradas analógicas do Arduino (pinos marcados com A0-A6) podem detectar um sinal elétrico que muda gradualmente e traduz esse sinal em um número entre 0 e 1023.
Explore o circuito de amostra incorporado aqui no plano de trabalho clicando em Iniciar Simulação e clicando no fotorresistor (oval marrom com linha ondulada no meio) e arraste o controle deslizante de brilho para ajustar a entrada de luz simulada.
Nesta lição, você mesmo construirá este circuito simulado ao lado da amostra. Para construir opcionalmente o circuito físico, reúna sua placa Arduino Uno, cabo USB, placa de ensaio sem solda, LED, resistores (220 ohm e 4,7 k ohm), fotoresistor e fios da placa de ensaio.
Você pode acompanhar virtualmente usando os Circuitos Tinkercad. Você pode até mesmo ver esta lição de dentro do Tinkercad (login gratuito necessário)! Explore o circuito de amostra e construa o seu próprio ao lado dele. Circuitos Tinkercad é um programa baseado em navegador gratuito que permite construir e simular circuitos. É perfeito para aprender, ensinar e criar protótipos.
Etapa 1: construir o circuito
Dê uma olhada no circuito da placa de ensaio na foto. Pode ser útil olhar para uma versão sem fio deste circuito de amostra para comparação, ilustrada. Nesta etapa, você construirá sua própria versão deste circuito ao lado da amostra no plano de trabalho.
Para acompanhar, carregue uma nova janela Tinkercad Circuits e construa sua própria versão deste circuito junto com a amostra.
Identifique o fotorresistor, o LED, os resistores e os fios conectados ao Arduino no plano de trabalho dos circuitos do Tinkercad.
Arraste um Arduino Uno e uma placa de ensaio do painel de componentes para o plano de trabalho, próximo ao circuito existente.
Conecte os trilhos de alimentação (+) e aterramento (-) da placa de ensaio ao Arduino 5V e aterramento (GND), respectivamente, clicando para criar os fios.
Estenda os trilhos de alimentação e aterramento para seus respectivos barramentos na borda oposta da placa de ensaio (opcional para este circuito, mas boa prática comum).
Conecte o LED em duas fileiras de protoboard diferentes para que o cátodo (negativo, perna mais curta) se conecte a uma perna de um resistor (qualquer lugar de 100-1K ohms está bom). O resistor pode ir em qualquer orientação porque os resistores não são polarizados, ao contrário dos LEDs, que devem ser conectados de uma determinada maneira para funcionar.
Conecte a outra perna do resistor ao aterramento.
Conecte o ânodo do LED (positivo, perna mais longa) ao pino 9 do Arduino.
Arraste um fotorresistor do painel de componentes para a placa de ensaio, de forma que suas pernas se conectem a duas fileiras diferentes.
Clique para criar um fio conectando uma perna do fotorresistor à energia.
Conecte a outra perna ao pino analógico A0 do Arduino.
Arraste um resistor do painel de componentes para conectar a perna do fotoresistor conectada a A0 com o aterramento e ajuste seu valor para 4,7 k ohms.
Etapa 2: Código com blocos
Vamos usar o editor de blocos de código para ouvir o estado do fotorresistor e, em seguida, definir um LED para um brilho relativo com base na quantidade de luz que o sensor vê. Você pode desejar atualizar sua memória da saída analógica de LED na lição Fading LED.
Clique no botão "Código" para abrir o editor de código. Os blocos de notação cinza são comentários para anotar o que você pretende que seu código faça, mas este texto não é executado como parte do programa.
Clique na categoria Variáveis no editor de código.
Para armazenar o valor da resistência do fotorresistor, crie uma variável chamada "sensorValue".
Arraste um bloco "definido". Vamos armazenar o estado do nosso fotorresistor na variável
sensorValue
Clique na categoria de entrada e arraste um bloco de "pino de leitura analógica" e coloque-o no bloco "definir" após a palavra "para"
Como nosso potenciômetro está conectado ao Arduino no pino A0, altere o menu suspenso para A0.
Clique na categoria Saída e arraste um bloco "imprimir em monitor serial".
Navegue até a categoria Variáveis e arraste a variável sensorValue para o bloco "imprimir no monitor serial" e certifique-se de que o menu suspenso esteja configurado para imprimir com uma nova linha. Opcionalmente, inicie a simulação e abra o monitor serial para verificar se as leituras estão chegando e mudando quando você ajusta o sensor. Os valores de entrada analógica variam de 0 a 1023.
Como queremos escrever no LED com um número entre 0 (desligado) e 255 (brilho total), usaremos o bloco "map" para fazer algumas multiplicações cruzadas para nós. Navegue até a categoria Matemática e arraste um bloco de "mapa".
No primeiro slot, arraste um bloco variável sensorValue e, em seguida, defina o intervalo de 0 a 255.
De volta à categoria Saída, arraste um bloco analógico "definir pino", que por padrão diz "definir pino 3 em 0". Ajuste-o para definir o pino 9.
Arraste o bloco do mapa que você fez anteriormente para o campo "para" do bloco "definir pino" para escrever o número ajustado no pino do LED usando PWM.
Clique na categoria Controle, arraste um bloco de espera e ajuste-o para atrasar o programa por 0,1 segundo.
Etapa 3: Explicado o código do Arduino fotorresistor
Quando o editor de código estiver aberto, você pode clicar no menu suspenso à esquerda e selecionar "Blocos + Texto" para revelar o código do Arduino gerado pelos blocos de código. Acompanhe enquanto exploramos o código em mais detalhes.
int sensorValue = 0;
Antes de o
configurar()
criamos uma variável para armazenar o valor atual lido do potenciômetro. É chamado
int
porque é um número inteiro ou qualquer número inteiro.
void setup ()
{pinMode (A0, INPUT); pinMode (9, SAÍDA); Serial.begin (9600); }
Dentro da configuração, os pinos são configurados usando o
pinMode ()
função. O pino A0 é configurado como uma entrada, para que possamos "ouvir" o estado elétrico do potenciômetro. O pino 9 é configurado como uma saída para controlar o LED. Para poder enviar mensagens, o Arduino abre um novo canal de comunicação serial com
Serial.begin ()
que leva um argumento de taxa de baud (qual velocidade para se comunicar), neste caso 9600 bits por segundo.
void loop ()
{// ler o valor do sensor sensorValue = analogRead (A0); // imprime a leitura do sensor para que você saiba seu intervalo Serial.println (sensorValue);
Qualquer coisa depois de um conjunto de barras
//
é um comentário que ajuda as pessoas a entenderem em linguagem simples o que o programa se destina a fazer, mas não está incluído no programa que o seu Arduino executa. No loop principal, uma função chamada
analogRead ();
verifica o estado do pino A0 (que será um número inteiro de 0 a 1023) e armazena esse valor na variável
sensorValue
// mapeia a leitura do sensor para um intervalo para o LED
analogWrite (9, map (sensorValue, 0, 1023, 0, 255)); atraso (100); // Aguarde 100 milissegundos (s)}
A linha após o próximo comentário está fazendo muito de uma vez. Lembrar
analogWrite ()
leva dois argumentos, o número do pino (9 em nosso caso) e o valor a ser escrito, que deve estar entre 0 e 255. A função inline
mapa()
leva cinco argumentos: o número a ser avaliado (a variável do sensor em constante mudança), o mínimo e o máximo esperados e os mínimos e máximos desejados. Então o
mapa()
A função em nosso caso é avaliar o sensorValue de entrada e fazer alguma multiplicação cruzada para dimensionar a saída de 0-1023 para 0-255. O resultado é retornado no segundo argumento de
analogWrite ();
definindo o brilho do LED conectado ao pino 9.
Etapa 4: construir um circuito físico Arduino (opcional)
Para programar seu Arduino Uno físico, você precisará instalar o software livre (ou plug-in para o editor da web) e, em seguida, abri-lo. Várias fotocélulas têm valores diferentes, portanto, se seu circuito físico não estiver funcionando, pode ser necessário alterar o resistor que está emparelhado com ele. Saiba mais sobre divisores de tensão na lição Instructables Electronics Class sobre resistores.
Conecte o circuito do Arduino Uno conectando componentes e fios para corresponder às conexões mostradas aqui em Circuitos Tinkercad. Para uma explicação mais detalhada sobre como trabalhar com sua placa Arduino Uno física, verifique a aula gratuita Instructables Arduino.
Copie o código da janela de código do Tinkercad Circuits e cole-o em um esboço vazio em seu software Arduino ou clique no botão de download (seta voltada para baixo) e abra
o arquivo resultante usando Arduino. Você também pode encontrar este exemplo no software Arduino navegando para Arquivo -> Exemplos -> 03. Analog -> AnalogInOutSerial.
Conecte o cabo USB e selecione a placa e a porta no menu Ferramentas do software.
Faça upload do código e use sua mão para impedir que o sensor receba luz e / ou acender uma luz em seu sensor!
Abra o monitor serial para observar os valores do seu sensor. É provável que os valores do mundo real não se estendam até 0 ou até 1023, dependendo das condições de iluminação. Sinta-se à vontade para ajustar a faixa 0-1023 ao mínimo e máximo observados para obter a faixa máxima de expressão de brilho no LED.
Etapa 5: Em seguida, tente …
Agora que você aprendeu a ler um fotorresistor e mapear sua saída para controlar o brilho de um LED, está pronto para aplicar essas e outras habilidades que aprendeu até agora.
Você pode trocar o LED por outro tipo de saída, como um servo motor, e criar algum código para refletir o nível de luz atual do sensor como uma determinada posição ao longo de um medidor?
Tente trocar seu fotorresistor por outras entradas analógicas, como um sensor de distância ultrassônico ou potenciômetro.
Saiba mais sobre como monitorar as entradas digitais e analógicas do Arduino por meio do computador usando o Serial Monitor.
Recomendado:
Como usar um fotorresistor para acender um LED com Aurduino: 12 etapas
Como usar um fotorresistor para acender um LED com o Aurduino: Bom dia / tarde / noite a todos os entusiastas do Arduino! Hoje, vou demonstrar como usar um fotorresistor (fotocélula) para acender um LED. O código fornecido com este Instructable deixará o LED ficar escuro normalmente, mas piscará quando
LED fotorresistor Arduino: 4 etapas
LED de fotoresistor Arduino: Meu projeto é sobre um resistor fotográfico que reduz a luz de um LED dependendo da luz externa. Eu me inspirei em Tech, A Style. “Arduino Photoresistor LED On / Off.” Instructables, Instructables, 8 de outubro de 2017, www.instructables.com/Arduino-Photore
Luz do humor animada e luz noturna: 6 etapas (com imagens)
Animated Mood Light & Night Light: Tendo um fascínio que beira a obsessão pela luz, decidi criar uma seleção de pequenos PCBs modulares que poderiam ser usados para criar displays de luz RGB de qualquer tamanho. Tendo feito o PCB modular, tropecei na ideia de organizá-los em um
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: Isso detalha as etapas necessárias para construir uma lâmpada LED rudimentar de detecção de luz sem fio usando Arduino Unos e um fotorresistor. Uma possível aplicação para este dispositivo seria iluminar uma sala que não possui janelas com artificia
Sabre de luz baseado em Arduino com efeitos de luz e som: 14 etapas (com imagens)
Sabre de luz baseado em Arduino com efeitos de luz e som: Olá jedi! Este instrutível é sobre como fazer um sabre de luz, que se parece, soa e se comporta como um do filme! A única diferença - ele não pode cortar metal: (este dispositivo é baseado na plataforma Arduino, e eu atribuo a ele muitos recursos e funções, ele