Post on 12-Apr-2015
26/03/13 Circuito 9 - Fotoresistor LDR com Netduino - DuinoLabs
duinolabs.com/starterkit/ncir09/ 1/5
0 items – 0 items – R$0.00R$0.00
Circuito 9 – Fotoresistor
LDR com Netduino
O que faremos?
Mesmo que obter o valor de um potenciômetro pode ser útil para coisas
controladas por pessoas, o que utilizar quando queremos trabalhar com
o nosso ambiente? Usamos exatamente os mesmos princípios, mas no
lugar de um potenciômetro vamos usar um foto resistor (resistência
baseada na luz ou LDR). O Netduino não pode medir resistência
diretamente (ele mede tensão) por isso precisamos montar um divisor de
tensão . Esta tensão pode ser calculada, mas para nosso propósito
podemos experimentar valores e ver o que acontece. Um valor baixo
ocorre quando o sensor estiver bem iluminado enquanto um valor alto
ocorre quando estiver no escuro.
Componentes
Esquemático
Layout
Search...
DuinoLabs
Curtir
1.036 pessoas curtiram DuinoLabs.
Assine DuinoLabs
You are here:You are here: HomeHome >> Kit Didático de EletrônicaKit Didático de Eletrônica >> Circuito 9 – Fotoresistor LDR com NetduinoCircuito 9 – Fotoresistor LDR com Netduino
DuinoLabsDuinoLabs Search for products
Receba as novidades.
HomeHome ProdutosProdutos Minha contaMinha conta BlogBlog Kit Didático de EletrônicaKit Didático de Eletrônica Sobre a DuinoLabsSobre a DuinoLabs
Termos e Condições de ComprasTermos e Condições de Compras
26/03/13 Circuito 9 - Fotoresistor LDR com Netduino - DuinoLabs
duinolabs.com/starterkit/ncir09/ 2/5
26/03/13 Circuito 9 - Fotoresistor LDR com Netduino - DuinoLabs
duinolabs.com/starterkit/ncir09/ 3/5
Código
1 – Crie um novo projeto Netduino Plus utilizando o Visual Studio;
2 – Copie o código fonte do projeto nos links a seguir, conforme a versão
do firmware do seu Netduino:
[codesyntax lang="csharp" title="Para .NET Micro Framework 4.1"]
//Bibliotecas utilizadas no programa
using System; //classes básicas
using System.Threading; //classes de threading (tarefas)
using Microsoft.SPOT; //Smart Personal Objects Technology Classes
using Microsoft.SPOT.Hardware; //classes de hardware da SPOT
using SecretLabs.NETMF.Hardware; //classes de hardware da Secret Labs
using SecretLabs.NETMF.Hardware.NetduinoPlus; //classes específicas do Netduino
namespace NCIR09 /// Define o namespace onde estamos trabalhando ///
{
public class Program
{
static AnalogInput lightSensor = new AnalogInput(Pins.GPIO_PIN_A0); // Define que o foto resistor esta conectado ao pino analógico 0
static PWM led = new PWM(Pins.GPIO_PIN_D9); // Define que o LED esta ligadono pino 9
public static void Main() /// Função principal (executa ao ligar o Netduino) ///
{
int value = 0; // declara uma variavel para armazenar a leitura do sensor de luz
while (true) /// Faça Sempre ///
{
value = lightSensor.Read(); // leia o valor do photo resistor
value = (int)((double)value * 0.1111); // ajusta o valor lido ~0-900 em escala de 0-100
led.SetDutyCycle((uint)value); // define o brilho do led de acordo com a leitura do sensor
} /// Encerra o laço for ///
} /// Encerra a função Main() ///
} /// Encerra o programa ///
} /// Encerra o namespace ///
[/codesyntax]
[codesyntax lang="csharp" title="Para .NET Micro Framework 4.2"]
//Bibliotecas utilizadas no programa
using System; //classes básicas
using System.Threading; //classes de threading (tarefas)
using Microsoft.SPOT; //Smart Personal Objects Technology Classes
using Microsoft.SPOT.Hardware; //classes de hardware da SPOT
using SecretLabs.NETMF.Hardware; //classes de hardware da Secret Labs
using SecretLabs.NETMF.Hardware.NetduinoPlus; //classes específicas do Netduino
namespace NCIR09 /// Define o namespace onde estamos trabalhando ///
{
public class Program
{
static AnalogInput lightSensor = new AnalogInput(AnalogChannels.ANALOG_PIN_A0, 10); // Define que o foto resistor esta conectado ao pino analógico 0
static PWM led = new PWM(PWMChannels.PWM_PIN_D9, 100, 0, false); // Define que o LED esta ligadono pino 9
public static void Main() /// Função principal (executa ao ligar o Netduino) ///
{
int value = 0; // declara uma variavel para armazenar a leitura do sensor de luz
while (true) /// Faça Sempre ///
26/03/13 Circuito 9 - Fotoresistor LDR com Netduino - DuinoLabs
duinolabs.com/starterkit/ncir09/ 4/5
{
value = lightSensor.ReadRaw(); // leia o valor do photo resistor
value = (int)((double)value * 0.1111); // ajusta o valor lido ~0-900 em escala de 0-1
led.DutyCycle = value; // define o brilho do led de acordo com a leitura do sensor
} /// Encerra o laço for ///
} /// Encerra a função Main() ///
} /// Encerra o programa ///
} /// Encerra o namespace ///
[/codesyntax]
OBS1 : A versão do .NET Micro Framework deve corresponder ao
firmware instalado no seu Netduino. Confira este tutorial para saber
como descobrir qual versão está utilizando.
3 – Substitua o conteúdo do arquivo “Program.cs” criado no Visual
Studio pelo conteúdo do arquivo que você copiou no passo anterior.
Não funcionou? Três coisas para tentar
1. LED Fica Apagado? Este é um erro que fazemos de vez em quando.
Tente inverter o LED e confirme a sua ligação.
2. Não Responde as Mudanças de Luz? Dado que o espaço entre
os terminais do LDR não é padrão, é fácil ligá-los errado. Verifique se
estão nos lugares corretos.
3. Ainda Nada? Você pode estar em uma sala que seja muito clara ou
escura. Tente acender e apagar as luzes da sala para ver se ajuda. Ou
se tiver uma lanterna, use-a.
Faça Melhor
Resposta inversa
Talvez você queira a resposta invertida. Não se preocupe, podemos fazer
isto apenas trocando:
led.SetDutyCycle((uint)value);
por
led.SetDutyCycle(100 – (uint)value);
Grave o programa e veja a mudança.
Luz noturna
Ao invés de controlar o brilho de um LED em resposta a luz, vamos então
ligar ou desligar o LED em resposta a um limiar. Substitua o código após
while (true) por:
int threshold = 300;
value = lightSensor.Read();
if (value > threshold) {
led.SetDutyCycle(100);
}
else {
26/03/13 Circuito 9 - Fotoresistor LDR com Netduino - DuinoLabs
duinolabs.com/starterkit/ncir09/ 5/5
Compartilhe: Curtir 0 TweetTweet 0 0
led.SetDutyCycle(0);
}
Para alterar o ponto onde o LED liga e desliga, altere o valor do limiar.
Para este exemplo, nos usamos a função de PWM do pino 9. Como
estamos agora ligando e desligando o LED, você poderia utilizar qualquer
outra porta que não seja compatível com a função PWM.
Mais, mais e mais!
Quer saber mais detalhes, onde comprar peças ou outras informações?
Deixe o seu comentário!
Tags
.NET Gadgeteer .NET Micro Framework A
Internet das Coisas Arduino ARM Bootloader C# Cabo USB
componentes eletrônicos Conversor Analógico Digital crowdsourcing
debug Deploy Depuração enchentes Energia Enum enumerados
Esquemático Firmware Fonte Alimentação internet das coisaas Internet
das Coisas Kit Desenvolvimento Microcontrolador micro
controlador modbus Modulação Largura Pulso
Netduino Netduino Mini Netduino Plus netmf Open-
Source Pachube PCB Placa Eletrônica Programação C# Protoboard
PWM sensores Sistemas Embarcados Visual Basic Visual C#
Visual Studio visual studio express
Links Relacionados
Baltimore Hackerspace (Inglês)
Bildr
Citizen Scientist League (Inglês)
CNC or Bust! (Inglês)
Fritzing
Garoa Hacker Clube
Georgi's blog
Microsoft .NET Micro Framework (Inglês)
Netduino Brasil
Powered by Powered by WordPressWordPress. Designed by . Designed by